數據合成方法-讓模型自己說出用了哪些指令對齊數據
寫在前面
大家好,我是劉聰NLP。
大模型時代,數據至上,如何利用大模型合成更多高質量數據也備受關注。
今天給大家分享一個有意思的大模型合成數據方法-MAGPIE,在不需要種子數據和額外人工干預的情況下,挖掘出對齊過的模型自身的指令數據。
《MAGPIE: Alignment Data Synthesis from Scratch by Prompting Aligned LLMs with Nothing》
paper: https://arxiv.org/abs/2406.08464
github: https://github.com/magpie-align/magpie
核心思想:對齊過的大模型本身是經過大量指令數據對齊得來,往往這些對齊后的模型接受的輸入通常由“前置查詢模板”、“查詢內容”、“后置查詢模板”組成(例如:Llama2-Chat模型接受的輸入是"[INST] Hi! [/INST]",[INST] 是前置查詢模板”,[/INST]則是后置查詢模板)當對模型僅輸入前置模板時,模型會自回歸的合成“查詢內容”;并且當組合完全時,開源獲得模型的回復結果。
這樣就變相地挖掘出對齊模型的指令數據,你以為只開了模型,我直接挖向
方法介紹
如上圖所示,合成數據主要涉及兩個步驟:
- 指令合成:僅給大模型輸入前置查詢模板“<|start_header_id|>user<|end_header_id|>”,大模型會自動續寫出指令內容“What materials should I use to build a nest?”
- 回復合成:將生成的指令內容與前置查詢模板、后置查詢模板拼接“<|start_header_id|>user<|end_header_id|>What materials should I use to build a nest?<|start_header_id|>assistant<|end_header_id|>”輸入到大模型中,大模型給出回復結果“Other birds collect twigs for their nests. Magpies acquire jewels for theirs.”
注意:在指令合成過程中,Temperature和Top-p都需要開得比較大,保證指令的多樣性;在回復合成過程中,采用貪婪解碼,默認概率最高的Token可能來自模型的訓練語料。
當然直接生成的指令是涉及的場景是廣泛、隨機的,如果需要針對限定任務進行數據生成,可以通過增加系統提示詞來限定場景,比如:增加對數學任務進行指令數據生成,
還可以構造偏好數據,額外利用模型基座生成回復,再通過獎勵模型FsfairX-LLaMA3-RM-v0.1進行打分,保留合成回復分數大于基座回復分數的數據。
數據分析
衡量合成數據好壞,最簡單直接辦法就是SFT一把模型,比較訓練后模型的效果。
MAGPIE方法利用Llama3-8B-Instruct模型和Llama3-70B-Instruct模型分別構造了MAGPIE-Air數據和MAGPIE-Pro數據,詳細分布如下表所示,
與ShareGPT、WildChat、Evol Instruct、UltraChat、OpenHermes和Tulu V2 Mix數據分別對Llama3-8B模型進行微調,效果如下表所示,
采用MAGPIE-Air和MAGPIE-Pro訓練的模型,要比其他數據集訓練的模型效果要好,甚至在AlpacaEval 2榜單上超過了原始的Llama3-Instruct模型。
Pro數據訓練的模型優于Air數據訓練的模型,主要是Llama3-70B-Instruct模型能力更強,獲得的指令數據質量更高。
經過過濾的數據集訓練的模型效果比原始數據集更優,其中過濾指標包括:
- 指令長度:指令中的字符總數。
- 回復長度:響應中的字符總數。
- 任務類別:指令的類別,分布如下圖所示,
- 指令質量:根據指令的清晰度、特定性和連貫性,分為“非常差”、“差”、“一般”、“好”和“優秀”5個等級。
- 指令難度:根據指令中描述的任務所需的知識水平,分為“非常容易”、“容易”、“中等”、“困難”和“非常困難”5個等級。
- 指令相似度:采用all-mpnet-base-v2模型對指令進行向量化表征,計算指令之間的相似程度,篩選出重復或相似的樣本。
- 獎勵值:采用FsfairX-LLaMA3-RM-v0.1模型對回復內容進行評分,通過過濾低質量的樣本。
- 獎勵差:利用獎勵模型對基模生成的回復評分,通過獲得更高質量的樣本。
上面每個過濾數據的詳細過濾規則如下表所示,
利用MAGPIE-Pro-300K-Filtered數據集,訓練Qwen1.5-4B和Qwen1.5-7B模型的效果要好于Qwen1.5-4B-Chat和Qwen1.5-7B-Chat模型,說明MAGPIE方法獲取的指令數據對其他非同源模型,依然有效。
多輪數據的質量要高于單論數據集。
其他榜單(MMLU 、ARC、HellaSwag、TruthfulQA、Winogard、GSM8K、MMLU-Redux)上的效果如下,
對MAGPIE數據進行安全性分析,利用Llama-Guard-2模型進行預測,有害指令少于1%。
寫在最后
MAGPIE方法不用種子數據,不用昂貴的GPT4 API接口,僅靠挖掘開源模型本身,就可以獲取高質量合成數據,是個有趣的研究。
