AI算法 | SFT數據篇
1、SFT需要多少條數據
SFT所需數據量
一般任務:對于大多數常見的自然語言處理任務(如文本分類、情感分析、簡單對話等),SFT的數據量通常在2k-10k之間。這個范圍的數據量既能保證模型學習到足夠的領域知識,又不會因為數據量過大而導致訓練成本過高。
復雜任務:對于復雜的任務,如數學推理、代碼生成、多輪對話等,可能需要更多的數據來訓練。這些任務通常需要模型具備更強的邏輯推理能力和更豐富的領域知識,因此數據量可能需要達到10k以上。
少樣本學習:對于一些簡單的任務,如人類閱讀和生成能力,僅在1000個樣本上進行SFT也可能取得不錯的效果。這表明在數據質量較高的情況下,少量數據也可以有效提升模型的性能。
訓練策略
Epoch數量:根據SFT數據量的大小,可以設定2-10個epoch。一般來說,epoch數量和數據量成反比關系。如果數據量較少,可以適當增加epoch數量,以確保模型能夠充分學習;如果數據量較多,則可以減少epoch數量,以避免過擬合。
數據質量和效果:SFT數據的關鍵在于準確性和多樣性,而不僅僅是數據量。高質量的數據可以顯著提升模型的性能。例如,在數據比較精確的情況下,5k的數據搭配5個epoch,通常就能得到一個不錯的效果。
實際操作建議
數據清洗和標注:在進行SFT之前,務必對數據進行嚴格的清洗和標注,確保數據的準確性和一致性。
少樣本學習的優勢:如果任務相對簡單,可以嘗試使用少樣本學習策略。即使只有1000個樣本,也可能通過精心設計的訓練過程取得良好的效果。
復雜任務的策略:對于復雜的任務,如數學推理或代碼生成,建議逐步增加數據量,并通過多輪實驗調整epoch數量,以找到最優的訓練策略。
2、SFT的數據配比
在進行SFT(監督式微調)時,數據配比是一個關鍵因素,它直接影響模型的性能和泛化能力。以下是根據最新搜索結果總結的SFT數據配比的建議:
數據配比的基本原則
多樣化與平衡:SFT數據應包含多種類型的任務和領域,以確保模型能夠學習到不同場景下的知識。例如,在多任務學習中,直接混合不同的SFT數據源進行訓練,可以視為多任務學習。
避免過度集中:在數據量較低的情況下,數據組合會帶來各種能力的提高,但在數據量較高的情況下,能力則會發生沖突。因此,應避免數據過度集中在某一特定任務或領域。
通用與特定能力的平衡:在數據配比中,需要平衡通用能力和特定能力的數據。例如,在雙階段混合微調(DMT)策略中,首先在特定能力數據集(如代碼、數學)上進行多任務學習,然后在通用能力數據集上進行SFT。
具體的數據配比策略
多任務學習:直接混合不同的SFT數據源進行訓練。這種方法可以保留特定能力,但可能會對通用能力造成較大影響。
順序訓練:按順序依次在各能力項數據集上微調。這種方法可以保留通用能力,但可能會導致特定能力的災難性遺忘。
混合順序訓練:先在特定能力數據集上進行多任務學習,然后在通用能力數據集上進行SFT。這種方法可以較好地平衡特定能力和通用能力。
雙階段混合微調(DMT):在第一階段在特定能力數據集上進行多任務學習;在第二階段使用混合數據源進行SFT,其中包括通用數據和一定比例的特定能力數據(如k = 1/256)。這種方法在特定能力方面(如數學、代碼)有顯著改善,同時對通用能力也有一定程度的優化。
2.1雙階段混合微調(DMT)
第一階段:特定能力數據微調
數據選擇:在第一階段,選擇特定領域的數據集進行微調,這些數據集通常與目標任務直接相關。例如,如果目標是提升模型的數學推理和代碼生成能力,可以選擇數學推理數據集(如GSM8K RFT)和代碼生成數據集(如Code Alpaca)。
數據配比:在第一階段,通常將這些特定領域的數據集進行混合微調。例如,可以將數學推理數據和代碼生成數據按1:1的比例混合,以確保模型能夠同時學習到兩種特定能力。
第二階段:混合數據微調
數據組合:在第二階段,將通用能力數據(如ShareGPT)與第一階段的特定能力數據進行混合。通用能力數據通常用于提升模型的通用對話能力和人類對齊能力。
數據配比:第二階段的數據配比是DMT策略的核心。通常會使用一定比例的特定能力數據與通用能力數據混合。例如,可以將特定能力數據(數學和代碼)與通用能力數據按1/256的比例混合。這種比例可以根據模型的具體需求進行調整,以在特定能力和通用能力之間實現平衡。
動態調整:在實際應用中,可以根據模型在特定任務上的表現動態調整特定能力數據的比例。例如,如果發現模型在數學推理任務上的表現下降,可以適當增加數學推理數據的比例。
2.2數據配比結果
- 多任務學習在這些策略中保留了專業能力,但同時也是對通用能力傷害最大的策略。
- 順序訓練和混合順序訓練保留了通用能力,但失去了太多的領域能力。因為在最后的微調階段,混合順序訓練策略不受領域數據的影響,從而有效地保留了其泛化能力。
- DMT策略在特定能力(如數學推理和代碼生成)方面有顯著提升,同時對通用能力也有一定程度的優化。DMT策略通過在第二階段加入特定能力數據,有效緩解了模型對特定能力的災難性遺忘問題。這種策略在不同模型參數量(如7B、13B、33B)下均表現出良好的效果。
2.3數據配比總結
低資源設置:在數據量有限的情況下,混合不同來源的數據可以相互促進,提高模型性能。例如,在通用能力數據中加入少量的特定能力數據,可以提升模型在特定任務上的表現。
高資源設置:當數據量充足時,來自其他領域的數據可能被視為噪聲,影響模型在特定任務上的表現。因此,在高資源環境下,需要謹慎調整特定能力數據的比例,以避免性能沖突。