經(jīng)典論文ReAct精讀 原創(chuàng)
人類智能的一個獨特特征是能夠?qū)⒚嫦蛉蝿?wù)的行為與語言推理(或稱作內(nèi)心獨白)無縫結(jié)合。理論上,這被認(rèn)為是人類認(rèn)知中的重要一環(huán),能夠?qū)崿F(xiàn)自我調(diào)節(jié)或策略化并維持工作記憶。
以在廚房烹飪一道菜為例,在任何兩個具體行為之間,我們可能會:(1)用語言進行推理以跟蹤進度(例如“現(xiàn)在一切都切好了,我應(yīng)該把水壺里的水加熱”);(2)處理異常情況或根據(jù)情況調(diào)整計劃(例如“我沒有鹽,所以讓我用醬油和胡椒代替”);(3)意識到何時需要外部信息(例如“我該如何準(zhǔn)備面團?讓我在網(wǎng)上搜索一下”)。我們還可能采取行動(例如打開食譜書閱讀食譜,打開冰箱,檢查食材)以支持推理并回答問題(例如“我現(xiàn)在能做什么菜?”)。這種“行動”與“推理”之間的緊密協(xié)同使得人類能夠快速學(xué)習(xí)新任務(wù)并執(zhí)行穩(wěn)健的決策或推理,即使在之前未見過的情境下或面對信息不確定性時也能如此。
近期的研究結(jié)果暗示了在自主系統(tǒng)中結(jié)合語言推理與互動決策的可能性。
一方面,適當(dāng)提示的大語言模型(Large Language Models, LLMs)已經(jīng)在算術(shù)、常識和符號推理等任務(wù)中展示了通過問題推導(dǎo)答案的多步驟推理能力。然而,這種 “鏈條式思考”推理是一個靜態(tài)的黑箱,因為模型使用自己的內(nèi)部表示來生成思考,并沒有與現(xiàn)實世界相結(jié)合,這限制了它進行反應(yīng)性推理或更新知識的能力。這可能導(dǎo)致諸如事實虛構(gòu)和推理過程中的錯誤傳播等問題。
另一方面,近期的研究探索了在交互環(huán)境中使用預(yù)訓(xùn)練的語言模型進行規(guī)劃和行動,重點是利用語言先驗預(yù)測動作。這些方法通常將多模態(tài)觀察轉(zhuǎn)換為文本,使用語言模型生成特定領(lǐng)域的動作或計劃,然后使用控制器來選擇或執(zhí)行它們。然而,它們并沒有使用語言模型來抽象地推理高級目標(biāo)或維持工作記憶以支持行動。
在超越這種簡單的具身任務(wù)之外,還沒有研究探討如何在一般任務(wù)解決中將推理和行動以協(xié)同方式結(jié)合,以及這種結(jié)合是否可以與單獨推理或行動相比帶來系統(tǒng)性的好處。
基于以上考慮,姚順雨等人提出了ReAct通用框架,用于結(jié)合大語言模型進行推理和行動,以解決多樣化的語言推理和決策任務(wù),系統(tǒng)示意圖如下圖所示。
ReAct提示大語言模型以交錯的方式生成與任務(wù)相關(guān)的語言推理追蹤和行動,這使得模型能夠進行:(1)推理以行動:動態(tài)推理以創(chuàng)建、維護和調(diào)整行動的高級計劃;(2)行動以推理:與外部環(huán)境(例如維基百科)互動,將額外信息納入推理。
圖 1 ReAct示例
1. 問題描述
考慮一個智能體(Agent)與環(huán)境進行交互,智能體的目標(biāo)是解決某個特定任務(wù)。在時間步,智能體從環(huán)境接收到觀測,并按照某種策略采取行動,其中表示智能體進行決策所需要的上下文。
當(dāng)映射是隱式形式且需要大量計算時,學(xué)習(xí)策略是比較困難的。例如,圖1(1c)中顯示的智能體無法生成正確的最終行動(Act4)來完成問答(QA)任務(wù),因為它需要對軌跡上下文(問題,Act1-3,Obs1-3)進行復(fù)雜推理。同樣,圖1(2a)中顯示的代理無法從上下文中理解水槽1中沒有胡椒瓶1,因此持續(xù)產(chǎn)生幻覺的行動。
2. ReAct基本想法
ReAct的想法很簡單:ReAct將智能體的行動空間擴展到,其中表示語言空間。語言空間中的一個行動稱為思考或推理追蹤,不會影響外部環(huán)境,因此不會產(chǎn)生觀察反饋。相反,一個思考旨在通過推理當(dāng)前上下文來組合有用的信息,并更新上下文以支持未來的推理或行動。如圖1所示,可能有各種類型的有用思考,例如分解任務(wù)目標(biāo)并創(chuàng)建行動計劃(2b,Act1;1d,Thought 1),注入與任務(wù)解決相關(guān)的常識知識(2b,Act1),從觀察中提取重要部分(1d,Thought2,4),跟蹤進度并轉(zhuǎn)換行動計劃(2b,Act8),處理異常并調(diào)整行動計劃(1d,Thought3)等等。
然而,由于語言空間是無限的,在這個擴展的行動空間中學(xué)習(xí)是困難的,需要強大的語言先驗。為此,可以使用大語言模型進行處理。在論文中,作者使用一個凍結(jié)的大語言模型PaLM-540B,通過少量示例的上下文提示來生成特定領(lǐng)域的行動和自由形式的語言思考以解決任務(wù)(圖1 (1d),(2b))。每個上下文示例都是人類解決任務(wù)實例的行動、思考和環(huán)境觀察的軌跡。對于推理至關(guān)重要的任務(wù)(圖1(1)),作者交替生成思考和行動,使得任務(wù)解決軌跡包含多個思考-行動-觀察步驟。相比之下,對于可能涉及大量行動的決策任務(wù)(圖1(2)),思考只需要在軌跡中最相關(guān)的位置稀疏出現(xiàn)。因此,ReAct讓語言模型自行決定思考和行動的異步發(fā)生。
由于決策和推理能力被集成到一個大語言模型中,ReAct具有幾個獨特的特征:
- (1)直觀且易于設(shè)計:設(shè)計ReAct提示非常直接,人類注釋者只需在采取的行動之上用語言記錄下他們的思考。本文沒有使用特設(shè)的格式選擇、思考設(shè)計或示例選擇。
- (2)通用且靈活:由于靈活的思考空間和思考-行動發(fā)生格式,ReAct適用于具有不同行動空間和推理需求的多樣化任務(wù),包括但不限于問答、事實驗證、文本游戲和網(wǎng)頁導(dǎo)航等任務(wù)。
- (3)高性能且穩(wěn)健:ReAct在僅從一到六個上下文示例中學(xué)習(xí)時,對新任務(wù)實例表現(xiàn)出強大的泛化能力,一致地優(yōu)于不同領(lǐng)域僅含推理或行動的基線。
- (4)與人類一致且可控:ReAct可以提供一個可解釋的順序決策和推理過程,人類可以輕松檢查推理和事實的正確性。
3. 知識密集型推理任務(wù)實踐
以下以一個知識密集型推理任務(wù)具體介紹ReAct如何工作。
3.1 基本設(shè)置
問題領(lǐng)域 作者考慮了兩個頗具挑戰(zhàn)性的知識檢索和推理數(shù)據(jù)集:(1)HotPotQA,一個需要基于兩個或更多維基百科段落進行推理的多跳問答基準(zhǔn);(2)FEVER,一個事實驗證基準(zhǔn),每個主張根據(jù)是否存在維基百科段落來驗證該主張,被標(biāo)注為支持、反駁或信息不足。實驗時,模型只接收問題/主張作為輸入,沒有支持段落的訪問權(quán)限,并且必須依賴內(nèi)部知識或通過與外部環(huán)境的互動來檢索知識以支持推理。
行動空間 作者設(shè)計了一個簡單的維基百科網(wǎng)絡(luò)API,包含三種類型的行動以支持交互式信息檢索:(1)search[實體],如果對應(yīng)的實體維基頁面存在,則返回該頁面的前5個句子,否則從維基百科搜索引擎建議前5個相似的實體;(2)lookup[字符串],這將返回包含該字符串的頁面中的下一句話,模擬瀏覽器上的Ctrl+F功能。(3)finish[答案],這將用答案完成當(dāng)前任務(wù)。注意到,這個行動空間大多數(shù)情況下只能根據(jù)精確的段落名檢索一小部分內(nèi)容,這比最先進的詞匯或神經(jīng)檢索器要弱得多。這樣做的目的是模擬人類如何與維基百科互動,并迫使模型通過顯式的語言推理來檢索信息。
3.2 方法
ReAct提示指令 對于HotpotQA和FEVER,作者從訓(xùn)練集中隨機選擇了6個和3個示例,并手動編寫了符合ReAct格式的軌跡,用作提示中的少量示例。類似于圖1(d),每個軌跡包含多個思考-行動-觀察步驟。具體來說,作者使用了以下幾種思考的組合:分解問題(“我需要搜索x,找到y(tǒng),然后找到z”),從維基百科觀察中提取信息(“x始于1844年”,“段落中沒有提到x”),執(zhí)行常識推理(“x不是y,所以z必須是...”)或算術(shù)推理(“1844 < 1989”),指導(dǎo)搜索重構(gòu)(“也許我可以搜索/查找x”),以及合成最終答案(“...所以答案是x”)。
基線 作者系統(tǒng)地消除了ReAct軌跡中的部分內(nèi)容,以構(gòu)建多個基線測試的提示(格式如圖1(1a-1c)所示):(a) 標(biāo)準(zhǔn)提示(Standard),移除了ReAct軌跡中的所有思考、行動和觀察。(b) 思考鏈提示(CoT),移除了行動和觀察,作為一個僅推理的基線。作者還構(gòu)建了一個自我一致性基線(CoT-SC),通過在推理過程中采樣21個CoT軌跡,解碼溫度為0.7,并采用多數(shù)答案。(c) 僅行動提示(Act),移除了ReAct軌跡中的思考,松散地模擬了WebGPT與互聯(lián)網(wǎng)互動以回答問題的方式,盡管它操作的是不同的任務(wù)和行動空間,并且使用模仿和強化學(xué)習(xí)而不是提示。
結(jié)合內(nèi)部和外部知識 ReAct展示的問題解決過程更加事實化和具體,而CoT在構(gòu)建推理結(jié)構(gòu)方面更加準(zhǔn)確,但容易受到虛構(gòu)事實或思考的影響。因此,作者提議結(jié)合ReAct和CoT-SC,并根據(jù)以下啟發(fā)式規(guī)則讓模型決定何時切換到另一種方法:A) ReAct CoT-SC:當(dāng)ReAct在給定步驟內(nèi)未能返回答案時,回退到CoT-SC。作者分別為HotpotQA和FEVER設(shè)置了7步和5步。B) CoT-SC ReAct:當(dāng)n個CoT-SC樣本中的多數(shù)答案出現(xiàn)少于n/2次時(即內(nèi)部知識可能不支持任務(wù)自信地完成),回退到ReAct。
微調(diào) 由于手動標(biāo)注大規(guī)模推理軌跡和行動的挑戰(zhàn),作者考慮了一種引導(dǎo)式方法,使用ReAct(以及其他基線)生成的3,000個正確答案的軌跡來微調(diào)更小的語言模型(PaLM-8/62B),以解碼基于輸入問題/主張的條件軌跡(所有思考、行動、觀察)。
表1 PaLM-540B的結(jié)果
3.3 實驗結(jié)果
ReAct在Act上持續(xù)表現(xiàn)更好 表1顯示了使用PaLM540B作為基礎(chǔ)模型,不同提示方法在HotpotQA和Fever上的結(jié)果。注意到,ReAct在這兩個任務(wù)上都優(yōu)于Act,這證明了推理指導(dǎo)行動的價值,尤其是在合成最終答案方面,如圖1 (1c-d)所示。微調(diào)結(jié)果3也確認(rèn)了推理軌跡對于更明智的行動的益處。
圖2 根據(jù)使用的CoT-SC樣本數(shù)量,PaLM-540B的提示結(jié)果。
ReAct vs. CoT 另一方面,ReAct在Fever上優(yōu)于CoT(60.9 vs. 56.3),而在HotpotQA上略遜于CoT(27.4 vs. 29.4)。Fever的主張對于支持/反駁可能只略有不同,因此通過行動檢索準(zhǔn)確和最新的知識至關(guān)重要。為了更好地理解ReAct和CoT在HotpotQA上的行為差異,作者從ReAct和CoT中分別隨機采樣了50個具有正確和錯誤答案的軌跡(總共200個示例),并在表2中手動標(biāo)記了它們的成功和失敗模式。一些關(guān)鍵觀察結(jié)果如下:
- A) 對于CoT,虛構(gòu)是一個嚴(yán)重的問題,導(dǎo)致其成功模式下的假陽性率遠(yuǎn)高于ReAct(14% vs. 6%),并且是其主要失敗模式(56%)。相比之下,ReAct的問題解決軌跡更加扎實、事實驅(qū)動和可信,這是由于它訪問了一個外部知識庫。
- B) 盡管交錯推理、行動和觀察步驟提高了ReAct的扎實性和可信度,但這種結(jié)構(gòu)約束也減少了它在制定推理步驟方面的靈活性,導(dǎo)致其推理錯誤率高于CoT。注意到,ReAct有一個特定的錯誤模式,模型會重復(fù)生成之前的思考和行動,作者將這種模式歸類為“推理錯誤”,因為模型無法推理出正確的下一步行動并跳出循環(huán)4。
- C) 對于ReAct,通過搜索成功檢索信息知識至關(guān)重要。非信息性搜索,占錯誤案例的23%,使模型推理偏離軌道,并使其難以恢復(fù)和重新制定思想。這可能是事實性和靈活性之間的一種預(yù)期權(quán)衡。
表2 在HotpotQA上,ReAct和CoT的成功和失敗模式類型,以及人類研究隨機選擇的示例中它們的百分比。
ReAct + CoT-SC在提示LLM上表現(xiàn)最佳 表1還顯示,在HotpotQA和Fever上最佳的提示方法分別是ReAct CoT-SC和CoT-SC ReAct。此外,圖2顯示了不同方法隨著使用CoT-SC樣本數(shù)量的變化表現(xiàn)。雖然兩種ReAct + CoT-SC方法在各自的任務(wù)上都具有優(yōu)勢,但它們都顯著且一致地優(yōu)于使用不同數(shù)量樣本的CoT-SC,僅使用3-5個樣本就達到了CoT-SC的表現(xiàn)。這些結(jié)果表明,適當(dāng)結(jié)合模型的內(nèi)部知識和外部知識對于推理任務(wù)的價值。
圖3 在HotPotQA上,使用ReAct和基線進行提示和微調(diào)的擴展結(jié)果
ReAct在微調(diào)中表現(xiàn)最佳 圖3顯示了在HotpotQA上對四種方法(標(biāo)準(zhǔn)、CoT、Act、ReAct)進行提示/微調(diào)的擴展效果。使用PaLM-8/62B,提示ReAct在四種方法中表現(xiàn)最差,這是由于從上下文示例中學(xué)習(xí)推理和行動的困難。然而,當(dāng)僅使用3,000個示例進行微調(diào)時,ReAct成為四種方法中表現(xiàn)最佳的方法,PaLM-8B微調(diào)的ReAct優(yōu)于所有PaLM-62B提示方法,而PaLM-62B微調(diào)的ReAct優(yōu)于所有540B提示方法。與此相反,微調(diào)標(biāo)準(zhǔn)或CoT遠(yuǎn)不如微調(diào)ReAct或Act對于PaLM8/62B,因為前者本質(zhì)上是在教模型記住(可能虛構(gòu)的)知識事實,而后者是在教模型如何推理和行動以從維基百科獲取信息,這是對知識推理更可推廣的技能。由于所有提示方法與特定領(lǐng)域的最先進方法(表1)仍有很大差距,作者認(rèn)為使用更多人工編寫的數(shù)據(jù)進行微調(diào)可能是釋放ReAct力量更好的方式。
參考論文:https://arxiv.org/abs/2210.03629
本文轉(zhuǎn)載自公眾號AIGC最前線
