大模型微調(diào)技巧 | 高質(zhì)量指令數(shù)據(jù)篩選方法-MoDS
寫在前面
大家好,我是劉聰NLP。
大模型時代,指令微調(diào)已經(jīng)成了算法工程師們必不可少的技能。而在指令微調(diào)過程中,我們往往會從數(shù)據(jù)數(shù)量和數(shù)據(jù)質(zhì)量兩個維度來對模型進(jìn)行調(diào)優(yōu)。
今天給大家?guī)硪粋€新的方法-MoDS,一種面向模型的指令數(shù)據(jù)選擇方法-《MoDS: Model-oriented Data Selection for Instruction Tuning》,核心是從數(shù)據(jù)質(zhì)量、覆蓋范圍、必要性三個角度來對原始數(shù)據(jù)集進(jìn)行數(shù)據(jù)過濾,最終獲取對于不同模型的高質(zhì)量數(shù)據(jù)集。并且相較于自動識別方法,在使用更少數(shù)據(jù)的情況下,就可以獲取更好的效果。
paper: https://arxiv.org/pdf/2311.15653.pdf
github: https://github.com/CASIA-LM/MoDS
MoDS方法
MoDS方法主要通過質(zhì)量、覆蓋范圍、必要性三個指標(biāo)來進(jìn)行數(shù)據(jù)的篩選,其中數(shù)據(jù)質(zhì)量是為了保證所選的指令數(shù)據(jù)的問題和答案都足夠好;數(shù)據(jù)覆蓋范圍是為了讓所選擇的數(shù)據(jù)中指令足夠多樣、涉及知識范圍更廣;數(shù)據(jù)必要性是選擇對于大模型較復(fù)雜、較難或不擅長的數(shù)據(jù)以填補(bǔ)大模型能力的空白。整體流程如下圖所示,
圖片
質(zhì)量篩選
對于數(shù)據(jù)進(jìn)行質(zhì)量過濾時,采用OpenAssistant的reward-model-debertav3-large-v2模型(一個基于DeBERTa架構(gòu)設(shè)計的獎勵模型)對數(shù)據(jù)進(jìn)行質(zhì)量打分。講原始數(shù)據(jù)的Instruction、Input、Output的三個部分進(jìn)行拼接,送入到獎勵模型中,得到一個評分,當(dāng)評分超過α?xí)r,則認(rèn)為數(shù)據(jù)質(zhì)量達(dá)標(biāo),構(gòu)建一份高質(zhì)量數(shù)據(jù)集-Data1。
圖片
多樣性篩選
為了避免所選質(zhì)量數(shù)據(jù)高度相似,通過K-Center-Greedy算法進(jìn)行數(shù)據(jù)篩選,在最大化多樣性的情況下,使指令數(shù)據(jù)集最小。獲取種子指令數(shù)據(jù)集(Seed Instruction Data)-SID。
圖片
在該步驟中,采用BERT模型為指令數(shù)據(jù)生成句向量來計算不同數(shù)據(jù)之間的距離。
必要性篩選
不同的大型語言模型在預(yù)訓(xùn)練過程中所學(xué)到的知識和具有的能力不同,因此在對不同的大型語言模型進(jìn)行指令微調(diào)時,所需的指令數(shù)據(jù)也需要不同。
對于一條指令,如果給定的大型語言模型本身能夠生成較好的回答,則說明給定的大型語言模型具有處理該指令或者這類指令的能力,反之亦然,并且哪些不能處理的指令對于模型微調(diào)來說更為重要。
- 使用SID數(shù)據(jù)集對模型進(jìn)行一個初始訓(xùn)練
- 用訓(xùn)練好的初始模型對整個高質(zhì)數(shù)據(jù)集-Data1中的指令進(jìn)行結(jié)果預(yù)測
- 利用獎勵模型對結(jié)果進(jìn)行評分,當(dāng)分值小于β時,說明初始模型不能對這些指令生成優(yōu)質(zhì)的回復(fù),不具有處理這些類型指令的能力,獲取必要性數(shù)據(jù)集-Data2
- 對Data2進(jìn)行多樣性篩選,獲取增強(qiáng)指令數(shù)據(jù)集(Augmented Instruction Data)-AID。
模型訓(xùn)練
最終利用種子指令數(shù)據(jù)集和增強(qiáng)指令數(shù)據(jù)集一起對模型進(jìn)行指令微調(diào),獲得最終模型。
實(shí)驗(yàn)結(jié)果
訓(xùn)練數(shù)據(jù)
訓(xùn)練數(shù)據(jù)有兩種,一種是單獨(dú)的Alpaca數(shù)據(jù)集(52k),一種時混合數(shù)據(jù)集(214k),包含HC3數(shù)據(jù)集、Alpaca數(shù)據(jù)集、Alpaca-evol-instruct數(shù)據(jù)集、Dolly-v2數(shù)據(jù)集、InstructWild數(shù)據(jù)集和LIMA數(shù)據(jù)集。
測試數(shù)據(jù)主要包含5個測試集,分別為Koala數(shù)據(jù)集(180)、WizardLM數(shù)據(jù)集(218)、Self-instruct數(shù)據(jù)集(252)、Vicuna數(shù)據(jù)集(80)和LIMA數(shù)據(jù)集(300)。
訓(xùn)練超參
模型基座采用LLaMA2-7B模型,訓(xùn)練過程中學(xué)習(xí)率為2e-5,warmup的比率為0.03,權(quán)重衰減為0.0,批大小為128,訓(xùn)練輪數(shù)為3。在質(zhì)量評價和必要性評價過程中,Alpaca數(shù)據(jù)集的α和β均設(shè)置為0.0,混合數(shù)據(jù)集的α和β分別設(shè)置為1.0和-1.0。
在模型測試過程中,采用ChatGPT和GPT4作為裁判,對模型生成結(jié)果從相關(guān)性和準(zhǔn)確性兩個角度進(jìn)行打分,每個角度的評分從1到10。在評價兩個模型勝、平、負(fù)時,當(dāng)兩個角度評分都高時為勝;當(dāng)兩個角度評分一高一低時為平;當(dāng)兩個角度評分都低時為負(fù)。
結(jié)果分析
在Alpaca數(shù)據(jù)集中通過MoDS方法獲取1k數(shù)據(jù)的效果要優(yōu)于全量數(shù)據(jù)訓(xùn)練的結(jié)果,如下圖所示。
圖片
在Alpaca數(shù)據(jù)集中MoDS方法在選擇2k數(shù)據(jù)時,訓(xùn)練效果優(yōu)于基于IFD的自動選擇方法,如下表所示。
圖片
在混合數(shù)據(jù)及中MoDS方法獲取4k數(shù)據(jù)的效果全面優(yōu)于全量數(shù)據(jù)訓(xùn)練的結(jié)果,如下圖所示。
圖片
驗(yàn)證指令多樣性選擇的重要性,與隨機(jī)選擇進(jìn)行對比,如下圖所示。
圖片
驗(yàn)證必要性篩選的重要性,與僅用種子數(shù)據(jù)訓(xùn)練的模型進(jìn)行對比,如下圖所示。
圖片
寫在最后
大模型時代,大多數(shù)算法工程師已經(jīng)變成了數(shù)據(jù)工程師,如何構(gòu)造出讓模型表現(xiàn)更好地數(shù)據(jù),變成了大家的日常工作,但千萬不要小看這份工作,往往細(xì)節(jié)決定成敗。
本文轉(zhuǎn)載自 ??NLP工作站??,作者: 劉聰NLP
