
100 vs 1,000 vs 10,000 個訓練範例:你實際上需要多少資料?
訓練資料集大小如何影響微調模型品質的資料驅動分析——包含不同規模的基準、收益遞減分析,以及資料收集預算的實用指導。
「我需要多少訓練資料?」是每個人關於微調最先問的問題。這也是網路上答案最具誤導性的問題。你會找到聲稱需要 10 萬個以上範例的博客文章。也會找到聲稱 50 個就夠了的文章。對於大多數使用案例來說,這兩個答案都是錯誤的,實際答案取決於令人驚訝地可測量的因素。
以下是我們在數百次微調運行中觀察到的結果,按資料集大小、任務類 型和決定更多資料何時停止有效的收益遞減曲線分類。
基準:每個規模發生什麼
50-100 個範例
你得到什麼: 明顯的風格轉變。模型學習你的格式偏好、輸出結構和基本詞彙模式。感覺與基礎模型不同。
你得不到什麼: 一致性。模型也許 60-70% 的時間會產生符合目標的輸出。另外 30-40% 的時間,它回退到基礎模型行為或產生混合了你的風格和其預設值的混合輸出。
足夠用於: 概念驗證示範、內部原型、在投入資料收集之前驗證微調是正確方法。
評估指標(典型): 在 20 個真實範例的保留測試集上,預期準確率/品質分數比你的目標低 15-25%。對於分類任務,準確率可能是 65-75%,而你需要 90% 以上。
200-500 個範例
你得到什麼: 在狹窄、明確定義的任務上表現穩健。分類準確率躍升至 82-90%。生成任務產生 80-85% 的時間符合目標的輸出。模型可靠地遵循你的格式並處理常見輸入模式。
你得不到什麼: 邊緣案例的健壯性。偏離訓練分布的輸入——不尋常的措辭、意外的長度、歧義案例——仍然會使模型出錯。
足夠用於: 具有可預測輸入模式的狹窄生產任務。工單按標準格式的支援工單分類器。從模板化文件中提取結構化資料的提取模型。任何 85-90% 準確率可接受且有其餘情況備援的任務。
評估指標(典型): 分類準確率 82-90%。生成品質(人工評估)80-85% 符合目標。延遲與基礎模型相同。
1,000-2,000 個範例
你得到什麼: 這是大多數微調專案的甜蜜點。性能在常見案例上表現強勁,在邊緣案例上表現合理。分類準確率達到 90-95%。生成任務以正確的語氣、結構和內容一致地產生好輸出。
你得不到什麼: 對罕見邊緣案例的完美處理。如果你的 2% 生產輸入是不尋常的多步驟請求,那些仍然需要處理。
足夠用於: 大多數生產部署。這是大多數任務成本-性能權衡最佳的地方。你以資料收集成本的一小部分獲得了最大可達性能的 90% 以上。
評估指標(典型): 分類準確率 90-95%。生成品質 88-93% 符合目標。性能在多 10 倍資料時的表現範圍內 5-8%。
3,000-5,000 個範例
你得到什麼: 複雜任務的生產級性能。模型很好地處理邊緣案例,在長對話中保持一致性,並泛化到訓練資料中未直接表示的輸入模式。
你得不到什麼: 對簡單任務超過 2,000 個範例的有意義改進。如果你的任務是直接分類或模板化生成,額外的 3,000 個範例最多增加 1-3% 的準確率。
足夠用於: 具有多樣輸入的複雜任務——多輪客戶支援、法律文件分析、醫療記錄摘要。輸入空間大且多樣的任務。
評估指標(典型): 分類準確率 93-97%。生成品質 92-96% 符合目標。正確處理 95% 以上的生產邊緣案例。
10,000 個以上範例
你得到什麼: 邊際改進。從 5,000 增加到 10,000 個範例通常只在準確率指標上增加 1-2%。從 10,000 增加到 50,000 再增加 0.5-1%。
你得不到什麼: 資料投資的成比例回報。大多數任務在 5,000 個範例之後性能曲線急劇趨於平坦。
何時值得: 需要每種語言 1,000-2,000 個範例的多語言任務。輸出空間巨大的高度多樣化生成任務(創意寫作、開放式問答)。每個百分之幾都重要的安全關鍵應用程式。
評估指標(典型): 分類準確率 95-98%。生成品質 94-97% 符合目標。收益遞減清晰可見。
收益遞減曲線
資料集大小與模型性能之間的關係遵循對數曲線,而非線性曲線。將資料集從 500 翻倍到 1,000 個範例可能將準確率提高 8%。再翻倍從 1,000 到 2,000 提高 4%。從 2,000 到 4,000,大約 2%。從 4,000 到 8,000,大約 1%。
這意味著每個改進點的成本隨資料集增長呈指數增長:
| 資料集大小 | 邊際準確率增益 | 收集成本(人工標注) | 每個百分點成本 |
|---|---|---|---|
| 0 → 500 | +35%(從基礎) | $250-1,000 | $7-29 |
| 500 → 1,000 | +8% | $250-1,000 | $31-125 |
| 1,000 → 2,000 | +4% | $500-2,000 | $125-500 |
| 2,000 → 5,000 | +3% | $1,500-6,000 | $500-2,000 |
| 5,000 → 10,000 | +1.5% | $2,500-10,000 | $1,667-6,667 |
實際含義:除非你有特定理由相信你的任務需要 10,000 個以上範例,否則從 1,000-2,000 開始,在投入更多之前進行測量。
改變數字的因素
任務複雜性
簡單的二元分類(垃圾郵件/非垃圾郵件)用 300-500 個範例達到 90% 以上的準確率。20 個以上類別的多分類需要 1,500-3,000 個。具有多樣輸出的開放式生成可能需要 3,000-5,000 個才能實現一致性。
經驗法則: 將不同輸出類別或模式的數量乘以 50-100 來估算最低資料集大小。5 個類別 × 100 = 最少 500 個範例。30 個類別 × 75 = 最少 2,250 個。
輸出多樣性
如果每個正確輸出看起來大致相同(例如,從文件中提取日期),你需要的範例較少。如果正確輸出差異很大(例如,撰寫營銷文案),你需要更多範例來覆蓋輸出空間。
日期提取任務可能在 500 個範例時達到平台。營銷文案任務可能在 3,000-5,000 個之前不會達到平台。
基礎模型能力
更強大的基礎模型需要更少的資料。在分類任務上微調 Llama 3.3 70B 用 300 個範例達到 90% 準確率。同樣的任務在 Llama 3.2 3B 上需要 800-1,000 個範例才能達到同樣的數字。
如果你能負擔運行更大的基礎模型,你能負擔更小的資料集。這是一個真實的權衡:減少資料收集的成本節省 vs 更大模型的持續推論成本。
資料品質
高品質資料是力量乘數。500 個精心整理的範例可以匹敵 2,000 個噪音較大的範例。如果你在選擇收集更多資料還是清理現有資料,先清理。下面的品質部分解釋了原因。
如何測量你何時有足夠資料
不要猜測。測量。技術很簡單,大約需要一小時來實施:
第 1 步: 留出 10-15% 的資料作為保留測試集。永遠不要在這些資料上訓練。永遠不要對這些資料進行超參數調整。這是你的基準事實。
第 2 步: 在 25% 的訓練資料上進行微調。在測試集上評估。記錄指標。
第 3 步: 在 50% 的訓練資料上進行微調。評估。記錄。
第 4 步: 在 75% 上微調。評估。記錄。
第 5 步: 在 100% 上微調。評估。記錄。
第 6 步: 繪製四個點。如果曲線在 100% 時仍然陡峭攀升,你需要更多資料。如果它在趨於平坦,你處於或接近平台。
這被稱為學習曲線分析,這是回答「我是否需要更多資料?」的唯一可靠方法,針對你的特定任務。它需要 4 次訓練運行,在 Ertas 上對於擁有 2,000 個範例的 7B 模型大約需要 30-60 分鐘的牆鐘時間。
曲線告訴你什麼
- 在 100% 時仍然陡峭: 收集更多資料。你的模型仍然渴望更多資料。
- 在 100% 時趨於平坦: 更多資料會有邊際幫助。考慮改善資料品質。
- 從 50% 到 100% 平坦: 你擁有超過所需的資料。你的瓶頸是其他東西——資料品質、模型架構或任務定義。
- 不規律(性能在某些點下降): 你的資料有品質問題。你的資料集的某些部分正在積極地損害訓練。在收集更多之前先清理。
資料過多的成本
更多資料並不總是更好。除了性能上的收益遞減,資料過多還引入了真實成本:
低品質資料在規模上增加過擬合風險。 大型、噪音較大的資料集可能教模型記憶噪音模式而非學習實際任務。這表現為訓練指標很好但在新輸入上性能很差。
訓練時間線性增長。 10,000 個範例的訓練時間比 2,000 個長 5 倍。在單個 A100 GPU 上,對 2,000 個範例進行 7B LoRA 微調大約需要 20-40 分鐘。在 10,000 個範例時,那是 1.5-3 小時。不是災難性的,但它減慢了迭代週期。
資料管理開銷。 更大的資料集更難稽核、版本化和維護。當你需要修復標注問題時,更新 10,000 個範例比更新 2,000 個範例要多得多工作。
按使用案例的實用建議
客戶支援分類(5-15 個類別)
- 從…開始: 500-800 個範例
- 生產目標: 1,000-1,500 個
- 最大有用量: 3,000 個
文件資料提取(結構化字段)
- 從…開始: 300-500 個範例
- 生產目標: 800-1,200 個
- 最大有用量: 2,000 個
內容生成(營銷文案、摘要)
- 從…開始: 800-1,200 個範例
- 生產目標: 2,000-3,000 個
- 最大有用量: 5,000-8,000 個
代碼生成(狹窄領域)
- 從…開始: 500-800 個範例
- 生產目標: 1,500-2,500 個
- 最大有用量: 5,000 個