【論文精讀】REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

  • 前言
  • ABSTRACT
  • 1 INTRODUCTION
  • 2 REACT: SYNERGIZING REASONING + ACTING
  • 3 KNOWLEDGE-INTENSIVE REASONING TASKS
    • 3.1 SETUP
    • 3.2 METHODS
    • 3.3 RESULTS AND OBSERVATIONS
  • 4 DECISION MAKING TASKS
  • 5 RELATED WORK
  • 6 CONCLUSION
  • 閱讀總結

前言

一篇來自ICLR 2023的文章,可以稱得上是當今火爆全網的Agent的鼻祖工作了,它提出了基于LLM初始的Agent的范式,在問答任務和決策任務上都取得了不錯的結果,但是受限于LLM的能力,導致與人類的SOTA相距甚遠。


Paperhttps://arxiv.org/pdf/2210.03629.pdf
Codehttps://github.com/ysymyth/ReAct
FromICLR 2023

ABSTRACT

LLMs在語言理解和交互決策上表現出令人印象深刻的性能,其推理能力也作為了一個單獨研究的主題。本文探索使用交互的方式生成推理任務特定動作,使二者具有更大的協同性。推理幫助模型歸納、跟蹤和更新計劃以及處理異常,動作則允許與外部接口相連并收集額外的信息。本文的ReAct方法可以應用于多語言決策任務,在最新的基線上證明了其有效性、人類可解釋性和可信度。具體來說,在問答和事實驗證方面,ReAct與簡單的維基百科API交互,生成了類似人類解決任務的軌跡,克服了CoT中廣泛存在的幻覺和錯誤累積問題。此外在兩個交互式決策benchmark上,ReAct在只有一兩個上下文示例的情況下優于模仿學習和強化學習的方法。

1 INTRODUCTION

人類智能的一個特點是可以做到言行一致,在對自我調節、制定策略以及維護工作記憶有著重要作用。最近的工作暗示了在自動系統中,語言推理和交互式決策的結合是可能的。首先,LLM展現出其強大的推理能力,比如CoT推理,但是其CoT能力只能對自身使用,可以理解為一個黑盒,這種無法與外界交互的方式會帶來幻覺和錯誤累積的問題。其次,最近有工作利用預訓練的語言模型在交互式環境中進行規劃和行動,雖然加入了多模態的信息以文本形式引入,但是它們只能根據當前的狀態解決現有的問題,無法解決更抽象的高級目標(需要多步推理交互式執行)。目前還沒有研究將推理和行動結合起來解決一般的問題,是否能夠帶來系統性的提升還有待商榷。
image.png
本文提出ReAct,一個將推理和動作與語言模型相結合的通用范式,用于解決不同語言推理和決策任務。ReAct提示LLMs以交錯的方式生成與任務相關的語言推理軌跡和動作,讓模型動態推理去創建、維護和調整行動的計劃,同時也與外部環境交互來引入外部的知識。
作者在四個不同的benchmarks上對ReAct進行了評估,包括問答(HotPotQA)、事實驗證(Fever)、基于文本的游戲(ALFWorld)以及網頁瀏覽(WebShop)。對于前兩個數據集,ReAct+CoT方法的效果是最好的,在后兩個數據集上,兩次甚至一次ReAct提示就能將成功率分別提高34%和10%。此外,作者還展示了相對于僅采用動作的優勢,證明了稀疏多功能推理在決策中的重要性。推理和動作的結合提高了模型的可解釋性和可信度,與人類的行為對齊。
總的來說,本文的貢獻如下:

  1. 提出ReAct,一個新穎的基于prompt的范式,在語言模型中協同推理和動作來解決一般問題。
  2. 在多個benchmarks上驗證ReAct的性能與優勢。
  3. 系統的消融分析,了解推理任務中動作以及交互任務中推理的重要性。
  4. ReAct在進一步微調下可以提升性能。與強化學習結合可以進一步釋放LLM的潛力。

2 REACT: SYNERGIZING REASONING + ACTING

考慮到智能體與環境交互以解決問題的一般場景,在時間步 t t t時,一個智能體獲得當前環境的觀察 o t ∈ O o_t \in \mathcal{O} ot?O,然后遵循策略 π ( a t ∣ c t ) \pi (a_t|c_t) π(at?ct?)選擇動作 a t ∈ A a_t \in \mathcal{A} at?A,其中 c t = ( o 1 , a 1 , . . . , o t ? 1 , a t ? 1 , o t ) c_t = (o_1,a_1,...,o_{t-1},a_{t-1},o_t) ct?=(o1?,a1?,...,ot?1?,at?1?,ot?),即歷史觀察動作上下文。當歷史上下文與動作的映射很不清晰時,學習一個策略是具有挑戰的。
ReAct的思想很簡單,它將智能體的動作空間增強為 A ^ = A ∪ L \mathcal{\hat{A}}=\mathcal{A} \cup \mathcal{L} A^=AL,其中 L \mathcal{L} L是語言空間。動作 a ^ t ∈ L \hat{a}_t \in \mathcal{L} a^t?L在語言空間中,稱之為思想或者推理痕跡,它不會影響外部環境,通過上下文信息進行推理來支持接下來的動作。
然而,語言空間是無限的,在這個空間中學習是困難的,需要很強的先驗。而LLM只需要借助少量的示例先驗進行提示,就可以生成解決任務的語言思維。對于推理重要的任務,ReAct交替產生思維和動作,這樣解決問題的軌跡就由多步思想-動作-觀察步驟組成。
由于決策和推理的能力已經集成到LLM中,ReAct具有一些獨特的功能:

  1. 符合直覺,易于設計。
  2. 通用且靈活。ReAct適用于具有不同動作空間和推理需求的多種任務。
  3. 高性能且穩健。對新任務展現出強大的泛化能力。
  4. 和人類對齊且可控。ReAct決策和推理過程具有可解釋性,并且人類可以通過編輯思想來控制或糾正智能體的行為。

3 KNOWLEDGE-INTENSIVE REASONING TASKS

對于推理任務,ReAct通過與維基百科API交互,能夠檢索信息支持推理。

3.1 SETUP

作者在HotPotQA和FEVER兩個數據集上來驗證ReAct的知識檢索與推理能力。前者是多跳問答benchmark,需要對兩個或多個維基百科片段進行推理,后者是事實驗證benchmark,每個聲明都基于維基百科中存在的片段而標注為支持、反對或者信息不足。ReAct將只接收問題和聲明,依靠自己的內部知識和外部API交互來回答。
在動作空間上,作者設計了一個簡單的維基百科API,它具有三種類型的動作來支持交互式信息的檢索:

  1. search[entity]。返回相應實體前五個句子或者前五個近似的實體。
  2. lookup[string]。檢索出包含特定string的下一個句子。
  3. finish[answer]。完成任務給出答案。模擬人類的檢索過程。

3.2 METHODS

作者從訓練集中隨機選擇6個和3個示例,并手動編寫ReAct格式的軌跡用于小樣本的示例。類似于圖1中的1(d),每個軌跡都由多個思想-動作-觀察步驟組成。
在baseline部分,作者系統地消融了ReAct軌跡以構建多個baseline的prompt。

  1. 標準prompt。移除了軌跡中的思想,動作和觀察。
  2. CoT。移除了動作和觀察,只做推理。其中CoT-SC(多CoT投票)能持續提高CoT的性能。
  3. Acting-only prompt。移除了思想的過程。

在實驗部分,作者觀察到ReAct解決任務的過程更符合事實,CoT在推理邏輯上更準確,但容易受到幻覺的影響。因此,作者將ReAct和CoT-SC結合在一起,讓模型根據以下情形切換方法:

  1. ReAct未能在限定步驟給出答案,采用CoT-SC。
  2. 當n個CoT-SC樣本中多數答案少于一半,采用ReAct。

此外,由于手動構建推理路徑具有一定的挑戰,因此作者采用3000個有正確答案的軌跡來微調PALM-8/62B,用于軌跡的生成。

3.3 RESULTS AND OBSERVATIONS

image.png
上圖顯示在兩個任務上,ReAct都要優于Act,這證明了推理對指導動作的價值。在HotPotQA數據集上,ReAct要略差于CoT,但是在Fever上要優于CoT。為了準確理解二者在HotPotQA上的差異,作者對結果進行了觀察,得到如下的分析:

  1. CoT中幻覺問題是個嚴重的問題。相比之下,ReAct解決問題的軌跡更值得
  2. 雖然推理和行動以及觀察步驟的交錯提高了ReAct的可信度,但是約束了其靈活性,導致其推理錯誤率高。
  3. 對于ReAct,通過搜索成功檢索出知識非常重要。

CoT-SC+ReAct的范式在兩個數據集上都得到了更好的結果,這表明正確結合模型內在知識和外在知識對模型推理具有顯著價值。
image.png
當對小模型進行微調后,8B的PaLM優于62Bprompt的PaLM,62B的PaLM優于540B的PaLM,此外,Standard和CoT與ReAct的差距拉大,原因是前者本質上是學習可能是錯誤的知識事實,而后者是教會模型如何推理和行動來訪問來自外部的知識。當然,現有的方法與特定領域的SoTA相距甚遠,作者認為精心微調會填平gap。

4 DECISION MAKING TASKS

作者還在語言交互決策任務ALFWorld和WebShop上測試了ReAct的能力。前者是一款基于合成文本的游戲,Agent需要通過文本操作與模擬家庭進行交互和導航,從而實現高級目標(6中類型任務)。特別的,ALFWorld有一個內置挑戰是你需要對常見家具的位置有一個概念。為了提示ReAct,對于每種任務類型,作者從訓練集中隨機標注了三個軌跡,每個軌跡都包括:

  1. 分解目標。
  2. 跟蹤子目標完成情況。
  3. 確定下一個子目標。
  4. 通過常識推斷下一個目標的位置以及如何操作。

作者在特定任務設置下的134個未見的任務上進行評估,為了魯棒性,作者在人工標注的基礎上為每個任務構建了6個prompt。baseline采用BUTLER,一種模仿學習智能體,針對每種任務進行了訓練。
WebShop是一個在線購物環境網站,擁有118萬個真實世界的產品和12k人工指令。它包含多種結構化和非結構化文本,需要智能體根據用戶指令購買商品。該任務通過500個測試指令的平均得分和成功率來評估。ReAct的提示包括帶有推理的搜索,選擇產品,選項和購買操作。作者將ReAct與模仿學習方法以及模仿+強化學習方法進行對比。
image.png
ReAct在兩個數據集上都要優于Act。在ALFWorld上,ReAct平均71%的成功率遠高于Act和BUTLER,在Webshop上,one-shot的Act已經達到了IL和IL+RL的方法。ReAct的性能更為突出,但是與人類表現仍然相去甚遠。此外,作者還和IM方法進行了消融實驗的對比,讓ReAct框架和IM結合,IM沒有采用LLM,它局限在對環境狀態進行觀察以及智能體需要完成什么才能滿足目標。由于缺少高級目標分解,ReAct-IM在該完成什么子目標的時候經常犯錯,由于缺乏常識推理,它難以定位家具的大概位置。

5 RELATED WORK

略。

6 CONCLUSION

本文提出ReAct,一個簡單有效的方法,基于LLM進行協同推理和行動。無論是在問答推理還是決策任務上都帶來了卓越的性能。盡管方法簡單,但是由于token長度的限制,在一些復雜的任務上做的不好(需要更多的演示)。雖然微調模型有效果,但是數據還是不夠。未來通過多任務訓練擴大ReAct的規模,與RL相結合,可能會產生更強大的Agent。

閱讀總結

在我看來,ReAct這篇工作可以說是2023年爆火的Agent的鼻祖,它的方法很簡單,思路很清晰,整篇工作最大的貢獻在于提出了一個初始Agent的范式,那就是推理+動作。一個真正意義上的Agent,就應該像人一樣,面對一個問題時先思考,再執行,走一步想一步,從而完成任務。當然了,Agent還得有自己的memory,有自己的技能庫,以及遇到問題時需要Planing,不過這都是后面Agent的發展了。最后,文中提到在復雜任務上,ReAct還是沒辦法做好,并且與人類的SOTA相差甚遠,其根本原因是Agent的能力不夠,當ChatGPT以及后續衍生產品的出現后,所有的這些GAP都會被填平。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210666.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210666.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210666.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

phpstudy搭建WordPress教程

一、phpstudy新建配置WordPress 打開phpstudy,啟動Apache(或者Nginx)和MySQL服務 來到數據庫部分,點擊[創建數據庫],填寫新建數據庫的名稱,用戶名以及密碼,完成后點擊確認 來到網站部分&#x…

Course2-Week4-決策樹

Course2-Week4-決策樹 文章目錄 Course2-Week4-決策樹1. 決策樹的直觀理解2. 構建單個決策樹2.1 熵和信息增益2.2 構建決策樹——二元輸入特征2.3 構建決策樹——多元輸入特征2.4 構建決策樹——連續的輸入特征2.5 構建回歸樹——連續的輸出結果(選修)2.6 代碼實現-遞歸構建單個…

解決 php 連接mysql數據庫時報錯:Fatal error: Class ‘mysqli’ not found in問題

在使用php對mysql進行連接的過程中,出現了Fatal error: Uncaught Error: Class "mysqli" not found in的問題 解決方案 這個錯誤通常表示您的PHP代碼中缺少MySQL擴展或者沒有啟用MySQL擴展。 我們首先確認一下PHP環境中已經安裝了MySQL擴展。檢查一下自己…

Redis如何做內存優化?

Redis如何做內存優化? 1、縮短鍵值的長度 縮短值的長度才是關鍵,如果值是一個大的業務對象,可以將對象序列化成二進制數組; 首先應該在業務上進行精簡,去掉不必要的屬性,避免存儲一些沒用的數據&#xff1…

rust詳解

前言 rust 學習曲線非常陡峭,但是基本語法也還算挺好理解,自動內存管理有點類似智能指針,基本看一下語法入門就可以大概理解,但是唯獨宏很難理解,語法非常晦澀。但是功能非常強大。聲明宏類似于c語言的宏處理&#xf…

【淘寶網消費類電子產品銷售數據可視化】

淘寶網消費類電子產品銷售數據可視化 引言數據爬取與處理數據可視化系統功能1. 總數據量分析2. 店鋪總數據3. 店鋪銷售額排名4. 不同電子商品銷售價格5. 單個商品價格排名6. 不同省份平均銷量7. 不同地區的平均銷售額8. 省份數量9. 每個省份有用的平均個數 創新點結語 引言 隨…

Linux 中 find 查找

目錄 1.普通查詢 2.按照文件大小查找 3.忽略文件字母大小寫查詢 4.根據修改時間查找 5. 取反 ! 6.根據用戶查詢 7.對查找出來的內容進行操作 1.普通查詢 find 路徑 -name "文件名" 如查看 etc 目錄下的passwd 的文件 find /etc -name "passwd&quo…

【周報2023.12.09】

周報2023.12.09 本周開展工作下周工作計劃 本周開展工作 本周開展的工作的話一共是一下幾點: 這三點的話是緊密相連的 邏輯這邊需要考慮的東西很多 點擊生成照片,然后獲取生成照片的狀態點擊生成照片,然后獲取生成照片的時間,并…

kettle完成mysql表與表之間的更新和插入

版本:20231209 kettle完成數據庫表與表之間的轉換非常的簡單,只需要在輸入模塊選擇:輸入表;在輸出模塊選擇:插入和更新表模塊 實例展示:將表stu1的數據同步到stu2,并覆蓋掉stu2原本的數據。 cr…

嵌入式學習---ARM時鐘體系

目錄 時鐘相關概念時鐘脈沖時鐘頻率時鐘的作用時鐘信號的生成 S3C2440的時鐘體系主時鐘晶振兩個PLL 時鐘啟動流程相關的寄存器 時鐘相關概念 時鐘脈沖 按一定電壓幅度,一定時間間隔連續發出的脈沖信號。它是一個周期性的信號,每個周期內包含一個上升沿…

ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders

1.關于稀疏卷積的解釋:https://zhuanlan.zhihu.com/p/382365889 2. 答案: 在深度學習領域,尤其是計算機視覺任務中,遮蔽圖像建模(Masked Image Modeling, MIM)是一種自監督學習策略,其基本思想…

向日葵遠程控制鼠標異常的問題

? 在通過向日葵進行遠程控制的時候,可能會遇到鼠標位置異常的問題。此時,不管怎么移動鼠標,都會停留在屏幕最上方,而無法點擊到正確的位置。如圖: 此時,如果啟用了“被控端鼠標”功能,可以正…

【Docker】swarm stack部署多service應用

前面我們已經學習過了Docker Compose,它可以用來進行一個完整的應用程序相互依賴的多個容器的編排的,但是缺點是只能在單機模式使用,不能在分布式多機器上使用;前面我們也學習了Docker swarm,它可以將單個服務部署為多…

基于EIoT能源物聯網的智能照明系統應用改造-安科瑞 蔣靜

【摘要】:隨著物聯網技術的發展,許多場所針對照明合理應用物聯網照明系統,照明作為工廠的重要能耗之一,工廠的照明智能化控制,如何優化控制、提高能源的利用率,達到節約能源的目的。將互聯網的技術應用到工…

【PHP】學習筆記一:數組及JSON

目錄 一、初始化創建數組: 1. 簡單數組: 2. 索引號是字符串數組(對象數組): 3. 數組中增加一個元素: 4. 對象數組轉JSON字符串 5. JSON字符串轉數組 一、初始化創建數組: 1. 簡單數組&am…

golang的文件操作

獲取文件列表路徑 package _caseimport ("fmt""log""os""strings" )// 獲取文件路徑 // 源文件目錄 const sourceDir "file/"// 目標文件目錄 const destDir "det_file/"// 拿到目錄下完整的路徑 func geFiles…

Python數據科學視頻講解:數據挖掘與建模的注意事項

1.7 數據挖掘與建模的注意事項 視頻為《Python數據科學應用從入門到精通》張甜 楊維忠 清華大學出版社一書的隨書贈送視頻講解1.7節內容。本書已正式出版上市,當當、京東、淘寶等平臺熱銷中,搜索書名即可。內容涵蓋數據科學應用的全流程,包括…

sensitive word 敏感詞(臟詞) 如何忽略無意義的字符?達到更好的過濾效果?

忽略字符 說明 我們的敏感詞一般都是比較連續的,比如 傻帽 那就有大聰明發現,可以在中間加一些字符,比如【傻!#$帽】跳過檢測,但是罵人等攻擊力不減。 那么,如何應對這些類似的場景呢? 我們可以指定特…

CSS3技巧36:讓內容垂直居中的三種方式

讓內容垂直居中,是一個很重要的應用情景,在很多場合都會需要。這也是面試的時候,一些考官喜歡拿來初面的小題目。 這里,小結下讓內容垂直居中的三種方式。 當然,讀者如果有更好的方法,也可以提出來。 基本…

基于ssm技術的車庫智能管理平臺論文

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術,讓傳統數據信息的管理升級為軟件存儲,歸納,集中處理數據信息的管理方式。本車庫智能管理平臺就是在這樣的大環境下誕生,其可以幫助管理者在短時間內處理完畢龐大的數據信息…