柚子快報激活碼778899分享:論文閱讀
1.解決的問題和提出的方法
(1)解決問題:強化Agent(非參數(shù)更新) 反思能力
(2)解決方法:提出Reflexion框架,通過自然語言反饋而非更新參數(shù)來強化Agent。把任務(wù)反饋信號作為短時記憶,引導(dǎo)后續(xù)的決策。
(3)效果:For example, Reflexion achieves a 91% pass@1 accuracy on the HumanEval coding benchmark, surpassing the previ- ous state-of-the-art GPT-4 that achieves 80%. We also conduct ablation and analysis studies using different feedback signals, feedback incorporation methods, and agent types, and provide insights into how they affect performance.
2.引言
依賴大模型的Agent 決策能力受限于in-context的學(xué)習(xí)樣本,傳統(tǒng)強化學(xué)習(xí)方法大量時間去更新和訓(xùn)練參數(shù)。這篇文章我們提出一種方法:Reflexion,這種方法用語言強化來幫助Agent從過去的失敗中學(xué)習(xí)成長。Reflexion把從環(huán)境中的得到的二元或者標(biāo)量的反饋轉(zhuǎn)換成文本摘要。并將其作為附加的上下文添加到會話中。幫助完成下一步?jīng)Q策,模仿人類反思的過程。
生成有用的反思比較難,因為你不僅需要知道模型在哪里犯錯,并且有能力給模型提供一些改善效果的可執(zhí)行建議。本文提出三種方法來生成反饋性的反思:
(1)簡單的二值反饋反饋;
(2)對常見的失敗預(yù)定義一些策略。
(3)自我評價(大模型或者測試單元)
Reflexion和傳統(tǒng)的強化學(xué)習(xí)相比有以下優(yōu)勢:
(1)是輕量的不需要finetune大模型;
(2)比起只能使用標(biāo)量或者向量化的反饋,他能使用更多類型的反饋。
(3)對歷史經(jīng)驗有更具體和可解釋性瞬時記憶形式。(4)對未來的流程有更明確的提示。缺點:依賴于大模型的自我評估能力。
實驗:
(1)決策任務(wù)【AlfWorld】:長序列的決策任務(wù)?
(2)推理任務(wù)【HotPotQA】:驗證知識的感知能力和單步生成的生成能力
(3)編程任務(wù)【HumanEval】:教Agent使用外部的工具,如編譯器和解釋器
貢獻:
(1)提出Reflexion,一種語言化的強化學(xué)習(xí)方式,講Agent的記憶編碼的參數(shù)化一種策略
(2)探索大模型涌現(xiàn)的自我反思的新能力,這種反思能力對大模型從少量的嘗試中學(xué)習(xí)復(fù)雜任務(wù)十分有用。
(3)提出LeetcodeHardGym,包括40到leetcode hard難度的題。
(4)Reflexion在多個任務(wù)上表現(xiàn)超過極限,在多個代碼生成的benchmark上達到最佳水平。
3.相關(guān)工作
推理和決策:
(1)Self-Refine:通過自我評估來自動提升生成效果,僅用于單步推理任務(wù)。
(2)Pryzant: 優(yōu)化prompt-writing,僅限于單個的生成任務(wù)
(3)Paul:fitune 批判模型來提供步驟間的及時反饋來提高推理效果。
(4)xie:在決策間使用beam-search來搜索一種策略,這種策略使得Agent能利用先見的優(yōu)勢(得力于自我評估的組件)。
(5)Yoran:decider models 來評價幾種生成結(jié)果
(6)Kim:對固定的步驟中使用重試機制
(7)Goodman:使用高質(zhì)量的評價步驟對之前的生成做出優(yōu)化。
編程:
(1)AlphaCode:在隱藏的測試case上評價一些列代碼生成結(jié)果。
(2)CodeT:自己生成的測試單元來評價生成函數(shù)方法
(3)Self-Debugging:用一個debugging組件,通過代碼執(zhí)行環(huán)境的反饋來改進現(xiàn)有的代碼實現(xiàn)。
(4)CodeRL:把問題設(shè)置在一個強化學(xué)習(xí)的框架下。
1,3,4對bug少的程序修正很有用,但嚴(yán)重依賴于ground truth的測試案例,沒有用自我反思機制來縮小實現(xiàn)和驗證之間的gap。
4.方法內(nèi)容
Reflexion框架有三個模塊組成:
(1)Actor:?負責(zé)生成文本和決策
Actor model:COT 、ReAct、Mem(記憶模塊)? ? 這個框架受Brooks啟發(fā)
(2)Evaluator:?對?中輸出評分
推理任務(wù):reward function 基于完全匹配(EM)分?jǐn)?shù)
決策任務(wù):we employ pre-defined heuristic functions that are tailored to specific evaluation criteria.
(3)Self-Reflection:?生成文本化的強化學(xué)習(xí)線索來幫助自我提高
稀疏反饋信號+當(dāng)前行為+當(dāng)前記憶--->生成feedback
(4)Mem:記憶?
短期(路徑歷史)+長期(從self-reflection的輸出)
5.實驗
(1)AlfWorld (Multi-step tasks ):
兩種自我驗證的方法:用LLM的分類和手寫的一些策略反思時的策略:
如果agent 超過3輪執(zhí)行相同的行動并且得到相同的反饋當(dāng)前環(huán)境中如果執(zhí)行次數(shù)30次(計劃不充分)Memory:考慮Prompt窗口大小,只考慮最近三輪的反思(經(jīng)驗)分析:
常見錯誤,Agent覺得已經(jīng)拿到某個東西,但是實際上沒有在長的軌跡任務(wù)中Agent容易連續(xù)執(zhí)行幾個action,使得難以追溯這些action定位錯誤Reflexion的反思機制如何在AlfWorld中解決問題:
長序列任務(wù)鏈中早期的執(zhí)行中犯的錯很容易被定位,Agent可以重新選擇新操作或者重新規(guī)劃整個任務(wù)鏈有些(房間)表面/容器太多,很難找到東西。Agent可以利用其在多次試驗中的經(jīng)驗記憶來徹底搜查房間。
2)HotPot QA?(推理):
HotPot QA數(shù)據(jù)集基于維基百科,有113k的問答對。讓Agent從幾個支撐的文檔中推理,解析內(nèi)容。
為了驗證單獨的推理能力的提升,采用Reflexion+COT的方法。對比和兩種實現(xiàn)。是從數(shù)據(jù)集中得到的ground truth 上下文文本。是問題,是最終答案。由于Cot是多步驟的決策算法,當(dāng)給Agent時就可以隔離在大量給定上下文中的推理任務(wù)。為了驗證整體的問答能力(包含推理和執(zhí)行能力),實現(xiàn)Reflexion+ReAct Agent ,ReAct Agent可以使用wikipedia api 檢索上下文,并使用逐步明確的思維來推斷答案。
COT方式 采用6-shot Prompting,ReAct 采用2-shot,self-reflection 2-shot.
?3)Programming:
6.結(jié)論
本文提出Reflexion,通過語言話(文本)的強化來引導(dǎo)Agent從過去的錯誤中學(xué)習(xí)。實驗證明Reflexion通過加入反思機制,在效果上明顯比常用的決策方法好。
柚子快報激活碼778899分享:論文閱讀
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。