當「合成數據」遇上智慧體
過去一年,我們見證了智慧體的興起。智慧體可以生成高品質的數據,透過反思和迭代,其能力反超了底層基礎大模型。
在這個過程中,智慧體可以回顧解決方案,自我批評,並改進解決方案。它們甚至可以利用工具,如搜尋API、計算器、程式碼解釋,來擴展大模型的能力。
此外,多智慧體還可以帶來更多的優勢,比如模擬場景,同時生成新的提示和回應。它們還可以實現數據生成工作流程的自動化,減少或消除某些任務對人工干預的需求。
論文中,作者提出了「生成式教學」的概念。這是說,使用合成數據進行後訓練,特別是透過強大的模型創建數據,來教另一個模型新技能或行為。
AgentInstruct是生成式教學的一個智慧體解決方案。
總而言之,AgentInstruct可以創建:
- 高品質數據:使用強大的模型如GPT-4,結合搜尋和程式碼解釋器等工具。
- 多樣化數據:AgentInstruct同時生成提示和回應。它使用多智慧體(配備強大的LLM、工具和反思流程)和一個包含100多個子類別的分類法,來創建多樣化和高品質的提示和回應。
- 大量數據:AgentInstruct可以自主運行,並可以應用驗證和數據過濾的流程。它不需要種子提示,而是使用原始文件作為種子。
生成式教學:AgentInstruct
我們如何創建海量數據?如何保證生成的數據具有多樣性?如何生成複雜或微妙的數據?
為此,研究人員概述了解決這些挑戰的結構化方法:
具體來說,AgentInstruct定義了三種不同的自動化生成流程:
內容轉換流程:將原始種子轉換為中間表示,簡化了針對特定目標創建指令的過程。
種子指令生成流程:由多個智慧體組成,以內容轉換流程的轉換後種子為輸入,生成一組多樣化的指令。
指令改進流程:以種子指令流程的指令為輸入,迭代地提升其複雜性和品質。
接下來,研究人員為17種不同的技能實現了這些流程,每種技能都有多個子類別。這些技能包括閱讀理解、問答、編碼、檢索增強生成、創意寫作、工具/API使用和網路控制。
實驗結果
正如開頭所述,研究人員使用2580萬對指令,微調Mistral-7b-v0.1模型,然後得到Orca-3。
那麼經過使用AgentInstruct數據訓練Orca-3,性能究竟如何?
AgentInstruct的目標是合成一個大型且多樣化的數據集,其中包含不同難度級別的數據。在這個數據集上,像Orca-2.5、Mistral-Instruct-7b和ChatGPT這樣的基準模型得分遠低於10分,顯示出它們相對於GPT-4(被指定為基準,得分為10)的劣勢。
平均而言,包括每輪訓練輪後的Orca-3,AgentInstruct數據的引入使性能相比Orca 2.5基準提高了33.94%,相比Mistral-Instruct-7B提高了14.92%。
刷新多項基準SOTA
比如,在AGIEval提升40%,在MMLU上提升19%,在GSM8K上提升54%,在BBH上提升38%,在AlpacaEval上提升45%。