GPT-4 MATH準(zhǔn)確率最高漲至84.3%!港中文、清華等七所頂尖高校提出全新CSV方法
雖然大型語言模型(LLMs)在常識理解、代碼生成等任務(wù)中都取得了非常大的進(jìn)展,不過在數(shù)學(xué)推理任務(wù)上仍然存在很大改進(jìn)空間,經(jīng)常會生成無意義、不準(zhǔn)確的內(nèi)容,或是無法處理過于復(fù)雜的計算。
最近推出的一些語言模型,如GPT-4, PaLM-2都在數(shù)學(xué)推理上取得了重大進(jìn)步,特別是OpenAI的最新版模型GPT-4 Code Interpreter,在較困難的數(shù)學(xué)推理數(shù)據(jù)集上也展現(xiàn)出了很高的性能。
為了探索「代碼生成任務(wù)」對「語言模型推理能力」的影響,來自香港中文大學(xué)、南京大學(xué)、中國科學(xué)技術(shù)大學(xué)、清華大學(xué)、香港城市大學(xué)、長沙理工大學(xué)和塔夫茨大學(xué)的研究人員聯(lián)合發(fā)布了一篇論文,通過在代碼使用頻率(Code Usage Frequency)上引入不同的約束限制進(jìn)行實驗驗證。
論文鏈接:https://arxiv.org/abs/2308.07921
實驗結(jié)果顯示,GPT-4 Code Interpreter模型的成功在很大程度上要歸功于「在生成和執(zhí)行代碼、評估代碼執(zhí)行的輸出以及在收到不合理的輸出」時糾正其解決方案方面的強大能力。
基于上述結(jié)論,研究人員提出了一種新穎且高效的提示方法,顯式的基于代碼的自我驗證(CSV, code-based self-verification),以進(jìn)一步提高GPT-4代碼解釋器的數(shù)學(xué)推理潛力。
該方法在GPT-4 Code Interpreter上采用zero-shot提示,以促使模型使用代碼來對答案進(jìn)行自我驗證。
在驗證狀態(tài)為「假」的情況下,模型將自動修改其解決方案,類似于人類在數(shù)學(xué)考試中糾錯的過程。
此外,研究人員還發(fā)現(xiàn)驗證結(jié)果的狀態(tài)可以指示解決方案的置信度,并進(jìn)一步提高多數(shù)表決的有效性。
通過結(jié)合GPT-4 Code Interpreter和CSV方法,在MATH數(shù)據(jù)集上的零樣本準(zhǔn)確率實現(xiàn)了從54.9%到84.3%的巨大提升。
LLM的推理能力從何而來?
為了探索代碼的使用對GPT4-Code解決數(shù)學(xué)問題能力的影響,研究人員采用了一種很直接的方法,即通過精心設(shè)計的提示來限制GPT4-Code與代碼的交互。
具體包括兩種代碼限制提示以及一種基礎(chǔ)提示用來對比:
提示1:No code usage is allowed(不允許使用代碼)
GPT4-Code不允許在其解決方案中添加代碼,也就是說模型只能完全依賴自然語言(NL)推理鏈,類似于思維鏈(CoT)框架中的解決方案,由此產(chǎn)生的推理步驟序列叫做CNL,如上圖中(a)所示。
提示2:Code can be used only once(代碼只能使用一次)
GPT4-Code只能用單個代碼塊內(nèi)的代碼來生成解決方案,類似于之前的PAL方法,論文中將此序列稱為CSL,即使用符號語言(SL),如Python進(jìn)行推理,上圖中(b)為樣例。
基本提示:對代碼使用沒有任何限制。
推理序列可表示為,其中每個步驟都由自然語言和 Python 代碼組成,示例如上圖中(c)所示。
除此之外,研究人員還引入了代碼使用頻率(Code Usage Frequency)來記錄不同提示下的代碼執(zhí)行次數(shù),結(jié)果表明,GPT4-Code的高性能與高代碼使用頻率之間存在正相關(guān)。
具體來說,提示2使用的代碼量比提示1多了一倍,并且提示2比提示1的準(zhǔn)確率提高了 6.9%,表明Python代碼鏈CSL比自然語言鏈CNL更能提高計算能力,這一觀察結(jié)果與之前基于Python的提示方法結(jié)果一致。
不過只能使用一次代碼也存在缺陷,當(dāng)代碼輸出引發(fā)錯誤或產(chǎn)生非預(yù)期的結(jié)果時,模型缺乏自我調(diào)試(self-debugging)的能力。
在對比提示2和基本提示時,可以發(fā)現(xiàn),基本提示始終能生成包含多個代碼使用實例的解決方案,即代碼使用頻率更高,并且基本提示的準(zhǔn)確性也明顯提高。
具體可以歸因于代碼的兩個優(yōu)勢:
1. 生成一些簡短的代碼塊,可以分割自然語言推理步驟,從而帶來更高的準(zhǔn)確率;
2. 模型有能力評估代碼執(zhí)行結(jié)果,并在結(jié)果中發(fā)現(xiàn)錯誤或不合邏輯的解決步驟,并進(jìn)行修正。
基于代碼的自驗證CSV
受代碼使用頻率分析觀察結(jié)果的啟發(fā),研究人員決定利用GPT4-Code的代碼生成、代碼評估、代碼執(zhí)行,以及自動調(diào)整解決方案等能力來增強方案驗證,以提高推理性能。
CSV的主要流程就是對GPT-Code輸入提示,來顯式地通過代碼生成來驗證答案正確性。
對解決方案C的驗證結(jié)果V可以分為「真」、「假」、「不確定」三類。
與CSV結(jié)合后,模型能夠使用代碼來驗證答案,然后在驗證結(jié)果為「錯誤」的情況下審查并調(diào)整得出解決方案的方式,從而獲得正確答案。
在完善和修正初始解決方案后,準(zhǔn)確率可以得到顯著提高。
值得注意的是,驗證(verification)和修正(rectification)階段都是基于代碼的,所以必然會導(dǎo)致代碼使用頻率的增加。
在 GPT4-Code 出現(xiàn)之前,先前的框架大多依賴于外部LLM使用自然語言進(jìn)行驗證和精心設(shè)計的少樣本提示。
相比之下,CSV方法僅依賴于GPT4-Code的直接提示,以零樣本的方式簡化了流程,利用其先進(jìn)的代碼執(zhí)行機制來自主驗證和獨立修正解決方案。
研究人員還將驗證階段集成到了加權(quán)多數(shù)表決(majority voting)中,為驗證過程的各個狀態(tài)分配了不同的權(quán)重。
為了防止答案被確認(rèn)為「假」后不再進(jìn)行其他驗證,研究人員將三種狀態(tài)分配了不同的權(quán)重:wT, wF和wU,可以增加系統(tǒng)的可靠性。
為了簡單起見,集成算法從k個解決方案中提取一對最終答案及其相應(yīng)的驗證結(jié)果,表示為其中v和a分別代表第i個最終答案和最終驗證結(jié)果。
因此,每個候選答案 a 的投票得分可以表示為:
最后從所有候選答案中選出得分最高的答案:
實驗結(jié)果
MATH數(shù)據(jù)集
GPT4-Code在MATH基準(zhǔn)上的準(zhǔn)確率達(dá)到了 69.69%,大大超過了之前的方法(53.90%),表明 GPT4-Code在解決數(shù)學(xué)問題方面表現(xiàn)出很強的能力。
在GPT4-Code的基礎(chǔ)上,文中提出的CSV方法進(jìn)一步提高了準(zhǔn)確性,將準(zhǔn)確率提高到了73.54%;
在加入基于代碼的顯式自我驗證和驗證引導(dǎo)的加權(quán)多數(shù)投票(采樣路徑數(shù)為 16)后,結(jié)果進(jìn)一步提高到了84.32%
需要注意的是,雖然增加基于代碼的自我驗證可以提高題目的成績,但具體程度因題目難度、形式而異。
其他數(shù)據(jù)集
研究人員還在其他推理數(shù)據(jù)集上應(yīng)用了CSV方法,包括GSM8K、MMLU-Math 和 MMLU-STEM
從結(jié)果上來看,CSV+GPT4-Code在各個數(shù)據(jù)集上都取得了最優(yōu)的結(jié)果。
與帶有模型選擇功能的GPT-4和 PHP相比,驗證引導(dǎo)的多數(shù)表決是減少采樣路徑數(shù)量的有效框架。
CSV方法與現(xiàn)有模型在MMLU-Math和MMLU-STEM數(shù)據(jù)集上的性能對比中,可以看到開源模型明顯優(yōu)于閉源模型。
為了彌補這一差距,研究人員表示目前已經(jīng)開始著手準(zhǔn)備制作數(shù)據(jù)集,并將在不久的將來公開發(fā)布。
其他開源LLM模型,如LLaMA 2可以利用該數(shù)據(jù)集進(jìn)行微調(diào),并進(jìn)一步提升數(shù)學(xué)推理能力。