SFT是目前最常見的調(diào)節(jié)模型效果的手段,然而它雖然看起來簡單(準(zhǔn)備好數(shù)據(jù)->啟動),真正優(yōu)化起效果來卻困難重重,尤其是當(dāng)我們有一堆能力項要優(yōu)化時(推理能力、閑聊能力等),事情往往不會像我們預(yù)想的那樣發(fā)展,單獨調(diào)節(jié)能力和混合調(diào)節(jié)能力完全是兩個難度。
今天就和大家分享我們在近期的一篇工作,探索混合數(shù)據(jù)后的模型優(yōu)化姿勢:
什么是SFT階段的數(shù)據(jù)組成(Data Composition)問題?
在大語言模型的監(jiān)督微調(diào)階段(Superviesd Finetuning, SFT),我們通過混合注入不同能力項的數(shù)據(jù)(數(shù)學(xué)推理,翻譯,代碼,通用能力等),來解鎖大模型多樣化的能力。然而由于不同能力項的數(shù)據(jù)的來源、領(lǐng)域、分布,以及數(shù)據(jù)規(guī)模的不同,這些因素都將對模型性能產(chǎn)生劇烈的影響。因此,SFT的數(shù)據(jù)組成問題旨在探究模型能力與各種能力項數(shù)據(jù)之間的關(guān)系,包括不同能力項的數(shù)據(jù)量、數(shù)據(jù)配比、模型參數(shù)量和微調(diào)訓(xùn)練策略等,這對未來全面提升大模型的奠定了堅實的基礎(chǔ)。
本文聚焦于SFT階段的數(shù)學(xué)推理能力,代碼生成能力,以及通用指令遵循能力,這三個能力的數(shù)據(jù)集及評測指標(biāo)的介紹如下:
? GSM8K RFT [1] 是一個增強(qiáng)的數(shù)學(xué)推理數(shù)據(jù)集,它基于GSM8K數(shù)據(jù)集[4]并結(jié)合RFT策略整合了多條推理路徑。訓(xùn)練集中包含7.5K個問題和110K個回答,我們所有實驗數(shù)學(xué)的評測指標(biāo)為GSM8k測試集分?jǐn)?shù)。
? Code Alpaca [2] 旨在構(gòu)建一個遵循指令,生成代碼的LLaMA模型,構(gòu)建方式完全基于Stanford Alpaca,包含20K對的代碼數(shù)據(jù),我們代碼生成的評測指標(biāo)為HumanEval。
? ShareGPT [3] 使用多輪對話歷史記錄,包括約9w條來自人類的提問和來自ChatGPT和其他聊天機(jī)器人的回復(fù)。我們通用能力的評測指標(biāo)為MT-Bench。
本文旨在從Data Scaling的視角,全面性地研究模型性能與不同因素之間的關(guān)系,包括數(shù)據(jù)量,數(shù)據(jù)配比,模型參數(shù)量和SFT訓(xùn)練策略。我們的文章以4個研究問題(RQ)為主線進(jìn)行探究。
RQ1: 隨著數(shù)據(jù)量的增加,數(shù)學(xué)推理、代碼生成和通用能力的性能變化趨勢如何?
實驗設(shè)置:
我們使用來自數(shù)學(xué),代碼,通用能力的訓(xùn)練集按比例{1, 1/4, 1/16, 1/64, 1/256}對不同參數(shù)量的LLaMA進(jìn)行監(jiān)督微調(diào)。來評估每種單獨能力項在不同數(shù)據(jù)量/模型參數(shù)量下的表現(xiàn)。
核心結(jié)論(圖2):
? 不同能力項有不同的Data Scaling曲線:數(shù)學(xué)推理能力,通用能力與數(shù)據(jù)量呈正相關(guān)模型的性能縮放曲線。值得注意的是通用能力只需要大約 1k數(shù)據(jù)樣本便會產(chǎn)生性能激增(數(shù)據(jù)量從1/256 到 1/64),并在達(dá)到一定閾值提高緩慢(1/64),這契合于LIMA[5]文中所提到的“Less is more”。然而代碼能力在7B,13B則呈現(xiàn)不規(guī)則的性能曲線,33B呈現(xiàn)log-linear的趨勢。
? 數(shù)據(jù)充足的情況下,更大參數(shù)量的模型往往有更強(qiáng)大的性能
RQ2: 在SFT階段中,將三種能力項數(shù)據(jù)直接混合是否會產(chǎn)生性能沖突?
實驗設(shè)置:
單數(shù)據(jù)源:分別使用{1, 1/4, 1/16, 1/64, 1/256}數(shù)量的數(shù)學(xué),代碼,通用能力數(shù)據(jù)對LLaMA模型微調(diào)。
混合數(shù)據(jù)源:分別使用{1, 1/4, 1/16, 1/64, 1/256}數(shù)量的三種能力項數(shù)據(jù),三種數(shù)據(jù)按照同等的數(shù)據(jù)比例直接混合,來對LLaMA模型微調(diào)。
核心結(jié)論(圖3):
? 與單數(shù)據(jù)源相比,混合數(shù)據(jù)源設(shè)置呈現(xiàn)低資源性能增益,而高資源性能沖突: 三種能力的性能放縮曲線一致呈現(xiàn)高資源下(1/1)混合數(shù)據(jù)源設(shè)置弱于單數(shù)據(jù)源,然而隨著數(shù)據(jù)量下降二者產(chǎn)生性能轉(zhuǎn)折,最終低資源(1/256)下混合數(shù)據(jù)源產(chǎn)生明顯性能增益。
? 隨著模型參數(shù)量的提高,數(shù)學(xué)推理與通用能力在低資源下的性能增益更加顯著
RQ3: 什么是產(chǎn)生性能沖突的關(guān)鍵因素:
實驗設(shè)置:
我們將代碼生成與數(shù)學(xué)推理數(shù)據(jù)視為特定能力數(shù)據(jù)源,而ShareGPT則為通用能力數(shù)據(jù)源。我們設(shè)計了以下三種設(shè)置來探究通用數(shù)據(jù)和特定能力數(shù)據(jù)之間的比例變化:
固定通用數(shù)據(jù),放縮特定能力數(shù)據(jù):Fix general + k (code, math)
固定特定能力數(shù)據(jù),放縮通用數(shù)據(jù):Fix (code, math)l + k general
固定1/64通用數(shù)據(jù),放縮特定能力數(shù)據(jù):Fix 1/64 general+ k (code, math)
核心結(jié)論(圖4):
? 當(dāng)不同的SFT能力之間存在顯著的任務(wù)格式和數(shù)據(jù)分布差異時(數(shù)學(xué)和通用數(shù)據(jù)之間),數(shù)據(jù)比例的影響較小。然而,當(dāng)存在一定程度的相似性時(代碼和通用數(shù)據(jù)之間),數(shù)據(jù)比例可能會導(dǎo)致明顯的性能波動。(數(shù)據(jù)分布的討論見D1)
? 即便在通用數(shù)據(jù)資源非常有限的情況下,特定能力的數(shù)據(jù)比例的放縮也沒有對通用能力造成明顯影響。
RQ4: 不同的SFT訓(xùn)練策略對數(shù)據(jù)組成的影響是什么?
實驗設(shè)置:
如圖1所示,我們探究以上SFT訓(xùn)練策略對性能的影響:
多任務(wù)學(xué)習(xí):直接混合不同的SFT能力項數(shù)據(jù)進(jìn)行SFT。若將每個數(shù)據(jù)源視為不同任務(wù),則可視為多任務(wù)學(xué)習(xí)。
順序訓(xùn)練:按順序依次在各能力項數(shù)據(jù)集上微調(diào)。由于通用能力是人類對齊的核心能力,我們將通用能力數(shù)據(jù)放在最后階段微調(diào)。
混合順序訓(xùn)練:首先在特定能力數(shù)據(jù)集(代碼、數(shù)學(xué))上進(jìn)行多任務(wù)學(xué)習(xí),然后在通用能力數(shù)據(jù)集上進(jìn)行SFT。
兩階段混合微調(diào)(DMT):我們綜合RQ1-3的結(jié)論與上述訓(xùn)練策略的優(yōu)缺點,提出DMT策略。在第一階段我們首先在特定能力數(shù)據(jù)集(代碼、數(shù)學(xué))上進(jìn)行多任務(wù)學(xué)習(xí)。在第二階段我們使用混合數(shù)據(jù)源進(jìn)行SFT,其中包括通用數(shù)據(jù)和一定比例k的特定能力數(shù)據(jù)(k = 1, 1/2, 1/4, 1/8, 1/16, 1/32),這有助于緩解模型對特定能力的災(zāi)難性遺忘。
核心結(jié)論(表1):
? 多任務(wù)學(xué)習(xí)在盡可能保留了特有能力,但是通用能力性能下降顯著。
? 兩種順序訓(xùn)練保留了通用能力能力,但是由于多階段的微調(diào)產(chǎn)生災(zāi)難性遺忘,使得他失去了太多的特定能力(尤其是數(shù)學(xué))。
? 在不同的模型參數(shù)量下(7B,13B,33B),DMT (k = 1/256)策略在特定能力方面(數(shù)學(xué),代碼)均有顯著改善,甚至對于通用能力也有一定程度的優(yōu)化。
Discussion
D1:不同能力的語義表示的可視化
實驗發(fā)現(xiàn):如上圖所示,通過對 LLaMA-13b [左]和 DMT-13b (k=1/256) [右]策略下 LLaMA-13b 的第15層的語義表示進(jìn)行可視化,我們發(fā)現(xiàn)雖然這兩個模型可以分離開數(shù)學(xué)能力的語義表示,但是在代碼數(shù)據(jù)與通用能力數(shù)據(jù)的語義表示間,仍存在一定程度的坍縮重疊現(xiàn)象。
D2: 消融通用能力數(shù)據(jù)中的代碼和數(shù)學(xué)樣本
實驗設(shè)計:為了消融通用能力數(shù)據(jù)中的特定能力數(shù)據(jù),我們使用InsTag[1]工具對通用能力數(shù)據(jù)中的樣本標(biāo)注標(biāo)簽。并通過正則匹配過濾掉“數(shù)學(xué)”,“代碼”相關(guān)數(shù)據(jù)(從90K減少到63K)。與RQ2中的設(shè)置對齊,我們從數(shù)學(xué),代碼,與過濾后的通用能力數(shù)據(jù)集中抽樣不同比例的訓(xùn)練數(shù)據(jù)(1, 1/4, 1/16, 1/64, 1/256),并按照相應(yīng)的比例直接混合后來微調(diào)LLaMA。
實驗結(jié)論:如圖6所示,移除通用能力數(shù)據(jù)中的代碼和數(shù)學(xué)后,低資源設(shè)置下依舊保持了穩(wěn)定的增益。這個消融實驗也表明通用能力中的代碼和數(shù)學(xué)樣本不是導(dǎo)致低資源性能增益的關(guān)鍵因素,而是數(shù)據(jù)的多樣性和可變性。
D3:雙階段混合微調(diào)(DMT)中第二階段特定能力數(shù)據(jù)的比例K
實驗發(fā)現(xiàn):如上圖所示,當(dāng)我們將k從0調(diào)整到1/256(k = 0等于混合順序訓(xùn)練)時,發(fā)現(xiàn)模型在特定能力和通用能力方面都表現(xiàn)出顯著的提升。相反,當(dāng)k從1/4增加到1時,模型的通用能力出現(xiàn)下降。我們認(rèn)為這與RQ2的發(fā)現(xiàn)一致,即高資源環(huán)境會導(dǎo)致沖突,而低資源環(huán)境會導(dǎo)致混合來源的增益。此外,當(dāng)k從1/256增加到1/4時,特定能力與通用能力呈現(xiàn)此消彼長的趨勢。這表明需要根據(jù)具體大模型SFT需求調(diào)整k值,以在多種能力之間實現(xiàn)平衡。
總結(jié)
大模型混合多種能力項數(shù)據(jù)進(jìn)行微調(diào)時,會呈現(xiàn)高資源沖突,低資源增益的現(xiàn)象。我們提出的DMT策略通過在第一階段微調(diào)特定能力數(shù)據(jù),在第二階段微調(diào)通用數(shù)據(jù)+少量的特定能力數(shù)據(jù),可以在保留通用能力的同時,極大程度地挽救大模型對特定能力的災(zāi)難性遺忘,這為SFT的數(shù)據(jù)組成問題提供了一個簡單易行的訓(xùn)練策略。值得注意的是,第二階段微調(diào)時混合的特定能力數(shù)據(jù)量需要根據(jù)需求而定。
一句話概括:訓(xùn)通用大模型就少混點,訓(xùn)特定能力就著重多混合點!
編輯:黃飛
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7231瀏覽量
90616 -
語言模型
+關(guān)注
關(guān)注
0文章
556瀏覽量
10550 -
SFT
+關(guān)注
關(guān)注
0文章
9瀏覽量
6853 -
大模型
+關(guān)注
關(guān)注
2文章
2891瀏覽量
3621
原文標(biāo)題:總結(jié)
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Waiting for SFT on the OMAP-L138... 問題?
停留在Waiting for SFT on the OMAP-L138
如何進(jìn)行高效的時序圖神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
探索一種降低ViT模型訓(xùn)練成本的方法
FSB50760SFT Motion SPM
FSB50660SFT Motion SPM
CAT-D48-SFT273 DEUTSCH 沖壓成型端子
小米在預(yù)訓(xùn)練模型的探索與優(yōu)化

面向K近鄰分類性能的遺傳訓(xùn)練集優(yōu)化算法
設(shè)計模式最佳實踐探索—策略模式
微軟開源“傻瓜式”類ChatGPT模型訓(xùn)練工具
YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練策略詳解

評論