論文翻譯PAL: Program-aided Language Models

譯者序

這篇文章給我的最大的啟發(fā)是:“實(shí)現(xiàn)一個會推理、會自己使用工具解決問題的 AI” 聽起來很難,但其實(shí)可以歸約成 “實(shí)現(xiàn)一個會編程的 AI”。
也就是說,如果哪天 AI 打leetcode、codeforce 比賽的水平變得很強(qiáng)了(前提是做新題,會做老題不算),我們就有實(shí)現(xiàn) AGI 的條件了。

Abstract

最近,大型語言模型(LLMs)在執(zhí)行算術(shù)和符號推理任務(wù)時表現(xiàn)出了令人印象深刻的能力,當(dāng)在測試時提供少量示例(“少量提示”)時。這種成功的很大一部分可以歸因于諸如“思維鏈”之類的提示方法,它們將LLMs用于理解問題描述并將其分解為步驟,以及解決問題的每個步驟。雖然LLMs似乎擅長這種逐步分解,但即使問題被正確分解,LLMs在解決方案部分也經(jīng)常會出現(xiàn)邏輯和算術(shù)錯誤。在本文中,我們提出了程序輔助語言模型(PAL):一種新穎的方法,它使用LLM閱讀自然語言問題并生成程序作為中間推理步驟,但將解決步驟卸載到運(yùn)行時(例如Python解釋器)。使用PAL,將自然語言問題分解為可運(yùn)行步驟仍然是LLM唯一的學(xué)習(xí)任務(wù),而解決則委托給解釋器。我們展示了神經(jīng)LLM和符號解釋器之間的協(xié)同作用,涵蓋了BIG-Bench Hard和其他基準(zhǔn)測試中的13項(xiàng)數(shù)學(xué)、符號和算法推理任務(wù)。在所有這些自然語言推理任務(wù)中,使用LLM生成代碼并使用Python解釋器進(jìn)行推理比更大的模型更準(zhǔn)確。例如,使用CODEX的PAL在GSM8K數(shù)學(xué)字問題基準(zhǔn)測試中實(shí)現(xiàn)了最先進(jìn)的少量拍攝精度,超過了使用思維鏈的PaLM-540B絕對15%top1。我們的代碼和數(shù)據(jù)可在http://reasonwithpal.com 公開獲取。

1. Introduction

直到最近兩年,推理一直被認(rèn)為是大型語言模型(LLMs)尚未克服的最重要挑戰(zhàn)之一(Marcus,2018; 2020; Garcez & Lamb,2020)。最近,LLMs在廣泛的任務(wù)中取得了令人印象深刻的成功,包括常識(Wei等人,2021; Sanh等人,2021; Madaan等人,2022),數(shù)學(xué)(Lewkowycz等人,2022; Wu等人,2022; Mishra等人,2022)和符號推理(Yao等人,2022; Ahn等人,2022),使用少量提示(Brown等人,2020)。

這個過程已經(jīng)被要求LLMs生成它們明確的推理步驟的方法加速,例如“思維鏈”(Wei等人,2022),“便箋”(Nye等人,2021)和“最少到最多”(Zhou等人,2022)提示。特別是,廣泛使用的思維鏈(COT)方法向模型呈現(xiàn)達(dá)到最終答案所需的明確中間步驟。然后,模型預(yù)計將類似的分解應(yīng)用于實(shí)際測試示例,并連續(xù)達(dá)到準(zhǔn)確的最終答案(Ling等人,2017; Amini等人,2019)。然而,盡管LLMs可以將自然語言問題分解為步驟并執(zhí)行簡單算術(shù)運(yùn)算,但它們在處理復(fù)雜算術(shù)(Hendrycks等人,2021; Madaan & Yazdanbakhsh,2022)或大數(shù)字(Nogueira等人,2021; Qian等人時表現(xiàn)急劇下降。 , 2022)。事實(shí)上,在對164B令牌的顯式數(shù)學(xué)內(nèi)容進(jìn)行微調(diào)PaLM-based模型時,其兩個最常見的失敗據(jù)報道是“錯誤推理”和“錯誤計算”(Lewkowycz等人,2022)。

在本文中,我們提出了程序輔助語言模型(PAL):一種新穎的方法,它使用LLM閱讀自然語言問題并生成程序作為推理步驟,但將解決步驟卸載到Python解釋器上,并在圖1中進(jìn)行說明。這種卸載利用了可以將自然語言問題分解為程序化步驟的LLM,并且幸運(yùn)地使用當(dāng)代最先進(jìn)的LLM預(yù)先訓(xùn)練了自然語言和編程語言(Brown et al. , 2020;Chen等人,2021a;Chowdhery等人,2022)。雖然自然語言理解和分解需要LLMs,但解決和推理可以通過外部求解器完成。這彌補(bǔ)了鏈?zhǔn)剿季S方法中的一個重要差距,即推理鏈可能是正確的,但產(chǎn)生錯誤的答案。

我們在13個算術(shù)和符號推理任務(wù)中展示了PAL的有效性。在所有這些任務(wù)中,使用Codex(Chen等,2021a)的PAL都優(yōu)于使用鏈?zhǔn)剿季S提示的更大型模型,如PaLM-540B。例如,在流行的GSM8K基準(zhǔn)測試中,PAL實(shí)現(xiàn)了最先進(jìn)的準(zhǔn)確性,超過了使用鏈?zhǔn)剿季S的PaLM-540B絕對15%的top1準(zhǔn)確性。當(dāng)問題包含大量數(shù)字時,我們稱之為GSM-HARD的數(shù)據(jù)集,PAL比COT絕對高出40%。我們相信,神經(jīng)LLM和符號解釋器之間這種無縫協(xié)同是通向通用和穩(wěn)健AI推理器的重要一步。

2. Background: Few-shot Prompting


少量提示利用大型語言模型的優(yōu)勢,通過一組k個示例來解決任務(wù),這些示例作為測試時輸入的一部分提供(Brown等,2020;Liu等,2021;Chowdhery等,2022),其中k通常是一個低位數(shù)的數(shù)字。這些輸入輸出示例{(xi,yi)} k i=1被連接在提示p≡hx1·y1i k hx2·y2i k…k hxk·yki中。其中“·”表示輸入和輸出的連接,“k”表示不同示例的連接。在推理過程中,測試實(shí)例xtest被附加到提示中,并將p k xtest傳遞給模型,模型試圖完成p k xtest,從而生成答案ytest。注意,這種少量提示并不修改底層的LLM。

Wei等人(2022)還用思維鏈(COT)中間步驟增強(qiáng)了每個上下文示例。具體來說,在COT設(shè)置中,每個上下文示例都是一個三元組hxi,ti,yii,其中xi和yi是輸入輸出對,ti是從輸入xi到輸出yi所需步驟的自然語言描述。參見圖1中的一個示例。有了額外的“思維”ti,提示被設(shè)置為p≡hx1·t1·y1ikhx2·t2·y2ik…khxk·tk·yki。在推理過程中,新問題xtest像以前一樣附加到提示中并提供給LLM。關(guān)鍵的是,模型被分配生成思維ttest和最終答案ytest。這種提示模型首先生成推理過程ttest的方法提高了答案ytest在廣泛任務(wù)范圍內(nèi)的準(zhǔn)確性(Wang等人,2022a;Wei等人,2022;Zhou等人,2022;Wang等人,2022b)。


一張圖解說明PAL:給定一個數(shù)學(xué)推理問題,思維鏈(左)生成自由形式文本的中間推理步驟。相比之下,程序輔助語言模型(PAL,右)生成中間步驟和Python代碼。這將運(yùn)行推理步驟的角色從語言模型轉(zhuǎn)移到Python解釋器。最終答案是通過運(yùn)行生成的推理鏈獲得的。思維鏈推理以藍(lán)色突出顯示;PAL步驟以灰色和粉色突出顯示;Python解釋器運(yùn)行以黑色和綠色突出顯示。

3. Program-aided Language Models


在程序輔助語言模型中,我們提出了一種方法,為給定的自然語言問題x生成思想t,它們是交錯的自然語言(NL)和編程語言(PL)語句。由于我們將解決方案步驟委托給解釋器,因此我們不會在提示中提供最終答案。也就是說,PAL中的每個上下文示例都是一對hxi,tii,其中tj = [s1,s2,…,sN],每個si∈NL∪PL,要么是NL或PL中的一系列令牌。因此完整的提示是p≡hx1·t1ikhx2·t2ik…k hxk·tki。

給定測試實(shí)例xtest,我們將其附加到提示中,并將pkxtest饋送到LM。我們讓LM生成預(yù)測ttest,其中包含中間步驟及其相應(yīng)的程序語句。


image.png

Example

圖1的特寫在圖2中顯示。雖然思維鏈僅將提示中的解決方案分解為自然語言步驟,例如Roger開始時有5個網(wǎng)球和2罐各3個網(wǎng)球,共6個,但在PAL中,我們還用其相應(yīng)的程序語句增強(qiáng)了每個這樣的NL步驟,例如網(wǎng)球= 5和購買的球= 2 * 3。這樣,模型學(xué)習(xí)生成一個程序,該程序?qū)闇y試問題提供答案,而不是依賴LLM正確執(zhí)行計算。 我們提示語言模型使用注釋語法(例如Python中的“?!保┥蒒L中間步驟,以便解釋器將其忽略。我們將生成的程序ttest傳遞給其相應(yīng)的求解器,運(yùn)行它并獲得最終運(yùn)行結(jié)果ytest。在這項(xiàng)工作中,我們使用標(biāo)準(zhǔn)Python解釋器,但這可以是任何求解器、解釋器或編譯器。

制作PAL提示

在我們的實(shí)驗(yàn)中,我們利用現(xiàn)有工作的提示(如果可用),否則隨機(jī)選擇與以前工作相同數(shù)量(3-6)的示例來為每個基準(zhǔn)創(chuàng)建固定提示。在所有情況下,我們都將自由形式文本提示擴(kuò)充為PAL風(fēng)格提示,并在需要時利用編程結(jié)構(gòu)(例如for循環(huán)和字典)。通常,編寫PAL提示很容易且快速。

我們還確保提示中的變量名稱有意義地反映它們的角色。例如,描述籃子中蘋果數(shù)量的變量應(yīng)具有諸如num apples in basket之類的名稱。這使生成的代碼與問題中的實(shí)體保持鏈接。在第6節(jié)中,我們展示了這些有意義的變量名稱至關(guān)重要。值得注意的是,也可以增量運(yùn)行PL段并將執(zhí)行結(jié)果反饋給LLM以生成以下塊。為簡單起見,在我們的實(shí)驗(yàn)中,我們使用了單次事后執(zhí)行。

本文重點(diǎn)介紹COT風(fēng)格推理鏈,但在附錄I中我們展示了PAL也改進(jìn)了 Least-to-Most(Zhou等人,2022)提示,它引入了推理鏈將問題分解為子問題。

4. Experimental Setup

數(shù)據(jù)和上下文示例

我們使用三種廣泛的推理任務(wù)進(jìn)行實(shí)驗(yàn):(1)數(shù)學(xué)問題(§4.1),來自包括 GSM8K(Cobbe 等人,2021)、SVAMP(Patel 等人,2021)、ASDIV(Miao 等人,2020)和 MAWPS(Koncel-Kedziorski 等人,2016)在內(nèi)的多個數(shù)據(jù)集;(2)來自 BIG-Bench Hard(Suzgun 等人,2022)的符號推理(§4.2);(3)以及來自 BIG-Bench Hard 的算法問題(§4.3)。所有數(shù)據(jù)集的詳細(xì)信息都顯示在附錄 H 中。對于所有可用 COT 提示的實(shí)驗(yàn),我們使用與以前工作相同的上下文示例。否則,我們隨機(jī)抽取一組固定的上下文示例,并為 PAL 和 COT 使用相同的集合。

基準(zhǔn)

我們考慮三種提示策略:DIRECT 提示 - 使用問題和立即答案對(例如 11)作為標(biāo)準(zhǔn)提示方法,如 Brown 等人(2020)所述;思維鏈提示(COT)(Wei 等人,2022);以及我們的 PAL 提示。我們使用溫度為 0 的貪心解碼從語言模型中進(jìn)行解碼。除非另有說明,我們都使用 CODEX (code-davinci-002) 作為 PAL、DIRECT 和 COT 的后端 LLM。在數(shù)據(jù)集中,如果以前的工作提供了其他基礎(chǔ) LM 的結(jié)果,例如 PaLM-540B,則我們將其作為 COT PaLM-540B 包括在內(nèi)。

4.1. 數(shù)學(xué)推理

我們在八個數(shù)學(xué)文字問題數(shù)據(jù)集上評估PAL。這些任務(wù)中的每個問題都是小學(xué)水平的代數(shù)文字問題。圖3顯示了一個問題和PAL示例提示的示例。我們發(fā)現(xiàn),使用明確的NL中間步驟并不能進(jìn)一步有益于這些數(shù)學(xué)推理任務(wù),因此我們只保留了提示中有意義的變量名稱。 GSM-HARD LLMs能夠使用小數(shù)字進(jìn)行簡單計算。然而,Madaan & Yazdanbakhsh (2022)發(fā)現(xiàn),流行的GSM8K數(shù)學(xué)推理問題數(shù)據(jù)集中50%的數(shù)字是0到8之間的整數(shù)。這引發(fā)了一個問題:LLMs能否推廣到更大和非整數(shù)數(shù)字?我們構(gòu)建了一個更難版本的GSM8K,我們稱之為GSM-HARD,通過用更大的數(shù)字替換GSM8K問題中的數(shù)字。具體來說,一個問題中的一個數(shù)字被替換為最多7位數(shù)的隨機(jī)整數(shù)。關(guān)于這個新數(shù)據(jù)集的更多細(xì)節(jié)請參見H.1。

4.2 符號推理

我們將 PAL 應(yīng)用于 BIG-Bench Hard (Suzgun et al., 2022) 中的三個符號推理任務(wù),這些任務(wù)涉及對對象和概念的推理:(1) COLORED OBJECTS 要求回答有關(guān)表面上彩色物體的問題。這項(xiàng)任務(wù)需要跟蹤相對位置、絕對位置和每個物體的顏色。圖 4 顯示了一個問題和 PAL 提示的示例。(2) PENGUINS 描述了一張企鵝表和一些自然語言中的附加信息,任務(wù)是回答有關(guān)企鵝屬性的問題,例如,“有多少只企鵝不到 8 歲?”。雖然 PENGUINS 和 COLORED OBJECT 任務(wù)都需要跟蹤對象,但 PENGUINS 還描述了動態(tài),因?yàn)閱栴}中的企鵝可以添加或刪除。附錄 J.2 中的圖 17 顯示了一個問題、一條思路鏈提示和 PAL 提示的示例。(3) DATE 是一個日期理解任務(wù),涉及從自然語言描述中推斷日期,執(zhí)行相對時間段的加減法,并具有一些全球知識,例如“二月有多少天”,并相應(yīng)地執(zhí)行計算。附錄 J.3 顯示了示例提示。

4.3 算法任務(wù)

最后,我們比較 PAL 和 COT 在算法推理方面的表現(xiàn)。這些是人類程序員可以根據(jù)問題的先驗(yàn)知識編寫確定性程序的任務(wù)。我們試驗(yàn)了兩個算法任務(wù):OBJECT COUNTING 和 REPEAT COPY。OBJECT COUNTING 涉及回答有關(guān)屬于某種類型的對象數(shù)量的問題。例如,如圖 5 所示:“我有一把椅子,兩個土豆,一個花椰菜,一個生菜頭,兩張桌子……我有多少蔬菜?”)。REPEAT COPY 需要根據(jù)指令生成單詞序列。例如,如附錄 J.6 所示:“重復(fù)四次鴨子這個詞,但在中途也說嘎嘎”)。

5. Results

5.1 數(shù)學(xué)結(jié)果

表1顯示了以下結(jié)果:在所有任務(wù)中,使用Codex的PAL在所有數(shù)據(jù)集中都設(shè)定了新的少量拍攝狀態(tài)最先進(jìn)的top1解碼,超過了COTCodex、COTPaLM-540B和COTMinerva 540B,后者在明確的數(shù)學(xué)內(nèi)容上進(jìn)行了微調(diào)。 有趣的是,COT在一些數(shù)據(jù)集(如ASDIV)中也從Codex中獲益,但在其他數(shù)據(jù)集(如SVAMP)中表現(xiàn)不如PaLM-540B。然而,使用PAL進(jìn)一步提高了所有數(shù)據(jù)集的解決率。 GSM-HARD 在GSM-HARD(表1)上,DIRECT的準(zhǔn)確率從19.7%急劇下降到5.0%(相對下降74%),COT的準(zhǔn)確率從65.6%下降到20.1%(相對下降近70%),而PAL保持穩(wěn)定在61.5%,僅下降14.3%。即使我們用包含大數(shù)字的提示替換了COT的提示(附錄B),COT在GSM-HARD上的結(jié)果也沒有改善。這表明PAL不僅在標(biāo)準(zhǔn)基準(zhǔn)測試中提供更好的結(jié)果,而且更加穩(wěn)健。事實(shí)上,由于PAL將計算卸載到Python解釋器,所以只要生成正確的程序,就可以準(zhǔn)確地執(zhí)行任何復(fù)雜計算。 大數(shù)字還是錯誤推理?GSM-HARD上的失敗主要是由于LLMs無法進(jìn)行算術(shù)運(yùn)算,還是問題中的大數(shù)字“混淆”了LM,生成了不合理的中間步驟?為了調(diào)查這一點(diǎn),我們評估了COT為同一個問題的兩個版本(帶和不帶大數(shù)字)生成的輸出。我們發(fā)現(xiàn),在我們分析的25個案例中,有16個案例中,COT生成了幾乎相同的自然語言“思想”,表明主要失敗模式是無法準(zhǔn)確地進(jìn)行算術(shù)運(yùn)算。樣本輸出在附錄表11中提供。



多樣本生成 正如王等人(2022b)發(fā)現(xiàn)的那樣,鏈?zhǔn)剿季S方法可以通過采樣k>1個輸出并使用多數(shù)投票選擇最終答案來進(jìn)一步改進(jìn)。因此,我們重復(fù)了使用核采樣(Holtzman等人,2019)的貪婪解碼實(shí)驗(yàn),其中p = 0.95,k = 40,如Lewkowycz等人(2022)和溫度為0.7。如表3所示,這進(jìn)一步將PAL的準(zhǔn)確性從72.0%提高到GSM8K的80.4%,比使用相同數(shù)量樣本的Minerva-540B高出1.9%。

5.2 符號推理和算法任務(wù)結(jié)果

符號推理和算法任務(wù)的結(jié)果顯示在表2中。在彩色物體中,PAL比強(qiáng)大的COT提高了8.8%,比標(biāo)準(zhǔn)直接提示提高了19.4%。在企鵝中,PAL比COT提供了絕對14.1%的增益。在日期中,PAL進(jìn)一步提供了11.4%的增益,超過了COT Codex、PaLM-540B和LaMDA-137B。

表2最右邊的兩列顯示PAL接近解決對象計數(shù)問題,達(dá)到96.7%并比COT絕對提高23.7%。同樣,在重復(fù)復(fù)制上,PAL大大超過了COT,絕對超過21.8%。令人驚訝的是,在重復(fù)復(fù)制上直接提示比COT表現(xiàn)更好。然而,在重復(fù)復(fù)制中,PAL比DIRECT提高了9.3%。


image.png

PAL對問題的復(fù)雜度敏感嗎?我們檢查了隨著輸入問題的復(fù)雜度增加(以COLORED OBJECTS問題中的對象數(shù)量衡量),PAL和COT的性能如何變化。如圖6所示,PAL在所有輸入長度上都優(yōu)于COT。隨著問題中對象數(shù)量的增加,COT的準(zhǔn)確性不穩(wěn)定且下降,而PAL始終保持接近100%。有關(guān)令牌級預(yù)測的更多分析,請參見附錄G。

6. 分析

PAL是否能與較弱的語言模型一起使用?在第5節(jié)中的所有實(shí)驗(yàn)中,PAL都使用了code-davinci-002模型;但是PAL能否與較弱的代碼模型一起使用呢?我們將PAL與COT進(jìn)行了比較,當(dāng)這兩種提示方法都使用相同的較弱的基礎(chǔ)語言模型code-cushman-001和code-davinci-001時。如圖7所示,盡管code-cushman-001和code-davinci-001的絕對精度較低,但PAL相對于COT的改進(jìn)在各個模型中保持一致。這表明PAL可以與較弱的模型一起使用,同時它的優(yōu)勢也能優(yōu)雅地擴(kuò)展到更強(qiáng)大的模型。

PAL是否能與自然語言的語言模型一起使用?我們還使用text-davinci系列對PAL進(jìn)行了實(shí)驗(yàn)。圖8顯示了以下有趣的結(jié)果:當(dāng)基礎(chǔ)LM的“代碼建模能力”較弱(使用text-davinci-001)時,COT比PAL表現(xiàn)更好。然而,一旦LM的代碼建模能力足夠高(使用text-davinci-002和text-davinci-003),PAL就會勝過COT,而且PAL text-davinci-003幾乎與PAL code-davinci-002一樣。這表明PAL不僅限于代碼LM,而且如果它們具有足夠高的編碼能力,它也可以與主要針對自然語言訓(xùn)練的LM一起使用。

是因?yàn)镻ython提示還是解釋器才使PAL更好?我們嘗試生成Python代碼,同時要求神經(jīng)LM也“執(zhí)行”它,而不使用解釋器,遵循Nye等人(2021);Madaan等人(2022)。我們創(chuàng)建了類似于PAL提示的提示,只是它們不包括最終答案。這導(dǎo)致在GSM8K上解決率為23.2%,遠(yuǎn)低于PAL(72.0),僅比DIRECT高4.5個百分點(diǎn)。這些結(jié)果進(jìn)一步證實(shí)了我們的假設(shè):PAL的主要優(yōu)勢來自于與解釋器的協(xié)同作用,而不僅僅是擁有更好的提示。附錄B中提供了更多細(xì)節(jié)。關(guān)于代碼提示優(yōu)于文本提示的優(yōu)勢,請參見附錄G。

變量名是否重要?在我們所有的實(shí)驗(yàn)中,我們都在PAL提示中使用了有意義的變量名,以便使模型將變量與它們所代表的實(shí)體聯(lián)系起來。然而,對于Python解釋器來說,變量名是無意義的。為了衡量有意義變量名的重要性,我們嘗試了兩種提示變體:


結(jié)果顯示在圖9中。在彩色對象和日期中,刪除中間的NL注釋但保留有意義的變量名(PAL-comment) - 與完整的PAL提示相比略有降低,但仍然比基線COT更高。刪除變量名(PAL-var-comment)進(jìn)一步降低了準(zhǔn)確性,并且比COT表現(xiàn)更差。由于變量名在代碼質(zhì)量中起著重要作用(Gellenbeck & Cook, 1991; Takang et al., 1996),因此只有有意義的變量名才能為Codex提供便利,它主要是在有意義的名稱上進(jìn)行訓(xùn)練的,Madaan等人(2022)也發(fā)現(xiàn)了這一點(diǎn)。


image.png

7. 相關(guān)工作

Prompting

少量提示(Brown等人,2020)已被證明是一種有效的方法,適用于各種任務(wù)(Liu等人,2021),包括文本(Gehrmann等人,2021;Reif等人,2021;Wei等人,2021;Sanh等人,2021)和代碼生成(Chen等人,2021b)。像鏈?zhǔn)剿季S提示(COT)這樣的方法進(jìn)一步解鎖了各種推理任務(wù),在各種基準(zhǔn)測試中提高了模型的性能。然而,所有先前的方法都存在算術(shù)計算不準(zhǔn)確和推理不正確的問題(Lewkowycz等人,2022;Hendrycks等人,2021;Madaan&Yazdanbakhsh,2022)。PAL通過將計算和部分推理卸載到Python解釋器來避免這些問題,只要給定正確的程序,它就是正確的。此外,PAL不僅可以改善標(biāo)準(zhǔn)鏈?zhǔn)剿季S提示,還可以改善最少到最多提示(Zhou等人,2022),正如我們在附錄I中所示。

帶有外部工具的LMs

一些先前的工作已經(jīng)為神經(jīng)模型配備了專門的模塊。例如,Cobbe等人(2021)使用計算器作為后處理進(jìn)行算術(shù)運(yùn)算,并且Demeter&Downey(2020)添加了用于生成城市和日期的專門模塊。與這些工作不同,PAL為Python解釋器生成代碼,它足夠通用以處理算術(shù)計算和日期,而無需專門模塊和臨時修復(fù)。Chowdhery等人(2022)和Wei等人(2022)也嘗試過使用外部計算器;但是,在GSM8K上僅將Codex提高了2.3%(絕對值),并將PaLM-540B提高了1.7%,而PAL在同一基準(zhǔn)測試上將Codex提高了6.4%(第5.1節(jié))。與我們的工作類似,Chowdhery等人(2022)也嘗試過生成Python代碼來解決GSM8K基準(zhǔn)測試,但他們的實(shí)驗(yàn)結(jié)果比使用鏈?zhǔn)剿季S的標(biāo)準(zhǔn)PaLM-540B低。Pi等人(2022)在計算器上對隨機(jī)表達(dá)式的執(zhí)行結(jié)果進(jìn)行預(yù)訓(xùn)練模型,而不是像我們一樣在測試時使用求解器。雖然他們的模型理論上可以比其他預(yù)訓(xùn)練LM更好地執(zhí)行算術(shù)運(yùn)算,但他們在SVAMP基準(zhǔn)測試上的結(jié)果要低得多:使用T5-11B模型時為57.4%,而PAL在同一基準(zhǔn)測試上達(dá)到79.4%而無需任何專門預(yù)訓(xùn)練。

在我們的工作預(yù)印本提交到arXiv之后不久, “program of thought prompting”(Chen等人,2022)另一項(xiàng)相關(guān)工作也提交到了arXiv。他們的方法在概念上與我們類似,但PoT(1)僅在數(shù)學(xué)問題上證明了有效性,而我們還證明了符號和算法基準(zhǔn)測試方面的收益,并且(2)選擇了特定于基準(zhǔn)測試的提示示例,而我們使用與以前相同的提示示例工作以分離我們方法的好處與示例選擇的好處。

語義解析

我們的工作也可以被看作是一種非常通用的語義解析形式,其中模型不是解析成嚴(yán)格的特定領(lǐng)域語言,而是生成自由形式的Python代碼。一些工作使用上下文無關(guān)文法(CFG)來約束解碼器,以生成特定領(lǐng)域的意義表示(Shin & Van Durme, 2021)或規(guī)范話語,這可以轉(zhuǎn)換為類似Lisp的意義表示(Shin et al., 2021)。相比之下,PAL不需要任何約束或特定領(lǐng)域的表示,除了Python代碼。此外,與其他特定領(lǐng)域語言相比,預(yù)先訓(xùn)練有Python的LMs更為豐富,使Python代碼成為更為可取的表示。Andor等人(2019)為閱讀理解任務(wù)生成特定任務(wù)的算術(shù)運(yùn)算;Gupta等人(2019)設(shè)計了神經(jīng)模塊,如count來處理算術(shù)運(yùn)算。PAL通過生成通用Python程序來推廣這些工作,而無需定義專門的模塊。技術(shù)上與我們最接近的工作可能是Binder (Cheng et al., 2022),但它主要解決了使用SQL和類似SQL的Python回答關(guān)于表格的問題。

8. 結(jié)論

我們介紹了PAL,一種新的自然語言推理方法,使用程序作為中間推理步驟。與現(xiàn)有的基于LM的推理方法不同,主要思想是將解決和計算卸載到外部Python解釋器,而不是使用LLM來理解問題和解決問題。這樣可以保證最終答案的準(zhǔn)確性,前提是正確預(yù)測了程序化步驟。我們在BIG-Bench Hard和其他基準(zhǔn)測試的13個任務(wù)中展示了LLM和Python解釋器之間無縫協(xié)同。在所有這些基準(zhǔn)測試中,PAL都超過了更大的LLM,如PaLM-540B,它使用流行的“思維鏈”方法,并在所有這些基準(zhǔn)測試中都創(chuàng)造了新的最高精度。我們相信這些結(jié)果為未來神經(jīng)符號AI推理器開辟了令人興奮的方向。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容