什么是ReAct?
在大語言模型(LLM)領域中,ReAct 指的是一種結合了推理(Reasoning) 和行動(Acting) 的提示方法,全稱是 “ReAct: Synergizing Reasoning and Acting in Language Models”,最早由 Google Research 在 2022 年提出。
簡單理解
ReAct 提示(prompting)讓語言模型不僅進行推理(思考下一步),還能主動調用工具或采取行動,并根據反饋結果繼續推理和行動。
舉個例子:
假設模型要回答一個關于當前天氣的問題,而它本身并不知道當前天氣。
傳統方式(純推理):
問:今天北京的天氣如何?
答:對不起,我沒有聯網,無法查看當前天氣。
ReAct方式(推理 reason+ 行動act):
- 模型先思考:要回答這個問題,我需要查找當前北京的天氣。
- 行動:調用一個天氣 API 或瀏覽器搜索。
- 接收結果:北京今天晴 32°C。
- 再次思考:得到了天氣數據,現在可以回答了。
- 輸出最終答案:北京今天晴,氣溫 32°C。
ReAct 的核心結構:
ReAct 提示通常包含多個交替的步驟,比如:
- Thought: 我需要知道X才能解答。
- Action: 查找X(比如調用工具或執行代碼)
- Observation: 得到X的結果。
- Thought: 基于結果,我可以得出結論。
- Answer: Y。
ReAct 的優點:
- 更強的邏輯推理能力
- 可以調用外部工具(如計算器、搜索引擎)
- 可以進行多步思考和調整
- 效果優于單純的Chain-of-Thought(CoT)推理
應用場景
- 多步驟問答
- 工具增強型問答(Tool-augmented QA)
- 任務規劃
- Web搜索、代碼執行等
ReAct與CoT區別
什么是CoT?
Chain-of-Thought (CoT) 推理是指一種讓大語言模型(LLM)在回答問題時,能夠通過分步推理的方式展開思考,而不是直接給出最終答案。CoT 方法幫助模型通過逐步推理得出答案,從而避免“跳過”關鍵的推理過程,提升其推理和解答能力。
CoT 推理的核心概念:
CoT 推理的關鍵是將問題分解為多個中間步驟,讓模型清楚地表達思考過程。這種方法模擬了人類在解決復雜問題時常常采用的思考方式:通過逐步分析、推導每一個小問題,最終得出結論。
舉個例子:
假設我們有一個數學問題:
問題:如果有3個蘋果,給了你2個蘋果,現在你一共有多少個蘋果?
沒有CoT的回答:
答:5個蘋果。
使用CoT的回答:
我有3個蘋果。
給了我2個蘋果。
所以我總共有3 + 2 = 5個蘋果。
可以看到,CoT 會讓模型逐步地列出每一步的推理過程,而不僅僅是直接給出答案。
CoT 在不同領域的應用:
- 數學推理:例如數學運算題,CoT 可以幫助模型一步步進行數值推導。
- 自然語言理解:處理含有多步驟的語言理解任務,如推理題、翻譯、總結等。
- 決策過程:例如在游戲、機器人控制、醫學診斷等場景中,CoT 可以幫助模型分步驟做出決策。
CoT 與 ReAct 的對比:
-
CoT 專注于推理的過程,即通過思考和推導一步步得到答案。
-
ReAct 則結合了推理和行動,也就是說,它不僅進行推理,還會根據需要調用外部工具或執行某些行動(如API調用、搜索等)。
例子對比:
- CoT 例子:
-
問:一個果園里有 5 個樹,每棵樹上有 10 個蘋果,一共有多少個蘋果?
-
CoT 推理:
1. 每棵樹上有 10 個蘋果。2. 共有 5 棵樹。3. 所以總共有 5 * 10 = 50 個蘋果。
- ReAct 例子(在需要查找信息的情況下):
-
問:今天紐約的天氣如何?
-
ReAct 推理:
1. 我需要知道今天紐約的天氣。2. 行動:調用天氣查詢 API 或搜索天氣信息。3. 觀察:得到今天紐約的天氣是晴天,氣溫 30°C。4. 輸出:今天紐約的天氣是晴天,氣溫 30°C。