規劃(planning)
規劃,可以為理解觀察和思考。如果用人類來類比,當我們接到一個任務,我們的思維模式可能會像下面這樣:
·1、首先會思考怎么完成這個任務。
2、然后會審視手頭上所擁有的工具,以及如何使用這些工具高效地達成目的。
3、再會把任務拆分成子任務。(就像咱們做思維導圖一樣。)
4、在執行任務的時候,我們會對執行過程進行反思和完善,吸取教訓以完善未來的步驟。
5、執行過程中思考任務何時可以終止。
這是人類的規劃能力,我們希望智能體也擁有這樣的思維模式,因此可以通過 LLM 提示工程,為智能體賦予這樣的思維模式。在智能體中,最重要的是讓 LLM 具備兩種能力:子任務拆解和反思與改進
子任務拆解
通過LLM使得智能體可以把大型任務分解為更小的、更可控的子任務,從而能夠有效完成復雜的任務。
思維鏈(Chain of Thoughts,CoT):思維鏈已經是一種比較標準的提示技術,能顯著提升LLM完成復雜任務的效果。當我們對LLM要求“think step by step”,會發現LLM會把問題分解成多個步驟,一步一步思考問題和如何解決,能使得輸出的結果更加準確,這是一種線性的思維模式。
思維樹(Tree-of thought,ToT):對CoT的進一步擴展,在思維鏈的每一步,推理出多個分支,拓撲展開成一棵思維樹,使用啟發方式評估每個推理分支對問題解決的貢獻,選擇搜索算法,使用廣度優先搜索(BFS)或深度優先搜索(DFS)等算法來探索思維樹,并進行前瞻和回溯)。
思維鏈和思維樹的不同思考過程
反思與改進
Agent對過去的行動進行自我批評和反思,從錯誤中學習并改進未來的步驟,從而提高最終結果的質量。
在實際任務中,試錯是不可避免的,而自我反思在這個過程中起著至關重要的作用。它允許 Agent 通過改進過去的行動決策和糾正以前的錯誤來進行迭代改進。
反思是 Agent 對事情進行更高層次、更抽象思考的結果。反思是周期性生議的,當gent感知到的最新事件的重要性評分之和超過一定閾值時,就會生成反思。這可以類比為我們常用的成語“三思而后行",做重大決策的時候,我們會反思自己先前的決策。
事實上,有沒有這種類似思維模式的框架,對于大模型的給出的答案,質量與耗費的時間區別是顯而易見的,無論是只有標準,僅推理還是僅行動,都會在一定程度上限制答案,相當于是在閉門造車,而如果用對了框架,像前面所說的一樣,先規劃,做出行動后思考是否合理,再去決定下一步行動,這樣給出的答案相比之下就會更完善,在解決問題上也會更高效。像是我們比較經常會說到的就是LLM有時會因為幻覺而給出很荒謬的答案,就是因為沒有交互,也沒有觀察答案的反饋,直接就給出答案。
記憶(memory)
生活中的記憶機制
感覺記憶(Sensory Memory):這是記憶的最早階段,提供在原始刺激結束后保留感官信息(視覺、聽覺等)的印象的能力。感覺記憶通常只持續幾秒鐘。
短期記憶(或工作記憶):這是一種持續時間較短的記憶,能夠暫時存儲和處理有限數量的信息。例如,記住一個電話號碼直到撥打完畢。
長期記憶:這是一種持續村間較長的記憶,可以存儲大量信息,從幾分鐘到一生。長期記憶可以進一步分為顯性記憶和隱性記憶。顯性記憶,可以有意識地回憶和表達的信息,顯性記憶又可以分為情景記憶(個人經歷的具體事件)和語義記憶(一般知識和概念)。隱性記憶,這種記憶通常是無意識的,涉及技能和習慣,如騎自行車或打字。
智能體中的記憶機制
形成記憶:大模型在大量包含世界知識的數據集上進行預訓練。在預訓練中,大模型通過調整神經元的權重來學習理解和生成人類語言,這可以被視為“記憶"的形成過程。通過使用深度學習和梯度下降等技術,大模型可以不斷提高基于預測或生產文本的能力,進而形成世界記憶或長期記憶
短期記憶:在當前任務執行過程中所產生的信息,比如某個工具或某個子任務執行的結果,會寫入短期記憶中。記憶在當前任務過程中產生和暫存,在任務完結后被清空。
長期記憶:長期記憶是長時間保留的信息。一般是指外部知識庫,通常用向量數據庫來存儲和檢索。
學習來源于B站教程:【進階篇】05.Agent記憶(memory)_嗶哩嗶哩_bilibili