賈佳亞團隊新作:10k數(shù)據(jù)讓大模型數(shù)學能力超GPT-4
只要10k數(shù)據(jù),就能讓大模型的數(shù)學成績增長5.6%。
港中文賈佳亞團隊推出了基于推理步驟的大模型優(yōu)化策略,能夠像老師教學生一樣優(yōu)化大模型。
利用這種方法,72B Qwen模型的數(shù)學成績超越了GPT-4、Gemini1.5-Pro和Claude3-Opus等一眾閉源模型。
老師在糾正學生錯誤時,不會只告訴學生最終答案錯了,還會告知具體哪個步驟錯了,以此快速糾正其錯誤。
賈佳亞團隊正是學習了這一特點,將斯坦福團隊推出的DPO(直接偏好優(yōu)化)進一步細化,形成了逐步應用的策略Step-DPO。
該方法讓Qwen-72B模型在多個數(shù)據(jù)集上進步明顯,同時也獲得了更強的長鏈條推理任務能力。
像教育學生一樣訓練大模型
如何強化推理能力,一直是大語言模型領域的重要問題之一。
常見的思維鏈策略通過在輸入提示詞部分添加“Let’s think step by step.”,來使模型在輸出中完成逐步推理,但對于復雜的問題,僅通過修改提示詞不足以引導模型正確解決問題。
由于復雜問題涉及的推理過程較長,有時包含數(shù)十個推理步驟,一旦其中任一步驟出錯,就難以得到正確的結果。
此外,現(xiàn)有方案旨在通過監(jiān)督式微調(SFT)階段增加問答數(shù)據(jù)以實現(xiàn)更好的對齊。
然而,當SFT數(shù)據(jù)達到一定數(shù)量時,模型經(jīng)常出現(xiàn)幻覺,性能也隨之趨于飽和。
一個潛在的原因是,隨著偏好輸出的概率上升,非偏好輸出的概率也會隨之增加。
為了抑制幻覺,提升模型的事實性,斯坦福大學提出了直接偏好優(yōu)化方法,其工作原理是創(chuàng)建基于人類偏好對的數(shù)據(jù)集,每個偏好對都包含一個輸入提示、偏好輸出以及非偏好輸出。
然后對語言模型直接進行微調,最大限度地提高生成的可能性,并減少輸出的可能性。
因此,DPO的優(yōu)化目標為:
其中πθ與πref分別表示當前微調模型以及參照模型。
但在長鏈條推理任務中,DPO無法準確判斷推理過程中的錯誤步驟,從而無法聚焦關鍵出錯步驟。
如下圖所示,基于DPO的模型在訓練過程中無法準確判斷推理步驟正確與否。
因此,作者提出了基于推理步驟的直接偏好優(yōu)化——Step-DPO。
就像老師在糾正學生錯誤時,不會只告訴學生最終答案錯了,還會告知具體哪個步驟錯了,以此快速糾正其錯誤。
與此類似,Step-DPO不再像DPO從整體上對比答案,而是將每個推理步驟視為一個基本單元,并且對比單個推理步驟,從更精細的角度提升模型的多步推理分析能力。
Step-DPO的優(yōu)化目標為:
除此之外,作者還提出基于模型自生成的數(shù)據(jù)處理流程。如圖所示,該流程包含以下三個步驟:
第一步是錯誤收集。
首先,給定一組數(shù)學問題D0=(x,y∧),其中x是數(shù)學問題,y∧是其真實答案。
然后,使用初始模型πref來得到每個數(shù)學問題x的答案。
在進行模型推理之前,需要添加思維鏈(CoT)前綴作為提示,以確保模型的推理結果被結構化為多個推理步驟,每個步驟均以“Step i:”開始。
經(jīng)過模型推理可得到每個數(shù)學問題x的推理結果y,然后選擇與真實答案y∧不一致的那些結果,并匯總得到數(shù)據(jù)集D1:
第二步是錯誤步驟定位。
每個錯誤推理結果y都呈現(xiàn)為一系列推理步驟的序列y=s1,s2,…,sn,隨后需要人工或利用GPT-4驗證每個推理步驟的正確性,直到找到第一個錯誤步驟sk,并記錄其步驟編號。
然后將sk選為錯誤的推理步驟slose,從而得到D2:
最后是錯誤步驟修正。
為了獲得D2中每個樣本對應的正確推理步驟,需要對模型πref進行推斷,使用提示x和前面的正確推理步驟s1~k-1來采樣多個輸出ycont,此過程可以表示為:
隨后保留ycont中那些與真實答案一致的輸出,并將其中的第一個推理步驟作為swin,最終得到數(shù)據(jù)集D:
下圖展示了一個數(shù)據(jù)樣本示例。值得一提的是,該數(shù)據(jù)準備流程無需大量的人工介入,人類或GPT-4只需要判斷給定推理步驟是否正確,而無需親自撰寫答案來修正錯誤。
10k數(shù)據(jù)帶來數(shù)學能力大幅提升
Step-DPO可以在SFT模型或現(xiàn)有的開源Instruct模型上進行微調,僅通過10K數(shù)據(jù)以及數(shù)百個訓練步數(shù),即可取得大幅度的數(shù)學能力提升。
如下圖所示,在Qwen2-7B-Instruct模型的基礎上進行Step-DPO可在MATH測試集上獲得5.6%準確率的提升。
在Qwen2-72B-Instruct模型的基礎上進行Step-DPO,可在MATH和GSM8K測試集的準確率分別達到70.8%和94.0%,超過一系列閉源模型如Gemini-1.5-Pro、GPT-4-1106,以及Claude-3-Opus。
除此之外,在難度較高的包含數(shù)學競賽題的Odyssey-MATH榜單上也有顯著提升。
經(jīng)過Step-DPO之后,模型更加魯棒,減少幻覺的產(chǎn)生,在推理過程中也不容易出錯。如以下兩個例子所示。
假設h(x)=f-1(x),如果h(2)=10,h(10)=1,h(1)=2,求f(f(10))。
t的平方根大于2且小于3.5,滿足這一條件的整數(shù)t有多少個?
即便是下圖這道數(shù)學競賽題,經(jīng)過Step-DPO之后的模型也可以做對。
在所有非增函數(shù)f:{1,2,…,10}→{1,2,…,10}中,有些函數(shù)有固定點,另一些沒有,這兩種函數(shù)的數(shù)量相差多少?
目前,該項目的代碼,數(shù)據(jù),模型,Demo均已公開至GitHub和Hugging Face,同時支持在線體驗。
論文地址:https://arxiv.org/abs/2406.18629
GitHub:https://github.com/dvlab-research/Step-DPO
在線Demo:http://103.170.5.190:7870/
模型(HF):https://huggingface.co/collections/xinlai/step-dpo-6682e12dfbbb2917c8161df7
數(shù)據(jù)(HF):https://huggingface.co/datasets/xinlai/Math-Step-DPO-10K