對(duì)于小型語言模型來說,數(shù)學(xué)應(yīng)用題求解是一項(xiàng)很復(fù)雜的任務(wù)。
比如之前有研究結(jié)果顯示,在GSM 8K基準(zhǔn)測試中實(shí)現(xiàn)80%以上準(zhǔn)確度所需的最小模型尺寸為340億個(gè)參數(shù)。
為了在較小的模型上達(dá)到這種性能水平,研究人員經(jīng)常訓(xùn)練SLM來生成Python代碼或使用外部工具作為輔助,以避免計(jì)算錯(cuò)誤。
或是基于集成(ensembling)技術(shù),將100多個(gè)模型生成的輸出組合在一起,以獲得更準(zhǔn)確的結(jié)果,最終結(jié)果的選擇需要通過共識(shí)、多數(shù)表決或與SLM結(jié)合使用的單獨(dú)的驗(yàn)證器模型來完成,可以顯著提升準(zhǔn)確率(Phi-GSM使用top-48將性能從68.2提升到81.5),不過代價(jià)是由于多次調(diào)用模型導(dǎo)致的成本顯著增加。
最近,微軟的研究人員提出了一個(gè)基于Mistral-7B、70億參數(shù)量的小型語言模型Orca-Math,它在GSM 8 k上實(shí)現(xiàn)了86.81%,不需要調(diào)用多個(gè)模型進(jìn)行集成或使用驗(yàn)證器、代碼執(zhí)行或任何其他外部工具。
Orca-Math的關(guān)鍵特性為:
1. 使用多個(gè)智能體(agent)創(chuàng)建出20萬個(gè)數(shù)學(xué)問題的高質(zhì)量合成數(shù)據(jù)集,其中智能體合作創(chuàng)建數(shù)據(jù);
2. 迭代學(xué)習(xí)技術(shù),使SLM能夠練習(xí)解決問題,接收對(duì)其解決方案的反饋,并從包含SLM解決方案和反饋的偏好數(shù)據(jù)中學(xué)習(xí)。
當(dāng)單獨(dú)使用有監(jiān)督微調(diào)訓(xùn)練時(shí),Orca-Math在GSM 8 k pass@1指標(biāo)上達(dá)到81.50%。通過迭代偏好學(xué)習(xí),Orca-Math實(shí)現(xiàn)了86.81%的pass@1
Orca-Math超越了LLAMA-2- 70B,WizardMath-70B,Gemini-Pro,ChatGPT-3.5等更大型號(hào)的性能,在使用小得多的數(shù)據(jù)(數(shù)十萬對(duì)數(shù)百萬問題)時(shí)也顯著優(yōu)于其他較小的模型。
01 數(shù)據(jù)集構(gòu)造
種子集合
首先從現(xiàn)有的開源數(shù)據(jù)集中收集數(shù)學(xué)單詞問題樣本,即NumGLUE、AddSub、ALGES、ASDiv、DRAW、GSM8k、MATHQA、MultiArith、SingeOP、SingleEQ和SVAMP。
研究人員從Lila的訓(xùn)練和驗(yàn)證分裂中收集問題,以構(gòu)建種子集,總共收集了36217個(gè)問題。
智能體 - ask me anything
通過從種子集中的問題創(chuàng)建多個(gè)單詞問題來擴(kuò)展種子集,利用后續(xù)提示來創(chuàng)建問題。
智能體總共生成了120445個(gè)新問題,但所有生成的問題都表現(xiàn)出與種子詞問題相似的敘述方式,具體解決方案是使用GPT4-Trubo生成的。
智能體 - Suggester & Editor
通過解決具有挑戰(zhàn)性的問題進(jìn)一步擴(kuò)大種子集合。
為了實(shí)現(xiàn)這一點(diǎn),研究人員引入了兩個(gè)新的智能體,即Suggester和Editor,可以協(xié)同工作以創(chuàng)建一個(gè)面向預(yù)定義目標(biāo)的數(shù)據(jù)集:修改現(xiàn)有問題以增加其難度。
Suggester研究一個(gè)特定的問題,并提出了幾種在不產(chǎn)生實(shí)際問題的情況下提高其復(fù)雜性的方法。
Editor采用原始單詞問題和Suggester的建議,生成一個(gè)更新的、更具挑戰(zhàn)性的問題,迭代過程可以發(fā)生在多個(gè)回合中,每一回合都會(huì)進(jìn)一步增加先前生成的問題的復(fù)雜性。
眼人員利用AutoGen框架來實(shí)現(xiàn)多智能體工作流。
對(duì)每個(gè)問題進(jìn)行兩輪迭代,并過濾GPT4-Turbo生成的答案超過1800個(gè)字符的問題,最終收集了37157個(gè)問題。
02 訓(xùn)練
有監(jiān)督微調(diào)實(shí)驗(yàn)(第一次迭代)
在Orca-Math-200K數(shù)據(jù)集上對(duì)Mistral-7B進(jìn)行了微調(diào),沒有使用packing,下面為具體的指令格式。
損失函數(shù)只基于答案token來計(jì)算。
正負(fù)信號(hào)的迭代學(xué)習(xí)
數(shù)據(jù)集構(gòu)建(第二次迭代)
為了為每個(gè)問題生成額外的正樣本和負(fù)樣本,研究人員從第一次迭代的SFT調(diào)優(yōu)模型中采樣四個(gè)回復(fù)。
具體來說,使用top_p=0.95和溫度=0.7.過程產(chǎn)生了一個(gè)數(shù)據(jù)集,其中200000個(gè)問題中的每個(gè)問題都有一個(gè)GPT4-Turbo生成的解決方案和四個(gè)學(xué)生生成的解決方法。
使用基于GPT4的精確匹配中定義的提示來評(píng)估教師(GPT4-Turbo)的答案和學(xué)生的答案之間的一致性。
對(duì)于學(xué)生生成的答案與老師的答案不匹配的所有解決方案,將其標(biāo)記為負(fù)樣本。
數(shù)據(jù)集構(gòu)建(第三次迭代)
為了從正反饋和負(fù)反饋中學(xué)習(xí),研究人員評(píng)估了兩種算法的性能:直接偏好優(yōu)化(DPO)和Kahneman-Tversky優(yōu)化(KTO),還探索了KTO的功能,其區(qū)別在于只需要二進(jìn)制「是」或「否」的回復(fù)來評(píng)估輸出的質(zhì)量。
03 評(píng)估方法
研究人員使用精確匹配作為評(píng)估指標(biāo)。
給定一個(gè)模型生成的答案,提示GPT-4來提取最終的簡短答案,并將其與金標(biāo)準(zhǔn)中的簡短答案進(jìn)行匹配,即基于GPT4的精確匹配(GPT4-based-Exact-Match)。
04 實(shí)驗(yàn)結(jié)果
研究人員測試了模型在包含1319個(gè)單詞問題的GSM8k測試集上幾個(gè)訓(xùn)練過程的性能,對(duì)Mistral-7B模型進(jìn)行了三次迭代的微調(diào)
在第一次迭代中,使用有監(jiān)督微調(diào)來獲得M1;
第二次迭代中,對(duì)比了SFT、DPO和KTO,其中KTO訓(xùn)練的模型在這一組中表現(xiàn)更好,獲得M2后,并使用M2生成迭代#3的數(shù)據(jù)集;
第三次迭代中,對(duì)比了DPO和KTO方法,使用M2作為模型起點(diǎn)。
研究人員還將這些模型與Orca-Math-200K數(shù)據(jù)集上經(jīng)過三個(gè)epoch的SFT訓(xùn)練進(jìn)行了對(duì)比。
消融實(shí)驗(yàn)
Model Generated Positives
通過將
限制為僅包含教師生成的解決方案來研究影響模型生成的正向因素(positives),換言之,研究人員移除在為迭代#2創(chuàng)建數(shù)據(jù)集時(shí)模型生成的所有
結(jié)果顯示,不管訓(xùn)練算法如何,都會(huì)看到顯著的性能下降。
Synthetic Negatives
數(shù)據(jù)集的創(chuàng)建包括在M1或M2生成的所有四個(gè)回復(fù)都是positive的情況下的合成負(fù)樣本(negative creation)。
通過忽略問題qi來研究這些合成負(fù)樣本的影響,結(jié)果將第二次迭代的問題數(shù)量減少了約80k,將第三次迭代的問題數(shù)量增加了約104k
除GSM8k外的數(shù)學(xué)基準(zhǔn)
研究人員還使用Orca Math其他幾個(gè)單詞問題數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),并且為了便于評(píng)估,最終選擇了問題答案都是單個(gè)數(shù)字的數(shù)據(jù)集。
評(píng)估指標(biāo)為基于GPT4的精確匹配度量,并使用貪婪解碼生成模型回復(fù)。
沾染檢查(Contamination Check)
為了確保實(shí)驗(yàn)的公正性,研究人員在文中表示:在訓(xùn)練過程中,從未使用GSM8K或任何其他數(shù)據(jù)集的測試分割集,也從未將其用作合成問題生成的種子。
盡管如此,研究人員還是采用以下方法來檢測任何潛在的文本沾染(text contamination)問題:
1. 對(duì)文本進(jìn)行預(yù)處理,包括將所有字符轉(zhuǎn)換為小寫、刪除標(biāo)點(diǎn)符號(hào)、對(duì)文本進(jìn)行分詞,以及刪除常見的英語停止詞,以確保數(shù)據(jù)的一致性。
2. 使用逆文檔頻率(TF-IDF)方法對(duì)文本語料庫進(jìn)行矢量化,并確定測試集和訓(xùn)練集之間的余弦相似性,從中為每個(gè)測試查詢選擇前k個(gè)(k=10)最相似的問題。
3. 通過計(jì)算在預(yù)設(shè)閾值0.5以上具有最高n-gram重疊的試題數(shù)量及其相應(yīng)的訓(xùn)練集匹配來評(píng)估文本污染的程度。
研究人員使用Jaccard相似度來計(jì)算文本對(duì)之間的n-gram重疊,并且為了進(jìn)行嚴(yán)格的污染檢查,n設(shè)置為1.
需要注意的是,當(dāng)使用Jaccard相似性測量時(shí),n-gram重疊是n的非遞增函數(shù)。
4. 在執(zhí)行算法時(shí),確定表現(xiàn)出顯著的n-gram重疊的試題數(shù)量為8.因此根據(jù)定義的閾值,表明測試集中的文本污染可以忽略不計(jì)。
當(dāng)將訓(xùn)練集限制為僅包含種子問題時(shí),表現(xiàn)出顯著n-gram重疊的測試問題的數(shù)量為7;并且在n≥2的情況下,表現(xiàn)出顯著的n-gram重疊的試題數(shù)為零。