天天看點

“AI”科普丨一文帶你了解基于大模型的Agent

作者:中國人工智能學會

轉自 Datawhale

Datawhale幹貨

作者:陳安東,Datawhale成員

“AI”科普丨一文帶你了解基于大模型的Agent

Datawhale

一個專注于AI領域的開源組織,彙聚了衆多優秀學習者,使命-for the learner,和學習者一起成長。

602篇原創内容

公衆号

前 言

在目前資訊時代,大型語言模型(Large Language Models,LLMs)的發展速度和影響力日益顯著。大模型強大的推理以及生成能力成為了搭建智能體的最好的元件。本内容來源于Datawhale的開源的“生成大模型基礎(so-large-lm)”,一個緻力于探索和了解大型模型發展的前沿課程:

“AI”科普丨一文帶你了解基于大模型的Agent

通過該開源課程,讀者将能夠獲得對智能體較為全面的了解,掌握它們的設計原理、優勢、應用場景以及目前的局限性。我們希望這份該課程能夠為廣大學習者提供價值,促進對大模型理論基礎知識的深入學習和應用,同時激發更多的創新和探索。

簡 介

在科技發展的曆史中,人類一直試圖打造一種可以自主完成預設目标的代理或實體,即智能體 (AI Agents 或 Agents),以協助人類完成各種各樣繁瑣的任務。多年來,智能體作為人工智能一個活躍的應用領域吸引人們不斷地研究探索。如今,大語言模型正蓬勃發展,日新月異。

在智能體技術的實作上,尤其是在基于大型語言模型(LLM)的智能體建構中,LLM在智能體的智能化中扮演着至關重要的角色。這些智能體能夠通過整合LLM與規劃、記憶以及其他關鍵技術子產品,執行複雜的任務。在此架構中,LLM充當核心處理單元或“大腦”,負責管理和執行為特定任務或響應使用者查詢所需的一系列操作。

以一個新的例子來展示LLM智能體的潛力,設想我們需要設計一個系統來應對以下詢問:

目前歐洲最受歡迎的電動汽車品牌是什麼?

這個問題可直接由一個更新至最新資料的LLM給出答案。若LLM缺乏即時資料,可以借助一個RAG(檢索增強生成)系統,其中LLM可以通路最新的汽車銷售資料或市場報告。

現在,讓我們考慮一個更為複雜的查詢:

過去十年裡,歐洲電動汽車市場的增長趨勢如何,這對環境政策有何影響?能否提供這一時期内市場增長的圖表?

僅依賴LLM來解答此類複雜問題是不夠的。雖然結合LLM與外部知識庫的RAG系統能提供某種幫助,但要全面回答這個問題,還需要更進一步的操作。這是由于要解答這個問題,首先需要将其拆解成多個子問題,其次需要并通過特定的工具和流程進行解決,最終獲得所需答案。一個可能的方案是開發一個能夠通路最新的環境政策文獻、市場報告以及公開資料庫的LLM智能體,以擷取關于電動汽車市場增長及其環境影響的資訊。

此外,LLM智能體還需配備“資料分析”工具,這可以幫助智能體利用收集到的資料制作出直覺的圖表,進而清晰地展示過去十年歐洲電動汽車市場的增長趨勢。雖然這種智能體的進階功能目前還屬于理想化設想,但它涉及多項重要的技術考量,如制定解決方案的規劃和可能的記憶子產品,這有助于智能體追蹤操作流程、監控和評估整體進展狀态。

LLM Agent 架構

一般而言,基于LLM的智能體架構包括以下核心元件:

  • 使用者請求 - 使用者的問題或請求
  • 智能體/大腦 - 充當協調者的智能體核心
  • 規劃 - 協助智能體規劃未來的行動
  • 記憶 - 管理智能體的過往行為
“AI”科普丨一文帶你了解基于大模型的Agent

智能體

在建構以大型語言模型(LLM)為核心的智能體系統中,LLM是至關重要的,充當系統的主腦和多任務協調的核心。這種智能體通過解析和執行基于提示模闆的指令,這些模闆不僅指導LLM具體操作,也詳細定義了智能體的角色和人格,包括背景、性格、社會環境及人口統計資訊等。這種人格化的描述使得智能體能更精準地了解和執行任務。

為了優化這一過程,系統設計需要綜合考慮幾個關鍵方面:

  • 首先,系統需具備豐富的 上下文了解 和 持續學習能力,不僅處理和記憶大量互動資訊,還需不斷優化執行政策和預測模型。
  • 其次,引入 多模态互動,融合文本、圖像、聲音等多種輸入輸出形式,讓系統更自然有效地處理複雜任務和環境。此外,智能體的動态角色适應和個性化回報也是提升使用者體驗和執行效率的關鍵。
  • 最後,加強 安全性 和 可靠性,確定系統穩定運作,赢得使用者信任。整合這些元素,基于LLM的智能體系統能夠在處理特定任務時展現出更高的效率和準确性,同時,在使用者互動和系統長期發展方面展現出更強的适應性和可持續性。這種系統不僅僅是執行指令的工具,更是能夠了解複雜指令、适應不同場景并持續優化自身行為的智能合作夥伴。
“AI”科普丨一文帶你了解基于大模型的Agent

規劃

無回報規劃

規劃子產品是智能體了解問題并可靠尋找解決方案的關鍵,它通過分解為必要的步驟或子任務來回應使用者請求。任務分解的流行技術包括思維鍊(COT)和思維樹(TOT),分别可以歸類為單路徑推理和多路徑推理。

首先,我們介紹“思維鍊(COT)”的方法,它通過分步驟細分複雜問題為一系列更小、更簡單的任務,旨在通過增加計算的測試時間來處理問題。這不僅使得大型任務易于管理,而且幫助我們了解模型如何逐漸解決問題。

接下來,有研究者在此基礎上提出了“思維樹(TOT)”方法,通過在每個決策步驟探索多個可能的路徑,形成樹狀結構圖。這種方法允許采用不同的搜尋政策,如寬度優先或深度優先搜尋,并利用分類器來評估每個可能性的有效性。

“AI”科普丨一文帶你了解基于大模型的Agent

為了進行任務分解,可以通過不同的途徑實作,包括直接利用LLM進行簡單提示、采用針對特定任務的指令,或者結合人類的直接輸入。這些政策能夠根據不同的需求,靈活調整任務的解決方案。而另一種方法則是結合了經典規劃器的LLM(簡稱為LLM+P),該政策依賴外部規劃器來進行長期規劃。這種方法首先将問題轉化為PDDL格式,然後利用規劃器生成解決方案,最終将這一解決方案轉化回自然語言。這适用于需要詳細長期規劃的場景,盡管依賴特定領域的PDDL和規劃器,可能限制了其适用範圍。

“AI”科普丨一文帶你了解基于大模型的Agent

這些創新方法不僅展示了解決問題的多樣性和靈活性,也為我們提供了深入了解LLM如何處理複雜任務的新視角。

有回報規劃

上述規劃子產品不涉及任何回報,這使得實作解決複雜任務的長期規劃變得具有挑戰性。為了解決這一挑戰,可以利用一種機制,使模型能夠根據過去的行動和觀察反複思考和細化執行計劃。目标是糾正并改進過去的錯誤,這有助于提高最終結果的品質。這在複雜的現實世界環境和任務中尤其重要,其中試錯是完成任務的關鍵。這種反思或批評機制的兩種流行方法包括 ReAct 和 Reflexion。

“AI”科普丨一文帶你了解基于大模型的Agent

ReAct方法提出通過結合特定任務的離散動作與語言描述,實作了在大規模語言模型(LLM)中融合推理與執行的能力。離散動作允許LLM與其環境進行互動,如利用Wikipedia搜尋API,而語言描述部分則促進了LLM産生基于自然語言的推理路徑。這種政策不僅提高了LLM處理複雜問題的能力,還通過與外部環境的直接互動,增強了模型在真實世界應用中的适應性和靈活性。此外,基于自然語言的推理路徑增加了模型決策過程的可解釋性,使使用者能夠更好地了解和校驗模型行為。ReAct設計亦注重模型行動的透明度與控制性,旨在確定模型執行任務時的安全性與可靠性。是以,ReAct的開發為大規模語言模型的應用提供了新視角,其融合推理與執行的方法為解決複雜問題開辟了新途徑。

Reflexion是一個架構,旨在通過賦予智能體動态記憶和自我反思能力來提升其推理技巧。該方法采用标準的強化學習(RL)設定,其中獎勵模型提供簡單的二進制獎勵,行動空間遵循ReAct中的設定,即通過語言增強特定任務的行動空間,以實作複雜的推理步驟。每執行一次行動後,智能體會計算一個啟發式評估,并根據自我反思的結果,可選擇性地重置環境,以開始新的嘗試。啟發式函數用于确定軌迹何時效率低下或包含幻覺應當停止。效率低下的規劃指的是長時間未成功完成的軌迹。幻覺定義為遭遇一系列連續相同的行動,這些行動導緻在環境中觀察到相同的結果。

“AI”科普丨一文帶你了解基于大模型的Agent

記憶

記憶子產品是智能體存儲内部日志的關鍵組成部分,負責存儲過去的思考、行動、觀察以及與使用者的互動。它對于智能體的學習和決策過程至關重要。根據LLM智能體文獻,記憶可分為兩種主要類型:短期記憶和長期記憶,以及将這兩種記憶結合的混合記憶,旨在提高智能體的長期推理能力和經驗積累。

  • 短期記憶 - 關注于目前情境的上下文資訊,是短暫且有限的,通常通過上下文視窗限制的學習實作。
  • 長期記憶 - 儲存智能體的曆史行為和思考,通過外部向量存儲實作,以便快速檢索重要資訊。
  • 混合記憶 -通過整合短期和長期記憶,不僅優化了智能體對目前情境的了解,還加強了對過去經驗的利用,進而提高了其長期推理和經驗積累的能力。

在設計智能體的記憶子產品時,需要根據任務需求選擇合适的記憶格式,如自然語言、嵌入向量、資料庫或結構化清單等。這些不同的格式對智能體的資訊處理能力和任務執行效率有直接影響。

工具

工具使大型語言模型(LLM)能夠通過外部環境(例如Wikipedia搜尋API、代碼解釋器和數學引擎)來擷取資訊或完成子任務。這包括資料庫、知識庫和其他外部模型的使用,極大地擴充了LLM的能力。在我們最初的與汽車銷量相關的查詢中,通過代碼實作直覺的圖表是一個使用工具的例子,它執行代碼并生成使用者請求的必要圖表資訊。

LLM以不同方式利用工具:

  1. MRKL:是一種用于自主代理的架構。MRKL系統旨在包含一系列“專家”子產品,而通用的大型語言模型(LLM)作為路由器,将查詢引導至最合适的專家子產品。這些子產品既可以是大模型,也可以是符号的(例如數學電腦、貨币轉換器、天氣API)。他們以算術為測試案例,對LLM進行了調用電腦的微調實驗。實驗表明,解決口頭數學問題比解決明确陳述的數學問題更困難,因為大型語言模型(7B Jurassic1-large模型)未能可靠地提取出基本算術運算所需的正确參數。結果強調,當外部符号工具可以可靠地工作時,知道何時以及如何使用這些工具至關重要,這由LLM的能力決定。
  2. Toolformer:這個學術工作是訓練了一個用于決定何時調用哪些API、傳遞什麼參數以及如何最佳地将結果進行分析的大模型。這一過程通過微調的方法來訓練大模型,僅需要每個API幾個示例即可。該工作內建了一系列工具,包括電腦、問答系統、搜尋引擎、翻譯系統和月曆。Toolformer在多種下遊任務中實作了顯著提升的零次學習(zero-shot)性能,經常與更大的模型競争,而不犧牲其核心的語言模組化能力。
  3. 函數調用(Function Calling):這也是一種增強大型語言模型(LLM)工具使用能力的政策,它通過定義一系列工具API,并将這些API作為請求的一部分提供給模型,進而使模型能夠在處理文本任務時調用外部功能或服務。這種方法不僅擴充了LLM的功能,使其能夠處理超出其訓練資料範圍的任務,而且還提高了任務執行的準确性和效率。
  4. HuggingGPT:它是由大型語言模型(LLM)驅動的,設計用來自主處理一系列複雜的人工智能任務。HuggingGPT融合了LLM的能力和機器學習社群的資源,例如ChatGPT與Hugging Face的結合,使其能夠處理來自不同模态的輸入。具體來說,LLM在這裡扮演着大腦的角色,一方面根據使用者請求拆解任務,另一方面依據模型描述選擇适合的模型執行任務。通過執行這些模型并将結果整合到計劃的任務中,HuggingGPT能自主完成複雜的使用者請求。這個過程展示了從任務規劃到模型選擇,再到任務執行,最後是響應生成的完整流程。首先,HuggingGPT利用ChatGPT分析使用者的請求以了解他們的意圖,并将其分解為可能的解決方案。接下來,它會選擇Hugging Face上托管的、最适合執行這些任務的專家模型。每個標明的模型被調用并執行,其結果将回報給ChatGPT。最終,ChatGPT将所有模型的預測結果內建起來,為使用者生成響應。HuggingGPT的這種工作方式不僅擴充了傳統單一模式處理的能力,而且通過其智能的模型選擇和任務執行機制,在跨領域任務中提供了高效、準确的解決方案。
“AI”科普丨一文帶你了解基于大模型的Agent

這些政策和工具的結合不僅增強了LLM與外部環境的互動能力,也為處理更複雜、跨領域的任務提供了強大的支援,開啟了智能體能力的新篇章。

Agent的挑戰

建構基于大型語言模型(LLM)的智能體是一個新興領域,面臨着衆多挑戰和限制。以下是幾個主要的挑戰及可能的解決方案:

角色适應性問題

智能體需要在特定領域内有效工作,對難以表征或遷移的角色,可以通過針對性地微調LLM來提高性能。這包括代表非常見角色或心理特征的能力提升。

上下文長度限制

有限的上下文長度限制了LLM的能力,盡管向量存儲和檢索提供了通路更大知識庫的可能性。系統設計需要創新,以在有限的通信帶寬内有效運作。

提示的魯棒性

智能體的提示設計需要足夠魯棒,以防微小的變化導緻可靠性問題。可能的解決方案包括自動優化調整提示或使用LLM自動生成提示。

知識邊界的控制

控制LLM的内部知識,避免引入偏見或使用使用者不知道的知識,是一個挑戰。這要求智能體在處理資訊時更加透明和可控。

效率和成本問題

LLM處理大量請求時的效率和成本是重要考量因素。優化 推理速度 和 成本效率 是提升多智能體系統性能的關鍵。

總的來說,基于LLM的智能體建構是一個複雜且多面的挑戰,需要在多個方面進行創新和優化。持續的研究和技術發展對于克服這些挑戰至關重要。

繼續閱讀