簡單卻有效的Agent推理框架:通過預(yù)測未來大幅提升智能體的規(guī)劃能力
論文標(biāo)題:
PreAct: Predicting Future in ReAct Enhances Agent’s Planning Ability
論文鏈接:
??https://arxiv.org/abs/2402.11534??
代碼鏈接:
??https://github.com/Fu-Dayuan/PreAct??
01 概述
1.1 背景
大語言模型(LLM)已顯示出一定的規(guī)劃和決策能力。利用這種能力,ReAct 將環(huán)境信息和智能體(Agent)可執(zhí)行的行動提供給大語言模型,就可以利用它確定當(dāng)前狀態(tài)下需要執(zhí)行的行動。
然而,ReAct 系統(tǒng)通常生成單一、直接的因果推理路徑,這限制了它在具有復(fù)雜因果關(guān)系的任務(wù)中的有效性。以 TOT、GOT 和 RAP 為代表的一系列推理指導(dǎo)范式,它們允許在每一步生成多種可能的行動,并根據(jù)多個環(huán)境反饋結(jié)果和選擇策略決定下一步路徑。
雖然這種方法提高了 agent 處理復(fù)雜因果關(guān)系的能力,但在真實世界的場景中,在同一情況下執(zhí)行多個行動往往是不現(xiàn)實的。所以需要一種在每輪中僅生成一種行動但能夠處理多樣、復(fù)雜推理的智能體框架。
1.2 動機
處理預(yù)測與實際結(jié)果之間的差異往往有助于人們擴展思維過程和進行反思,從而促進推理朝著正確的方向發(fā)展。受科學(xué)研究的過程和任務(wù)導(dǎo)向?qū)υ捴杏嘘P(guān)預(yù)測未來的研究成果的啟發(fā),我們提出了一個將預(yù)測、推理和行動融為一體的 agent 推理框架——PreAct。
利用預(yù)測提供的信息,基于大語言模型的 agent 可以提供更多樣化、更具戰(zhàn)略導(dǎo)向性的推理,進而產(chǎn)生更有效的行動,幫助 agent 完成復(fù)雜的任務(wù)。
1.3 效果
我們在 AgentBench 中的 HH、OS、DB、LTP 等數(shù)據(jù)集上進行了大量的實驗,實驗表明 PreAct 在完成復(fù)雜任務(wù)方面優(yōu)于 ReAct 方法,且可以與 Reflexion 結(jié)合,進一步增強 agent 的推理能力。
我們用不同數(shù)量的歷史預(yù)測對模型進行提示,發(fā)現(xiàn)歷史預(yù)測對 LLM 規(guī)劃有持續(xù)的正向影響。PreAct 和 ReAct 在單步推理上的差異表明,PreAct 在多樣性和戰(zhàn)略方向性方面確實比 ReAct 更有優(yōu)勢。
02 方法
2.1 前置知識
2.1.1 Agent與Enviroment
動作 和觀察結(jié)果 構(gòu)成了 agent 與環(huán)境交互的過程。對于處于步驟 的代理, agent 將根據(jù)歷史信息 、上次觀察結(jié)果 及其行動策略 采取動作。
決定要采取的動作后,agent 將在環(huán)境中執(zhí)行動作,并通過環(huán)境策略 獲得新的觀察結(jié)果。對于 LLM 代理來說,它只能控制 和 的構(gòu)建。因此,LLM agent 的目標(biāo)就是設(shè)計出高效的 和 。
2.1.2 ReAct
ReAct 是一項面向 LLM agent 的開創(chuàng)性工作,它結(jié)合了思考 、行動 和觀察 。ReAct 使用 作為 和一組 作為 。利用 LLM 的規(guī)劃能力,ReAct agent可以探索環(huán)境并逐步解決問題。
2.1.3 Reflexion
Reflexion 是一種長時記憶策略,用于提高 agent 中 的質(zhì)量。以 ReAct 的 Reflexion 為例,如果任務(wù)失敗,LLM 會被要求進行反思,比如 。一旦進行了反思, 就會更新為 。這種策略可以提示 LLM 一些信息,幫助它避免一些決策錯誤。
2.2 PreAct
PreAct 的框架如圖 1 所示。它與 ReAct 有兩點不同:對于 部分,PreAct 會在每一步中要求 LLM 生成對未來觀察的預(yù)測和相應(yīng)的應(yīng)對措施 ,并根據(jù)預(yù)測觀察與實際觀測之間的差異提示 LLM 反思或改變其計劃方向。
通過這種提示,可以提高 LLM 所做計劃的多樣性和策略導(dǎo)向性。對于 部分,PreAct 會在其中添加對未來觀察的預(yù)測。雖然 PreAct 提高了 LLM 的思考和計劃能力,但還有兩個問題有待探究:
(1)PreAct 是否能與 Reflexion 結(jié)合使用并進一步提升效果?
(2)預(yù)測的效果是永久性的,還是只能影響下一輪?
基于這兩個問題,我們考慮了 3 種 模式:
1. 永久模式:所有預(yù)測都將保留在永久歷史中,如:
2. 即時模式: 只有最后一次預(yù)測會保留在即時歷史中,如:
3. 反思模式:反射和所有預(yù)測都將保留在歷史記錄中,如:
03 實驗
我們的實驗旨在解決以下研究問題(RQs)。
- 與 ReAct 相比,不同模式的 PreAct 在處理任務(wù)時是否表現(xiàn)得更好?
- PreAct 比 ReAct 能更好促進規(guī)劃的內(nèi)在原因是什么?
- 歷史預(yù)測是否有助于持續(xù)提高規(guī)劃能力?
3.1 實驗設(shè)置
我們在 AgentBench 中的 HH、OS、DB 和 LTP4 4 個不同的子數(shù)據(jù)集上對 PreAct 進行了評估。我們使用 GPT3.5 和 GPT4 作為 agent 的 LLM。更多的實驗設(shè)置和所有提示詞都能在論文附錄中找到。
3.2 主要結(jié)果
表 1 列出了 PreAct 和 ReAct 在 Permanent 和 Reflexion 兩種不同設(shè)置下,在四個數(shù)據(jù)集上的性能表現(xiàn)。
在 HH 任務(wù)中,PreAct 比 ReAct 提高了約 20%。在 OS 和 DB 任務(wù)中,在 Permanent 設(shè)置下,PreAct 的平均性能相比 ReAct 分別提高了 12% 和 6%,在 Reflexion 設(shè)置下,Preact的性能相比同樣采取了 Reflexion 的 React 分別提高了 5% 和 8%。在 LTP 情景下,PreAct 的結(jié)果與僅 Act 的結(jié)果類似,這可能是由于 GPT 的安全機制導(dǎo)致其多次拒答,從而減少了有效的探索步驟。
總的來說,在大多數(shù)情況下,PreAct 都優(yōu)于 ReAct,在某些指標(biāo)上甚至超過了帶 Reflexion 的 React。此外,在 PreAct 的基礎(chǔ)上應(yīng)用 Reflexion 還能持續(xù)提升模型性能。這表明,先驗任務(wù)信息和觀察預(yù)測可以共同提高 LLM 的規(guī)劃和決策能力。
3.3 內(nèi)在原因分析
根據(jù)我們的假設(shè),PreAct 可增強推理的多樣性和策略方向性,從而提高 LLM 的規(guī)劃能力。在本節(jié)中,我們將研究這兩個促進因素。
3.2.1 多樣性
圖 2 展示了 PreAct 和 ReAct 在 HH、OS 和 DB 數(shù)據(jù)集上的多樣性比較。我們向 GPT-4 輸入了兩條包含思考和行動的軌跡,要求它在 0 到 100 的范圍內(nèi)對每條軌跡打分。
圖表顯示,在任何給定的數(shù)據(jù)集上,至少有 45% 的實例顯示出 PreAct 的推理多樣性優(yōu)于 ReAct,而相反的情況則不超過 34%。這表明,使用 PreAct 可以顯著提高推理多樣性,從而擴大推理空間,拓寬可能行動的范圍。
3.2.2 策略方向性
我們選擇 Alfworld 任務(wù)來分析策略方向性。對于每條軌跡的每一輪,我們都向模型提供 ground truth、截至本輪次的所有思考和行動,同時去除所有預(yù)測。然后,我們要求 GPT-4 對其策略方向性進行評分,分數(shù)范圍為-1 ~ 3。策略方向性的評價指標(biāo)如下:
其中, 為樣本, 為一輪思考和行動, 為評分器。如表 2 所示,PreAct 的策略方向性得分比 ReAct 高出至少 20%。這表明 PreAct 在確定規(guī)劃方向方面更勝一籌。
3.2.3 相關(guān)性研究
圖 5 顯示了在 HH 數(shù)據(jù)集上,多樣性、策略方向性和成功率之間的關(guān)系,揭示了成功率與這兩個指標(biāo)之間的正相關(guān)關(guān)系。此外,策略方向性與成功率的相關(guān)系數(shù)分別為 99.8%(Dev)和 99.3%(Test),而多樣性與成功率的相關(guān)系數(shù)分別為 83.7%(Dev)和 91.2%(Test)。
3.2.4 案例分析
圖 3 顯示了 PreAct 和 ReAct 在 DB 和 HH 數(shù)據(jù)集上的部分軌跡。雖然 PreAct 和 ReAct 在這兩個數(shù)據(jù)集的初始執(zhí)行階段都出現(xiàn)了錯誤,但 PreAct 可以借助預(yù)測糾正錯誤,而 ReAct 則不能。
在 DB 數(shù)據(jù)集中,ReAct 和 PreAct 在第一輪中都使用了相同的錯誤列名。PreAct 通過驗證實際列名糾正了這一錯誤,而 ReAct 則反復(fù)使用了錯誤的列名。Pre Act 對查詢和更正列名的考慮反映了其推理的多樣性。
在 HH 任務(wù)中,ReAct 檢查完冰箱后,與冰箱內(nèi)的物體進行了互動,這與任務(wù)無關(guān),而 PreAct 則預(yù)測到了 "冰箱內(nèi)沒有生菜 "的條件,并根據(jù) Pred 3 中的預(yù)測結(jié)果,指導(dǎo)其在其他地方找到生菜,最終完成了任務(wù)。這種重新考量生菜的可能位置而不是繼續(xù)在冰箱附近尋找的決定表明,PreAct 具有更好的策略方向性。
3.2.5 歷史預(yù)測影響范圍
圖 4 展示了不同數(shù)量的預(yù)測歷史對 LLM 推理性能的影響。在 HH、OS 和 DB 數(shù)據(jù)集上進行的實驗表明,增加預(yù)測歷史的保留量可以提高成功率。
以 PreAct(GPT4)為例,3 種設(shè)置下任務(wù)的成功率在 HH 中分別為 66%、70%、74%;在 OS 中分別為 40.9%、42.3%、43.1%;在 DB 中分別為 50%、51%、51.3%。這些發(fā)現(xiàn)表明,歷史預(yù)測對模型的推理能力有持續(xù)的正向影響。然而,在 LTP 數(shù)據(jù)集上,更多的歷史數(shù)據(jù)會導(dǎo)致更高的拒答概率,進而導(dǎo)致永久模式下的 Preact 性能下降。
04 結(jié)論
本文中,我們介紹了一個簡單卻有效的 agent 推理框架——PreAct,它利用預(yù)測來增強規(guī)劃的多樣性和策略方向性,從而提高 agent 完成任務(wù)的能力。這種增強是持續(xù)性的,它獨立于 Reflexion,并將隨著歷史預(yù)測的積累而不斷提高?;?PreAct 的研究結(jié)果,我們提出了兩個評估規(guī)劃的指標(biāo),這可能有助于在未來的工作中為強化學(xué)習(xí)設(shè)置過程級的獎勵函數(shù),以訓(xùn)練出更強大的 agent。
本文轉(zhuǎn)自 PaperWeekly ,作者:黃健釗、傅大源
