SFT 指令微調(diào)數(shù)據(jù)如何構(gòu)建?
SFT的重點(diǎn)是學(xué)習(xí)樣式,而非知識(shí)注入,所以SFT的樣本在于其質(zhì)量而非數(shù)量,少量但精良的樣本往往勝過(guò)大批中低品質(zhì)的樣本,實(shí)現(xiàn)同樣甚至更優(yōu)的微調(diào)效果。通常情況下,2-10k數(shù)據(jù)就會(huì)有一個(gè)不錯(cuò)的效果。這一理念在Meta發(fā)布的《LIMA: Less Is More for Alignment》論文中得到了有力闡述,該文獻(xiàn)強(qiáng)調(diào)了在指令微調(diào)過(guò)程中,高品質(zhì)微調(diào)數(shù)據(jù)的決定性作用。據(jù)此,SFT數(shù)據(jù)應(yīng)當(dāng)將重心放在提升樣本質(zhì)量的打磨上,而非單純追求數(shù)量的增長(zhǎng)。
1、構(gòu)建策略
- 任務(wù)導(dǎo)向策略:明確需要模型完成的具體任務(wù),如文本分類、情感分析、機(jī)器翻譯等,根據(jù)任務(wù)定義構(gòu)建相應(yīng)的指令模板。例如,對(duì)于文本分類任務(wù),指令可以是“將以下文本分類為正面或負(fù)面”。
- 數(shù)據(jù)來(lái)源多樣化策略:收集與任務(wù)相關(guān)的原始數(shù)據(jù),數(shù)據(jù)來(lái)源可以包括公開(kāi)數(shù)據(jù)集、專業(yè)數(shù)據(jù)庫(kù)、眾包平臺(tái)等。同時(shí),可以結(jié)合領(lǐng)域知識(shí)庫(kù)生成包含特定領(lǐng)域概念的指令和響應(yīng)。
- 數(shù)據(jù)增強(qiáng)策略:通過(guò)同義詞替換、句子重構(gòu)等方法增加數(shù)據(jù)多樣性,提高模型的泛化能力。還可以適當(dāng)構(gòu)建few-shot及COT(Chain of Thought)數(shù)據(jù)加入訓(xùn)練,有助于模型的指令理解以及多輪對(duì)話能力。
- 多任務(wù)學(xué)習(xí)與混合訓(xùn)練策略:可以采用多任務(wù)學(xué)習(xí)的方式,將不同的SFT數(shù)據(jù)源混合后進(jìn)行訓(xùn)練。也可以采用混合序列訓(xùn)練或雙階段混合微調(diào)(DMT)策略,先在專業(yè)數(shù)據(jù)集上訓(xùn)練,再在通用能力數(shù)據(jù)集上訓(xùn)練,或在第二階段加入不同比例的專業(yè)數(shù)據(jù)。
2、構(gòu)建原則
樣本多樣性(Sample Diversity)
- 指令多樣性:考察樣本中指令的覆蓋范圍是否廣泛,是否包含了各類任務(wù)類型、不同難度級(jí)別以及多樣化的指令結(jié)構(gòu)和表達(dá)方式,確保模型在微調(diào)后能應(yīng)對(duì)多種復(fù)雜情境。
- 內(nèi)容多樣性:檢查樣本中提供的文本內(nèi)容是否涵蓋了不同主題、文體、長(zhǎng)度以及語(yǔ)境,以避免模型在特定領(lǐng)域或文本類型上過(guò)擬合,確保其具備良好的泛化能力。
答案質(zhì)量(Answer Quality)
- 準(zhǔn)確性(Accuracy):評(píng)估答案是否準(zhǔn)確無(wú)誤地響應(yīng)了給定指令和內(nèi)容,是否忠實(shí)反映了任務(wù)要求,且不包含事實(shí)性錯(cuò)誤、邏輯矛盾或語(yǔ)義模糊。
- 完備性(Completeness):考察答案是否全面覆蓋了指令所要求的所有任務(wù)點(diǎn),尤其對(duì)于多步驟或復(fù)合任務(wù),答案應(yīng)完整體現(xiàn)所有必要的操作結(jié)果。
- 簡(jiǎn)潔性與清晰度(Conciseness & Clarity):衡量答案是否言簡(jiǎn)意賅、表達(dá)清晰,避免冗余信息或含糊表述,確保模型在微調(diào)后生成的輸出易于理解和使用。
一致性(Consistency)
- 內(nèi)部一致性:檢查同一指令對(duì)不同內(nèi)容的處理結(jié)果是否保持一致,即模型在相似情境下應(yīng)給出相似的答案。
- 外部一致性:對(duì)比樣本答案與已知的知識(shí)庫(kù)、專家判斷或公認(rèn)的基準(zhǔn)結(jié)果,確保答案符合領(lǐng)域共識(shí)和常識(shí)。
難度適配(Difficulty Calibration)
難易程度分布:分析樣本集中簡(jiǎn)單、中等、復(fù)雜任務(wù)的比例,確保微調(diào)數(shù)據(jù)集包含不同難度級(jí)別的樣本,有助于模型逐步提升處理復(fù)雜指令的能力。
噪聲控制(Noise Reduction)
- 標(biāo)簽錯(cuò)誤檢查:識(shí)別并剔除標(biāo)注錯(cuò)誤或不一致的樣本,確保答案與指令、內(nèi)容間的映射關(guān)系正確無(wú)誤。
- 數(shù)據(jù)清洗:去除重復(fù)樣本、無(wú)關(guān)內(nèi)容或低質(zhì)量文本,提升數(shù)據(jù)集的整體純凈度。
3、構(gòu)建流程
- 確定任務(wù)和指令:明確任務(wù)定義,根據(jù)任務(wù)構(gòu)建相應(yīng)的指令模板。
- 收集原始數(shù)據(jù):從公開(kāi)數(shù)據(jù)集、專業(yè)數(shù)據(jù)庫(kù)或眾包平臺(tái)等渠道收集與任務(wù)相關(guān)的原始數(shù)據(jù)。
- 數(shù)據(jù)清洗:對(duì)收集的數(shù)據(jù)進(jìn)行清洗,去除無(wú)效或不相關(guān)的信息。
- 標(biāo)注數(shù)據(jù):按照制定的標(biāo)注標(biāo)準(zhǔn),通過(guò)人工標(biāo)注或使用半自動(dòng)化工具標(biāo)注數(shù)據(jù),包括指令和預(yù)期輸出。
- 設(shè)計(jì)指令微調(diào)數(shù)據(jù)集:將數(shù)據(jù)集分割為訓(xùn)練集、驗(yàn)證集和測(cè)試集。同時(shí),根據(jù)需要對(duì)指令進(jìn)行格式化,確保與模型輸入要求一致。
- 增強(qiáng)數(shù)據(jù)多樣性:通過(guò)數(shù)據(jù)增強(qiáng)方法和覆蓋不同場(chǎng)景,提高數(shù)據(jù)的多樣性和模型的泛化能力。
- 評(píng)估和迭代:對(duì)構(gòu)建的數(shù)據(jù)集進(jìn)行評(píng)估,檢查數(shù)據(jù)質(zhì)量和多樣性是否符合要求。根據(jù)評(píng)估結(jié)果進(jìn)行迭代優(yōu)化,以提高數(shù)據(jù)集的質(zhì)量。