增加大模型推理能力的幾個提示方法 原創(chuàng)
01.Complexity-based prompting for multi-step reasoning(ICLR2023)
基于復(fù)雜度的提示方法用于多步推理
摘要:我們研究了如何提示大規(guī)模語言模型進行多步推理。已有研究表明,當(dāng)使用鏈式思考(CoT)提示,即用一系列短句描述從問題到答案的中間推理步驟時,大型語言模型能夠為新的輸入生成新的推理鏈并預(yù)測答案。本研究的核心問題是:哪些推理示例能成為最有效的提示?為此,我們提出了基于復(fù)雜度的提示方法,一種用于多步推理的簡單且有效的示例選擇方案。我們證明了具有較高推理復(fù)雜度的提示(即包含更多推理步驟的鏈)在多步推理任務(wù)上能顯著優(yōu)于強基線模型。此外,我們將基于復(fù)雜度的準則從提示(選擇輸入)擴展到解碼(選擇輸出),在解碼時,我們從模型中采樣多個推理鏈,并選擇復(fù)雜推理鏈中的大多數(shù)答案。通過這種方法,我們顯著提高了GPT-3和Codex在多步推理任務(wù)中的準確性,并在三個數(shù)學(xué)基準(GSM8K、MultiArith和MathQA)和兩個BigBenchHard任務(wù)(Date Understanding和Penguins)上實現(xiàn)了新的最先進表現(xiàn),平均提升5.3個百分點,最高提升18個百分點。與現(xiàn)有的手動調(diào)優(yōu)或基于檢索的示例選擇方案相比,基于推理復(fù)雜度的選擇直觀、易于實施,并且對標注的依賴較小。進一步的實驗結(jié)果表明,復(fù)雜提示在格式擾動和分布偏移的情況下表現(xiàn)出魯棒性。
圖1 為鏈式推理提示(Chain of Thoughts Prompting,簡稱CoT)的工作流程,其中推理步驟用藍色標注。整個流程包括:
- A部分:鏈式推理提示的工作流程。輸入是一個問題,提示模型生成中間推理步驟(例如:通過幾個步驟計算出問題的最終答案),然后基于這些步驟得出答案。該方法使用了一組鏈式推理案例,測試問題將從這些案例開始生成推理。
- B部分:顯示了一個復(fù)雜的推理鏈的例子,包含9個推理步驟。相比之下,更簡單的推理鏈可能只包含2步或3步。
- C部分:基于復(fù)雜性的一致性。該方法從模型中提取了多個推理鏈,然后通過對比復(fù)雜鏈的答案,選擇較復(fù)雜鏈的多數(shù)投票答案作為最終結(jié)果。
整個流程的核心在于通過訓(xùn)練模型生成一系列推理步驟,并在答案中選擇那些更復(fù)雜、更合理的推理鏈,以此提高準確率。
(注釋:
A部分:鏈式推理提示的工作流程
1. 問題的輸入:
比如,第一個例子的問題是:“Asia在促銷中以140美元的價格購買了一件本來標價350美元的舞會禮服。她打折了多少?”
2. 推理步驟:
- 第一步:Asia省下了350美元 - 140美元 = 210美元。
- 第二步:她省下的210美元相當(dāng)于原價的多少比例?答案是:210 ÷ 350 = 0.60 = 60%。
3. 生成答案:
最后模型給出的答案是60,即Asia在這次購買中享受了60%的折扣。
B部分:復(fù)雜的推理鏈
接著展示了一個復(fù)雜問題的解決方案:
問題:Angelo和Melanie想規(guī)劃學(xué)習(xí)時間。他們每小時休息10分鐘,計劃在一周內(nèi)完成學(xué)習(xí)。他們需要計劃多少天來完成學(xué)習(xí)?
推理步驟:
1. 他們需要為兩章內(nèi)容各花3小時。
2. 為每個工作表花1.5小時。
3. 計劃每天學(xué)習(xí)4小時,因此需要學(xué)習(xí)12小時,總共需要3天(12小時 ÷ 4小時/天)。
4. 他們不想每天學(xué)習(xí)超過4小時,計劃學(xué)習(xí)15小時 ÷ 4小時 ≈ 3.75天。
5. 他們決定計劃4天的學(xué)習(xí),以確保時間充裕。
答案:最終答案是4天。
這部分演示了一個包含9個推理步驟的復(fù)雜推理鏈(相比之下,簡單問題的推理鏈可能只需2到3步)。
C部分:基于復(fù)雜性的投票機制
在此部分展示了如何通過對復(fù)雜推理鏈的投票來獲取一致答案:
1. 從模型中生成多個推理鏈:模型生成了五個推理鏈(A、B、C、D、E),這些推理鏈的復(fù)雜性不同,步驟數(shù)量從2步到6步不等。
2. 復(fù)雜鏈的一致性投票:每個推理鏈生成的答案有100或200。在本例中,通過復(fù)雜鏈投票,最終多數(shù)投票得出的答案是200。
這意味著在多個推理鏈中,復(fù)雜鏈往往能提供更準確的答案。模型傾向于通過分析更長、更復(fù)雜的推理過程來找到多數(shù)意見并將其作為最終答案。)
1、COMPLEXITY-BASED PROMPTING方法
1. 選擇復(fù)雜示例作為提示(Selecting Complex Samples as Prompts)
這部分提出了一種新的示例選擇策略,即優(yōu)先選擇復(fù)雜的推理鏈作為提示。作者假設(shè),如果語言模型使用復(fù)雜的推理示例作為上下文學(xué)習(xí),那么其推理性能會有所提升。復(fù)雜示例是指推理步驟較多的示例,這種多步推理能夠包含更多的信息,因此有助于模型在推理過程中解決更復(fù)雜的問題。
具體而言,推理復(fù)雜性的衡量標準是推理步驟的數(shù)量,這一標準之前的研究中也有采用。作者進一步分析了其他可能的復(fù)雜性指標,如問題長度和公式長度,并發(fā)現(xiàn)這些復(fù)雜性指標在不同任務(wù)中表現(xiàn)出一致的效果,進一步驗證了選擇復(fù)雜推理鏈的有效性。
為了進一步減少標注成本,研究者還提出可以通過問題長度來識別復(fù)雜示例,然后僅為這些復(fù)雜問題手動標注推理鏈,減少了標注整個數(shù)據(jù)集的需求。
2. 復(fù)雜性一致性(Complexity-Based Consistency)
除了在輸入空間(即提示)選擇復(fù)雜示例外,作者還提出在輸出空間上使用復(fù)雜性一致性的方法。通常情況下,推理模型在生成多個推理鏈時,可能會產(chǎn)生不同的答案。傳統(tǒng)的多數(shù)投票方法是通過生成的所有推理鏈來選出答案。
然而,復(fù)雜性一致性方法通過對模型生成的多個推理鏈中的復(fù)雜推理鏈進行投票,而不是簡單投票所有推理鏈。這意味著,在推理生成過程中,優(yōu)先選擇那些推理步驟較多的推理鏈來進行投票,進一步提高推理的準確性。
研究結(jié)果表明,與原始的一致性方法相比,復(fù)雜性一致性能更好地提高模型的推理能力。在實驗中,投票復(fù)雜推理鏈的表現(xiàn)明顯優(yōu)于投票所有推理鏈,甚至遠優(yōu)于投票簡單推理鏈的情況。
3. 實驗驗證(Empirical Validation)
在實驗驗證中,復(fù)雜性驅(qū)動提示方法在多個數(shù)據(jù)集上顯著提高了表現(xiàn),尤其是在數(shù)學(xué)推理任務(wù)(如GSM8K、MultiArith和MathQA)以及常識推理任務(wù)(如StrategyQA和Date Understanding)上。無論是采用復(fù)雜提示還是復(fù)雜一致性投票,該方法在大多數(shù)情況下均優(yōu)于傳統(tǒng)的提示策略,驗證了推理復(fù)雜性在提高語言模型推理能力中的關(guān)鍵作用。
2、例子
假設(shè)有一個數(shù)學(xué)問題:
問題:
"Olivia有23美元。她購買了五個每個3美元的貝果。她還剩下多少錢?"
傳統(tǒng)的語言模型可能會直接嘗試給出答案,而不會詳細解釋推理過程。而在Chain of Thoughts(CoT)提示中,模型會先生成一系列中間推理步驟,如下所示:
簡單提示(簡單推理鏈):
1. Olivia有23美元。
2. 她購買了5個貝果,每個3美元,所以她一共花費了5 3 = 15美元。
3. 她還剩下23 - 15 = 8美元。
答案:8美元。
這個簡單的推理鏈只包含了3個步驟。在這種情況下,雖然能得出正確答案,但模型的推理能力沒有被充分發(fā)揮。
而使用COMPLEXITY-BASED PROMPTING,我們會選擇更復(fù)雜的示例來提示模型,可能包含更多的推理步驟,例如涉及其他類似問題的示例。
復(fù)雜提示(復(fù)雜推理鏈):
1. Olivia有23美元。
2. 她打算購買5個貝果。
3. 每個貝果的價格是3美元。
4. 她購買的貝果數(shù)量是5個,因此總共花費是5 3 = 15美元。
5. 我們現(xiàn)在知道她花費了15美元。
6. Olivia的初始金額是23美元。
7. 23美元減去她的支出15美元,還剩23 - 15 = 8美元。
答案:8美元。
復(fù)雜性一致性:
在解答其他類似問題時,模型可能生成多個推理鏈。例如,模型可能產(chǎn)生以下不同長度的推理鏈:
- 推理鏈A:4個步驟,答案=8美元。
- 推理鏈B:5個步驟,答案=8美元。
- 推理鏈C:6個步驟,答案=8美元。
- 推理鏈D:7個步驟,答案=8美元。
- 推理鏈E:2個步驟,答案=錯誤。
使用復(fù)雜性一致性時,我們將優(yōu)先選擇那些推理步驟較多的推理鏈(如B、C、D),通過它們的多數(shù)答案進行投票,最終得出更準確的結(jié)果,而不是簡單依賴所有推理鏈的投票結(jié)果。
Fu Y, Peng H, Sabharwal A, et al. Complexity-based prompting for multi-step reasoning[C]//The Eleventh International Conference on Learning Representations. 2022.
?University of Edinburgh ?Allen Institute for AI
--------------------------
02.Improving factuality and reasoning in language models through multiagent debate(PMLR 2024)
通過多代理辯論提升語言模型的事實性和推理能力
摘要:近年來,大型語言模型(LLMs)在語言生成、理解和少樣本學(xué)習(xí)方面展現(xiàn)了顯著的能力。大量研究致力于通過提示技術(shù)提升其性能,包括驗證、自洽性或中間草稿。本文提出了一種互補的方法,通過多個語言模型實例提出各自的響應(yīng),并在多輪辯論中對各自的推理過程進行討論,最終得出一個共同的答案。我們的研究表明,這種方法在多個任務(wù)中顯著提升了數(shù)學(xué)和戰(zhàn)略推理能力。我們還證明了該方法可以提高生成內(nèi)容的事實準確性,減少現(xiàn)有模型常見的錯誤答案和幻覺現(xiàn)象。此方法可以直接應(yīng)用于現(xiàn)有的黑盒模型,且在我們調(diào)查的所有任務(wù)中均使用相同的流程和提示??傮w而言,我們的研究結(jié)果表明,這種“心靈社會”的方法有望顯著提升大型語言模型的能力,并為語言生成和理解領(lǐng)域帶來進一步的突破。
圖2:辯論示意圖。辯論過程的示意圖。
(圖片內(nèi)容:
場景:一個尋寶者發(fā)現(xiàn)了一箱裝滿寶石的寶箱。箱子里有175顆鉆石,紅寶石比鉆石少35顆,并且翡翠的數(shù)量是紅寶石的兩倍。寶箱里共有多少顆寶石?
第一輪
Agent 1:設(shè) x 為紅寶石的數(shù)量。那么鉆石的數(shù)量是175,紅寶石比鉆石少35顆。因此 x = 175 - 35。翡翠的數(shù)量是紅寶石數(shù)量的兩倍,即 2x。
計算寶石的總數(shù):總寶石數(shù) = 175 + x + 2x = 3x + 175。
我們不知道確切的 x 值,但我們知道它表示紅寶石的數(shù)量,且紅寶石的數(shù)量比鉆石少35顆,即 x < 175。我們可以試一些值:當(dāng) x = 50 時,總寶石數(shù)為 3(50) + 175 = 325;當(dāng) x = 100 時,總寶石數(shù)為 3(100) + 175 = 475。所以答案應(yīng)該更接近175顆鉆石。通過反復(fù)嘗試,我們發(fā)現(xiàn)當(dāng) x = 40 時,總寶石數(shù)為3(40) + 175 = 295。
結(jié)果不正確(紅叉)。
Agent 2:如果鉆石有175顆,那么紅寶石的數(shù)量是比鉆石少35顆,因此紅寶石的數(shù)量為140顆。翡翠是紅寶石的兩倍,即2 × 140 = 280顆翡翠。
計算總寶石數(shù)量:175 + 140 + 280 = 595。因此,寶箱里共有595顆寶石。
結(jié)果正確(綠勾)。
第二輪
Agent 1:根據(jù)其他代理的解決方案,我們有兩個答案:一個代理認為紅寶石數(shù)量是40,總寶石數(shù)量為225。另一個代理認為紅寶石數(shù)量是140,總寶石數(shù)量為595。
我們知道紅寶石的數(shù)量比鉆石少35顆,所以紅寶石數(shù)量為175 - 35 = 140,與第二個代理的結(jié)果一致。另一個認為總共有225顆寶石的代理假設(shè)翡翠的數(shù)量是紅寶石數(shù)量的兩倍,而非紅寶石數(shù)量的兩倍。使用此假設(shè),我們得出紅寶石數(shù)量為140,翡翠數(shù)量為2 × 140 - 35 = 245,因此總寶石數(shù)為175 + 140 + 245 = 560。最后的答案是560。
結(jié)果不正確(紅叉)。
Agent 2:在回顧其他代理的解決方案后,我同意第二個代理的結(jié)論,即紅寶石的數(shù)量為140,總寶石數(shù)量為595。因此,我的答案是595。
結(jié)果正確(綠勾)。
第三輪
Agent 1:在回顧其他代理的解決方案后,我同意第二個代理的結(jié)論,即紅寶石的數(shù)量為140,總寶石數(shù)量為595。因此,我的答案是595。
結(jié)果正確(綠勾)。
Agent 2:在回顧其他代理的解決方案后,我也同意第二個代理的結(jié)論,即紅寶石的數(shù)量為140,總寶石數(shù)量為595。因此,我的答案也是595。
結(jié)果正確(綠勾)。)
1、原理
Language Generation through Multiagent Debate是一種通過多代理辯論的方式來生成語言的模型架構(gòu)
1. 多代理生成答案:模型中存在多個語言代理(或稱為多個模型實例),每個代理在面對相同的問題時,獨立生成自己的答案。每個代理代表了不同的思路或信息來源。
2. 相互批判與辯論:每個代理不僅生成自己的答案,還會審閱和批判其他代理的回答。代理在評估他人回答的過程中不斷修正自己的答案,并且這種修正過程會持續(xù)多個回合。
3. 答案共識:通過多回合的辯論,代理們會逐漸趨向于一致的答案。在這個過程中,如果某些事實不確定,代理們會有分歧,最終的答案會通過不斷排除不確定性而變得更為準確。
4. 提高推理與事實準確性:這種方法旨在解決當(dāng)前語言模型存在的“幻覺”問題,即模型會錯誤地生成事實或推理過程。通過代理之間的相互辯論,可以減少這種錯誤并提升答案的可靠性。
5. 應(yīng)用場景:該方法適用于多種推理和事實驗證任務(wù),如數(shù)學(xué)問題、歷史傳記生成、國際象棋棋步預(yù)測等。在這些場景中,多代理辯論的機制比單一代理生成的答案更加精確和可信。
該方法的優(yōu)點是它不需要對模型內(nèi)部的信息(如梯度或概率)進行訪問,只需對生成的語言結(jié)果進行黑盒操作即可應(yīng)用。此外,它也能與其他提升語言模型的方法,如零樣本推理(zero-shot chain-of-thought reasoning),結(jié)合使用以進一步提高性能。
Du Y, Li S, Torralba A, et al. Improving factuality and reasoning in language models through multiagent debate[J]. arXiv preprint arXiv:2305.14325, 2023.
MIT CSAIL
Google Brain
----------------------------
03.Progressive-hint prompting improves reasoning in large language models
漸進式提示提示法提高了大型語言模型的推理能力
摘要:大型語言模型(LLMs)在推理任務(wù)中的表現(xiàn)在很大程度上依賴于提示設(shè)計,其中“思維鏈”(Chain-of-Thought, CoT)和自一致性是提升該能力的重要方法。然而,這些方法并沒有充分利用LLM生成的答案來指導(dǎo)后續(xù)的響應(yīng)。本文提出了一種新的提示方法,稱為逐步提示(Progressive-Hint Prompting, PHP),它通過使用先前生成的答案作為提示,逐步引導(dǎo)模型接近正確答案,允許用戶與LLM之間進行多次自動交互。PHP方法與CoT和自一致性互不沖突,因此可以輕松與最先進的技術(shù)結(jié)合,進一步提高性能。我們在七個基準數(shù)據(jù)集上進行了廣泛的實驗,結(jié)果表明,PHP顯著提升了準確率,同時保持了很高的效率。例如,在使用text-davinci-003模型時,與復(fù)雜的CoT相比,PHP在GSM8K數(shù)據(jù)集上的貪婪解碼表現(xiàn)提升了4.2%,而在使用自一致性時,路徑樣本量減少了46.17%。通過結(jié)合GPT-4和PHP,我們在SVAMP(89.1% → 91.9%)、GSM8K(92% → 95.5%)、AQuA(76.4% → 79.9%)和MATH(50.3% → 53.9%)數(shù)據(jù)集上實現(xiàn)了當(dāng)前最好的表現(xiàn)。
圖3 我們提出的逐步提示法結(jié)合了生成的答案和問題,用于雙重檢查,分為兩個階段。在第一階段,我們通過將當(dāng)前問題和基礎(chǔ)提示(如思維鏈提示或復(fù)雜思維鏈提示)結(jié)合起來,生成基礎(chǔ)答案。在第二階段,我們通過相應(yīng)的逐步提示提示生成后續(xù)答案,例如逐步提示思維鏈(PHP-CoT)或逐步提示復(fù)雜思維鏈(PHP-Complex CoT)。當(dāng)兩次連續(xù)的答案相同時,交互停止。- 紫色框:LLM的輸入。 - 橙色框:LLM的輸出。
(圖片內(nèi)容:
Base Prompting(基礎(chǔ)提示)
問題:小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名四年級女生和4名四年級男生缺席。星期五有多少名四年級男生在小樹學(xué)校?
LLM(大型語言模型)回答:小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名女生和4名男生缺席。所以,星期五學(xué)校里有43 - 5 = 38名女生,96 - 38 = 58名男生。答案是 58。
Progressive-Hint Prompting(逐步提示法)
問題:小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名四年級女生和4名四年級男生缺席。星期五有多少名四年級男生在小樹學(xué)校?(提示:答案接近58)。
LLM回答:我們知道答案提示是58。基于這個提示,我們將重新回答問題。小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名女生和4名男生缺席。所以,星期五學(xué)校里有43 - 5 = 38名女生,96 - 43 = 53名男生。減去缺席的學(xué)生后,有38 - 4 = 34名女生和53 - 5 = 48名男生。答案是 48。
Progressive-Hint Prompting(逐步提示法)
問題:小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名四年級女生和4名四年級男生缺席。星期五有多少名四年級男生在小樹學(xué)校?(提示:答案接近58,48)。
LLM回答:我們知道答案提示是58和48?;谶@些提示,我們將重新回答問題。小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名女生和4名男生缺席。所以,星期五學(xué)校里有43 - 5 = 38名女生,96 - 9 = 87名學(xué)生。這87名學(xué)生中有38名是女生,所以應(yīng)該有87 - 38 = 49名男生。答案是 49。
Progressive-Hint Prompting(逐步提示法)
問題:小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名四年級女生和4名四年級男生缺席。星期五有多少名四年級男生在小樹學(xué)校?(提示:答案接近58,48,49)。
LLM回答:我們知道答案提示是58、48、49。基于這些提示,我們將重新回答問題。小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名女生和4名男生缺席。所以,原本有43 - 5 = 38名女生和96 - 43 = 53名男生。缺席之后,有38 - 5 = 33名女生和53 - 4 = 49名男生。答案是 49。)
1、原理
Progressive-Hint Prompting (PHP) 是一種通過逐步利用模型之前生成的答案提示,來引導(dǎo)模型逐漸接近正確答案,從而提升大型語言模型(LLMs)推理能力的方法。這個過程涉及用戶與模型之間的多次交互,每次生成的答案都會作為提示用于下一次的提示輸入,逐步優(yōu)化模型的推理過程。
PHP 的關(guān)鍵部分包括:
1. 基礎(chǔ)答案:模型首先使用基礎(chǔ)提示(如 Chain-of-Thought 或 Complex CoT)生成初始答案,這個答案是進一步推理的起點。
2. 提示引入:將基礎(chǔ)答案作為提示,用于后續(xù)的交互中。模型通過重新審視問題,并結(jié)合該提示,逐步改進推理過程,獲得更準確的答案。
3. 逐步優(yōu)化:這個過程會一直持續(xù),直到模型生成的兩個連續(xù)答案相同,這表示模型找到了穩(wěn)定的解決方案。
4. 類似人類的思維過程:該方法模擬了人類的思維過程,利用之前的答案不斷檢查和修正錯誤,最終得到更精確的結(jié)果。
PHP 能有效提升模型在多步驟推理任務(wù)中的表現(xiàn),尤其是在數(shù)學(xué)和邏輯推理等場景中。
2、圖片注釋
問題:
“小樹學(xué)校有96名四年級學(xué)生,其中43名是女生。星期五,5名四年級女生和4名四年級男生缺席。星期五有多少名四年級男生在學(xué)校?”
傳統(tǒng)解答:
模型最初生成的答案可能是:
- 總共有96名四年級學(xué)生,其中43名是女生。5名女生缺席,所以學(xué)校有43 - 5 = 38名女生在校。學(xué)??偣灿?6 - 38 = 58名男生在校。
- 答案是58。
使用 PHP 進行提示優(yōu)化:
1. 在第一次模型生成答案后,我們將“58”作為提示,再次詢問模型:
- “我們知道答案提示是58。通過這個提示重新回答問題?!?nbsp;模型這次可能會重新計算,并提供一個不同的答案:
- 答案是48(因為它意識到計算錯誤,男生數(shù)量應(yīng)該是53,減去缺席的4名男生)。
2. 接著,我們將這兩個答案(58和48)作為新的提示進行第三次推理:
- “我們知道答案提示是58和48。通過這些提示重新回答問題?!?nbsp;模型可能進一步調(diào)整推理:
- 答案是49。
3. 最后,通過不斷提供提示,模型逐步調(diào)整自己的推理過程,直到給出最終穩(wěn)定的答案。
通過這種逐步引導(dǎo),模型能夠修正最初的錯誤推理,從而得出更準確的答案。這展示了 PHP 如何通過利用之前的答案提示逐步優(yōu)化推理過程,使得模型能夠更接近正確的解答。
Zheng C, Liu Z, Xie E, et al. Progressive-hint prompting improves reasoning in large language models[J]. arXiv preprint arXiv:2304.09797, 2023.
Chinese University of Hong Kong
Huawei Noah’s Ark Lab
?
本文轉(zhuǎn)載自公眾號AIRoobt ,作者:AIRoobt
