我的新書AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題的教材投影片已製作完成
歡迎各位有需要的教師和博碩文化索取教材

ReAct Prompting

什麼是ReAct

論文網址:https://arxiv.org/abs/2210.03629

ReAct Prompting 是一種結合了推理(Reasoning)行動(Acting)的提示策略,旨在提升語言模型的推理能力和任務處理的靈活性。這種方法特別適合於需要多步推理的情境,讓模型不僅能回答問題,還能在每個步驟中進行推理、執行動作並根據回饋來調整答案。

ReAct Prompting 的核心概念

  • Reasoning(推理):模型會先根據提示中的問題進行邏輯推理,分析問題的各個面向,列出思路並規劃步驟。這部分相當於讓模型進行「思考」,幫助它理解問題的複雜性並制定解決方案。
  • Acting(行動):在每一步推理之後,模型可以「執行」一些動作,例如檢索資料、查詢外部知識庫或記錄結果。這些行動的結果會作為新的資訊,幫助模型進一步推理,逐步接近最終答案。

運作流程

ReAct Prompting 的過程可以分為以下幾個步驟:

  1. 問題理解與初步推理:模型首先對問題進行初步推理,理解問題的主要需求並分解問題。
  2. 執行動作:根據初步推理的結果,模型可以執行特定動作,例如查詢資料庫、檢索相關資料,或執行一個子任務來獲取更多資訊。
  3. 更新推理:根據執行動作的結果,模型會更新推理過程。例如,若查詢結果提供了新的線索,模型會基於這些線索進一步調整答案或行動。
  4. 循環進行:重複「推理-行動」的交替步驟,直到模型有足夠的資訊來生成最終答案。

ReAct Prompting 的優勢

  • 增強多步推理能力:通過每一輪的推理和行動交替進行,ReAct Prompting 使得模型能夠處理更為複雜的問題。這種方法非常適合處理需要多步驟推理的問題,比如數學問題、邏輯推理和多跳問答(multi-hop QA)。
  • 動態調整答案:ReAct Prompting 的行動步驟允許模型在獲得新資訊後更新答案,這樣模型能夠隨著獲取到的回饋逐步接近問題的核心,避免因初始答案偏差導致的錯誤。
  • 提高解決任務的靈活性:ReAct Prompting 不僅讓模型進行靜態的回答,還讓它在回答過程中能夠進行行動、做出調整。這對於那些依賴多次查詢、反覆驗證的任務特別有用。

應用場景

  • 複雜問答:如多跳查詢問題(例如,「在歷史上,第一位提到光速的科學家是誰?」),模型可以逐步檢索和推理。
  • 數學推理問題:模型在每步推理後可以計算中間結果,逐步完成複雜的數學題。
  • 任務執行:模型可以根據問題執行多步驟操作,例如根據指示查詢多個來源或執行多個指令來完成一個流程。

實際範例

假設問題是:「找出哪位科學家首次提出光速的概念,並描述他的研究貢獻。」

Step 1(推理):模型認為首先需要查詢有關「光速概念的歷史背景」。

Step 2(行動):模型查詢資料庫,得到早期研究光速的科學家名單,包括伽利略、牛頓等。

Step 3(推理):模型分析這些科學家的貢獻,並找到提出光速具體數值的第一位科學家。

Step 4(行動):模型查詢更多有關這位科學家的研究,得到其具體貢獻。

Step 5(最終回答):模型將所有資訊彙整並給出答案,描述該科學家如何提出光速的概念及其相關研究。

之前的相關介紹


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!