智源千萬級指令微調(diào)數(shù)據(jù)集Infinity-Instruct持續(xù)迭代,Llama3.1僅微調(diào)即可接近GPT-4
指令微調(diào)是引導(dǎo)語言模型落地、構(gòu)建高性能對話模型的關(guān)鍵一步。針對目前開源的指令數(shù)據(jù)集質(zhì)量低、覆蓋領(lǐng)域少、數(shù)據(jù)信息不透明等問題,智源研究院推出了千萬級指令微調(diào)數(shù)據(jù)集Infinity Instruct。該數(shù)據(jù)集今年6月發(fā)布,近日完成了新一輪迭代,包括Infinity-Instruct-7M基礎(chǔ)指令數(shù)據(jù)集和Infinity-Instruct-Gen對話指令數(shù)據(jù)集。
Infinity-Instruct-7M包含744萬條數(shù)學(xué)、代碼、常識問答等領(lǐng)域的基礎(chǔ)指令數(shù)據(jù),用于進一步全面提升預(yù)訓(xùn)練模型的基礎(chǔ)能力。Opencompass測試結(jié)果顯示,經(jīng)過在Infinity-Instruct-7M數(shù)據(jù)集上的微調(diào),Llama3.1-70B、Mistral-7B-v0.1綜合能力評價可基本對齊官方自己發(fā)布的對話模型,且InfInstruct-7M-Mistral-7B的綜合評分超過了GPT-3.5,InfInstruct-7M-Llama3.1-70B已十分接近GPT-4。
*官方匯報結(jié)果
Infinity-Instruct-Gen包含149萬條合成的復(fù)雜指令,用于提升模型在各種真實對話場景中回復(fù)的魯棒性。基于該數(shù)據(jù),對經(jīng)過Infinity-Instruct-7M增強的模型做進一步SFT,即可取得超過官方對話模型的效果。而大多數(shù)的官方對話模型除了做基本的SFT外,還會做DPO/RLHF等對齊訓(xùn)練以提升模型的對話能力,產(chǎn)生額外的訓(xùn)練成本。
智源在MTBench、AlpacaEval2、Arena-Hard三個主流榜單上評測了Infinity-Instruct 7M+Gen對模型對話能力的增益,其中,AlpacaEval2和Arena-Hard與真實人類評價榜單Chatbot Arena有很高的一致率,MTBench則評測模型的多輪對話能力。
如下左圖所示,InfInstruct-7M-Gen-Mistral-7B,InfInstruct-7M-Gen-Llama3.1-8B,InfInstruct-7M-Gen-Llama3.1-70B等經(jīng)過Infinity Instruct微調(diào)的模型已經(jīng)超越了官方對話模型的性能。Arena-Hard上InfInstruct-7M-Gen-Llama3.1-70B(66)超過了Llama3.1-70B-Instruct(55.7)和Llama3.1-405B-Instruct(64.1)。此外,如右下圖所示,AlpacaEval2.0榜單上,InfInstruct-7M-Gen-Llama3.1-70B(46.1)更是超過了GPT4-0314(35.3),非常接近GPT4-1106(50)的水準,真正實現(xiàn)了GPT-4級別的對話能力。
Infinity Instruct數(shù)據(jù)集今年6月在Flopsera,Huggingface等平臺發(fā)布后,快速到達了Huggingface Dataset的Trending第一,且吸引大量基于Infinity Instruct的開源微調(diào)工作。
下載使用 Infinity-Instruct可在Huggingface、DataHub、Flopsera等平臺下載。
Huggingface: https://huggingface.co/datasets/BAAI/Infinity-Instruct
DataHub: https://data.baai.ac.cn/details/InfinityInstruct
Flopsera: http://open.flopsera.com/flopsera-open/details/InfinityInstruct
Huggingface提供了快速下載Infinity-Instruct系列數(shù)據(jù)集及模型的代碼。
##數(shù)據(jù)集下載
from datasets import load_dataset
dataset_7M = load_dataset('BAAI/Infinity-Instruct','7M',split='train')
dataset_Gen = load_dataset('BAAI/Infinity-Instruct','Gen',split='train')
##模型下載
from transformers import AutoModelForCausalLM, AutoTokenizer
model_llama3_1_70B = AutoModelForCausalLM.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Llama3_1-70B",
torch_dtype=torch.bfloat16,
device_map="auto"
)
tokenizer_llama3_1_70B = AutoTokenizer.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Llama3_1-70B")
model_mistral_7B = AutoModelForCausalLM.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Mistral-7B",
torch_dtype=torch.bfloat16,
device_map="auto"
)
tokenizer_mistral_7B = AutoTokenizer.from_pretrained("BAAI/Infinity-Instruct-7M-Gen-Mistral-7B")
Infinity-Instruct給每一條指令數(shù)據(jù)標注了語種、能力類型、任務(wù)類型、數(shù)據(jù)來源等信息,便于使用者根據(jù)自身需要篩選數(shù)據(jù)子集。
技術(shù)路線
智源研究院搜集了7500萬余條開源指令作為待選指令池,采用數(shù)據(jù)選擇與指令合成兩條途徑快速迭代,構(gòu)建高質(zhì)量的基礎(chǔ)、對話指令數(shù)據(jù)集,以填補開源對話模型與GPT-4之間的基礎(chǔ)能力、對話能力差距。
基礎(chǔ)指令數(shù)據(jù)篩選
對于基礎(chǔ)指令數(shù)據(jù)集,篩選流程主要考慮訓(xùn)練數(shù)據(jù)集和目標數(shù)據(jù)集數(shù)據(jù)分布的對齊,基于DSIR的思路,在訓(xùn)練數(shù)據(jù)集上進行排序,選取訓(xùn)練集的子集,擬合目標數(shù)據(jù)集的分布。
對話數(shù)據(jù)集生成、進化、評價
對于對話指令數(shù)據(jù)集,Infinity-Instruct首先采樣了部分高質(zhì)量的開源指令集,并為每條指令分配一組標簽,描述完成指令所需的能力和知識。標簽系統(tǒng)共有兩個級別:
第一級標簽: 宏觀類別,如 "自然語言處理 "和 "數(shù)學(xué)推理"。共包括 26 個類別。
第二集標簽:刻畫具體任務(wù),包含超過1.5w個類別。
基于此系統(tǒng),就能識別指令集的內(nèi)容分布以及完成不同任務(wù)所需的能力,構(gòu)建一個高質(zhì)量的種子數(shù)據(jù)集。隨后,Infinity-Instruct參考WizardLM的方法對種子指令在廣度、深度方向上進行擴展,并用AI Agent從指令合規(guī)性的角度剔除未能進化的數(shù)據(jù)。最后,進化后的指令作為初始輸入,使用AI Agent扮演不同角色,為每條指令生成 2 至 4 輪對話。
數(shù)據(jù)去污、去重
為避免構(gòu)造的數(shù)據(jù)存在自身重復(fù)、或與評測榜單重復(fù)的樣本,Infinity-Instruct對所有數(shù)據(jù)應(yīng)用了MinHash進行去重。并基于BGE檢索剔除了和AlpacaEval、MT-Bench等評測榜單重復(fù)的樣本。
訓(xùn)練框架
考慮到微調(diào)成本,項目使用FlagScale去掉訓(xùn)練樣本中不必要的pad,壓縮樣本量,同時應(yīng)用模型切分、切分支持大模型在數(shù)百萬量級指令數(shù)據(jù)集上的訓(xùn)練。初步測試可比傳統(tǒng)微調(diào)框架,如FastChat+Accelerate快三倍以上。
未來規(guī)劃 Infinity Instruct未來將開源基礎(chǔ)、對話指令數(shù)據(jù)處理的全流程代碼,以及模型訓(xùn)練代碼。同時,智源將探索擴展Infinity Instruct數(shù)據(jù)策略到對齊、預(yù)訓(xùn)練階段,支持語言模型構(gòu)建全生命周期的高質(zhì)量數(shù)據(jù)需求。
Infinity RLAIF:基于Infinity Instruct標簽體系以及生成指令構(gòu)建了50K 對齊數(shù)據(jù)的第一個版本,實驗結(jié)果顯示,Infinity-Gemma-2-9B-SimPO 在AlpacaEval上達到 73.4,在Arena Hard上達到 59.1。未來會進行更多對齊數(shù)據(jù)、算法的探索。
Infinity Math:基于多個開源數(shù)學(xué)數(shù)據(jù)集構(gòu)建了可無限擴增的數(shù)學(xué)領(lǐng)域指令數(shù)據(jù)集,其中POT指令數(shù)據(jù)可提升在多個7B的基礎(chǔ)語言模型和基礎(chǔ)代碼模型的zero-shot數(shù)學(xué)能力180%-510%,相關(guān)論文被CIKM 2024接收,歡迎引用。
@misc{zhang2024inifinitymath,
title={InfinityMATH: A Scalable Instruction Tuning Dataset in Programmatic Mathematical Reasoning},
author={Bo-Wen Zhang and Yan Yan and Lin Li and Guang Liu},
year={2024},
eprint={2408.07089},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2408.07089},
}