免費全文 模型微調 進階

合成資料怎麼用才不會反效果

用大模型生成訓練資料很方便,但直接拿來訓練通常會把錯誤一起學進去。

模型微調教程封面

人工標註昂貴,用強模型生成訓練資料是自然的選擇。問題在於:生成資料的分布是模型的分布,不是真實世界的分布。

三個必做的處理

  1. 過濾:用程式驗證格式,再用另一個模型或規則判斷內容合理性,通過的才留。
  2. 去重與去同質化:生成資料很容易高度相似,去重後常常只剩一半。
  3. 混入真實樣本:至少保留兩到三成真實資料,維持分布錨點。

讓生成的樣本更有變化

# 只換一句提示,產出會高度雷同;帶入變數才有分布
for domain in ['電商', '金融', '製造', '醫療']:
    for tone in ['正式', '口語', '急躁']:
        for missing in [True, False]:
            yield make_prompt(domain=domain, tone=tone,
                              missing_info=missing)

邊界案例要刻意生成

直接請模型「生成一百個客服問句」,得到的幾乎都是標準情境。要明確要求生成模糊的、資訊不足的、多重意圖的、包含錯字的樣本——這些才是上線後真正會遇到的。

驗證用真實資料

訓練集可以是合成的,驗證集與測試集必須是真實的。用合成資料驗證合成資料訓練的模型,分數會漂亮到毫無意義。

把合成資料的生成腳本與提示一起版控。日後發現資料有系統性偏差時,你需要知道當初是怎麼生出來的。
下一步

這個主題還有更深入的實戰教程

VIP 專區收錄 50 篇進階內容:架構設計、生產環境取捨、成本與合規。 每週五新增 3 篇。

看訂閱方案 → 先逛逛 VIP 專區

延伸閱讀

更多模型微調 →