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