根據(jù)AI App的智能化能力和解決問題的能力進行等級劃分及整體描述,我們可以近似得到以上的能力劃分表。隨著智能化的程度遞增,App能解決的問題范圍也逐漸在擴大。

LLM的過渡狀態(tài):

操作工具?建議者?執(zhí)行者?控制器(決策者)?高級智能體

角色的變化背后是智能屬性的增強,當然也是AI能力類腦發(fā)展的一個趨勢。如果這樣一個發(fā)展趨勢是成立的,那么已經(jīng)跑通了PMF的微軟Copilot已經(jīng)算是L3的頂級應用了。他的Moat本質上在于場景和深耕多年的B端資源。

當場景的價值弱化,那么工程深度就需要增加“厚度”或技術增強來建立起整體的應用,以保證此類AI應用的Moat足夠深。

在AutoGPT、BabyGPT和GPT-Engineer的demo爆火之后,以LLM作為核心控制器來構建L4的Agent成為一個很酷的概念。應用場景的想象空間被打開,我們發(fā)現(xiàn)LLM的潛力不僅限于生成寫得很好的副本、故事、文章和程序,它還可以作為一種強大的工具解決通用問題。Agent System Overview—@Lilian Weng

Weng, Lilian. (Jun 2023). “LLM-powered Autonomous Agents”. 

Lil’Log. https://lilianweng.github.io/posts/2023-06-23-agent/.

Autonomous Agent系統(tǒng)由LLM驅動,LLM作為代理的大腦,輔以幾個關鍵的組件。

Fig.2. 由LLM驅動的Autonomouse Agent 系統(tǒng)

a16z提出的LLM App的新型架構,與論文中的介紹也是異曲同工。究其本質,是生物性的發(fā)展過程和整體類比的結果,將LLM進行類腦比較,定位為整體中樞,進行分工合作。七月初流出的GPT4的設計也有類似的影子,MOE的存在。

第一部分:Planning

一項復雜任務通常會包含很多步驟,Agent需要了解這些步驟是什么并提前規(guī)劃。

任務拆解:

Chain of thought (CoT; Wei et al. 2022) 已經(jīng)成為一種標準的Prompting技術,用于提高模型在復雜任務中的性能。模型被要求“think step by step”利用更多的時間進行計算,將艱難的任務分解成更小,更簡單的步驟。CoT將大型任務轉化為多個可管理的任務,并對模型的思維過程進行了闡釋。

Tree of Thoughts  (Yao et al. 2023) 進一步擴展CoT,在每一步都探索多種推理的可能性。它首先將問題分解為多個思考步驟,并在每個步驟中生成多個思考,從而創(chuàng)造一個樹形結構。搜索過程可以是BFS(廣度優(yōu)先搜索)或DFS(深度優(yōu)先搜索),每個狀態(tài)由分類器(通過一個prompt)或少數(shù)服從多數(shù)的投票原則來決定。

任務分解可通過以下幾種方式實現(xiàn):

  1. 給LLM一個簡單的提示詞“Steps for XYZ.\n1.”,“What are the subgoals for achieving XYZ?”
  2. 使用針對具體任務的指令,例如對一個寫小說的任務先給出“Write a story outline.”指令
  3. 使用者直接輸入

Graph of Thoughts(Besta et al. 2023)同時支持多鏈、樹形以及任意圖形結構的Prompt方案,支持各種基于圖形的思考轉換,如聚合、回溯、循環(huán)等,這在CoT和ToT中是不可表達的。將復雜問題建模為操作圖(Graph of Operations,GoO),以LLM作為引擎自動執(zhí)行,從而提供解決復雜問題的能力。某種程度上,GoT囊括了單線條的CoT和多分枝的ToT。

Fig.4. GoT與其他Prompt策略的比較

無論是CoT還是ToT,本質上是通過Prompt的精心設計,激發(fā)出模型原有的Metacognition
只是如何通過某條神經(jīng)元的線索能更加精準的調動出大腦中最擅長Planning的部分

另一種截然不同的方式,LLM+P?(Liu et al. 2023),通過借助一個外部的經(jīng)典Planner來進行一個更加長序列的整體規(guī)劃。這種方法利用規(guī)劃域定義語言(Planning Domain Definition Language, PDDL)作為中間接口來描述規(guī)劃問題。整個使用過程,首先LLM將問題翻譯成“問題PDDL”,接著請求經(jīng)典Planner根據(jù)現(xiàn)有的“領域PDDL”生成一個PDDL Plan,最后將PDDL計劃翻譯回自然語言(LLM做的)。根本上講,Planning Step是外包給外部工具的,當然也有一個前提:需要有特定領域的PDDL和合適的Planner。

Fig.5. LLM+P 利用大型語言模型 (LLM) 生成給定問題的 PDDL 描述,然后利用經(jīng)典規(guī)劃器尋找最佳計劃,然后再次使用 LLM 將原始計劃翻譯回自然語言。

模型自我反省:

Self-reflection是非常重要的一環(huán),它允許Agent通過完善過去的行動決策和糾正以前的錯誤來不斷改進。現(xiàn)實世界中的任務中,試錯仍然是無法避免的,自我反思在其中發(fā)揮著至關重要的作用。

ReAct?(Yao et al. 2023)即Reson+Act通過將Action Space擴展為特定任務的離散動作和語言空間的組合,在LLM內部整合了推理(Reasoning)和行動(Action)。前者使LLM能夠與環(huán)境交互(例如,使用Wikipedia Search的 API),后者通過提示詞使得LLM用自然語言生成整體的推理過程。

ReAct提示詞模板包含了提供LLM思考的明確步驟,其大致格式為:

Thought: ...
Action: ...
Observation: ...

Fig.6. 知識密集型任務(如HotpotQA、FEVER)和決策型任務(如AlfWorld Env、WebShop)的推理軌跡示例

在知識密集型任務和決策任務的兩個實驗中,ReAct的表現(xiàn)比去掉Thought...的單一Act...方式更加優(yōu)異。

Reflexion?(Shinn & Labash 2023)是一個讓Agent具備動態(tài)記憶和自我反思能力以提高推理能力的框架。Reflexion采用標準的RL設置,其中獎勵模型提供簡單的二進制獎勵,而Action Space則采用ReAct中的設置,即在特定任務的行動空間中加入語言,以實現(xiàn)復雜的推理步驟。在每一個Action?at之后,Agent會計算一個啟發(fā)式函數(shù)ht,并根據(jù)自我反思的結果決定是否重置環(huán)境以開始一個新的循環(huán)

Fig. 7. Reflexion的架構示意圖

啟發(fā)式函數(shù)判斷何時整個循環(huán)軌跡是低效的或者何時因為包含了幻覺需要停止。低效規(guī)劃指的是耗時過長卻未成功的循環(huán)軌跡。幻覺是指在環(huán)境中遇到一連串相同的行動,而這些行動會導致相同的觀察結果。

自我反思過程通過給LLM一個two-shot例子創(chuàng)造,每個例子都是一對(失敗的軌跡、在計劃中指導進一步變化的理想反思)。接著,reflections將會被添加到Agent的工作記憶中作為查詢LLM的上下文,最多三個。

Fig. 8. AlfWorld Env 和 HotpotQA 實驗。在 AlfWorld 中,幻覺是比低效規(guī)劃更常見失敗因素。

Chain of Hindsight (CoH; Liu et al. 2023) 通過向模型明確展示一系列過去的輸出結果,鼓勵模型改進自己的輸出結果。人類的反饋數(shù)據(jù)收集為,其中是提示詞,每個是一個模型生成的文本,表示人類對的打分,是相應的人類對于過去輸出結果的反饋。假設反饋源按照獎勵值來進行排序,。這一過程本質上是監(jiān)督微調,在這個過程中數(shù)據(jù)是一個序列,形式如下,其中。這個模型被微調以前序列內容為條件去預測,這樣模型就能夠根據(jù)反饋序列進行自我反思,以產生更好的輸出。在測試的時候,模型可以選擇接受人類注釋者的多輪指導。

為了避免過擬合,CoH增加了一個正則化項,來最大化預訓練數(shù)據(jù)集的對數(shù)似然概率。我為了避免捷徑化和復制(因為反饋序列中有許多常見單詞),在訓練過程中他們隨機屏蔽了0%-5%的過去的token。

他們在實驗中的訓練數(shù)據(jù)集是 WebGPT comparisons, summarization from human feedback和 human preference dataset。

Fig. 9. 在使用 CoH 進行微調后,模型可以按照指令依次產生漸進改進的輸出結果。

CoH的理念是結合實際情況,展示連續(xù)改進產出的歷史結果,并訓練模型能夠順應趨勢,產生更好的輸出結果。Algorithm Distillation?(AD; Laskin et al. 2023)將同樣的理念應用于強化學習任務中的跨周期軌跡,算法被封裝在一個長歷史條件策略中。考慮到Agent會與環(huán)境多次交互,并且每個周期內Agent都會變得更好,AD將這些學習歷史連接起來并將其喂到模型里。因此,我們應該期待下一次預測的行動會比之前的試驗取得更好的結果。目標是AD學習RL算法的過程,而不是訓練特定任務的策略本身。

Fig. 10.  算法蒸餾 (AD) 工作原理示意圖。

這篇論文假設,任何能生成一組學習歷史記錄的算法,都可以通過對action克隆提煉出一個神經(jīng)網(wǎng)絡。歷史數(shù)據(jù)由一組源策略生成,每個策略都針對特定任務進行過訓練。在訓練階段,每次運行RL時,都會隨機抽取一個任務。并使用多集歷史數(shù)據(jù)的子序列進行訓練從而使學習到的策略與任務無關。

實際上,模型的上下文窗口長度是有限的,所以每一小節(jié)應該足夠短,以構建更多的歷史小節(jié)。需要2-4個小節(jié)的多節(jié)上下文來學習一個接近最優(yōu)的上下文內強化學習算法。上下文內的強化學習的出現(xiàn)需要足夠長的上下文內容。

與其他三種基線相比較,a)ED(專家提煉,用專家軌跡代替學習歷史的行為克隆),b)源策略(用于生成UCB的蒸餾軌跡),c)(Duan et al. 2017;用作上限,但是他需要在線RL)AD展示了在上下文中的強化學習,其性能接近RL^2,盡管只使用了離線強化學習,并且比其他基線學習得更快。當基于源策略的部分訓練歷史進行調節(jié)時,AD的改進速度也比ED基線快得多。

Fig. 11. 在需要記憶和探索的環(huán)境中,對 AD、ED、源策略和 RL^2 進行比較。只分配二進制獎勵。在 “黑暗 “環(huán)境中使用 A3C 對源策略進行訓練,在 “水迷宮 “環(huán)境中使用 DQN 對源策略進行訓練。

只有更好的Plan,沒有最好的Plan
一邊從歷史長河中學習,一邊向前思考向外求索

第二部分:Memory

記憶類型:

記憶可以定義為用于獲取、存儲、保留和隨后檢索信息的過程。人腦中有多種類型的記憶。

  1. 感官記憶:這是記憶的最早期階段,在接受了原始刺激后保留的感官信息(視覺、聽覺等)印象的能力。感官記憶通常只能持續(xù)幾秒鐘。其中包含圖標記憶(視覺)、回聲記憶(聽覺)和觸碰記憶(觸覺)。
  2. 短時記憶(STM)或工作記憶:它存儲了我們當前意識到的信息,以及執(zhí)行復雜認知任務(如學習和推理)所需的信息。短期記憶被認為有大約7個項目的容量,并能夠持續(xù)20-30秒。
  3. 長時記憶(LTM):長時記憶可以將信息存儲很長時間,從幾天到幾十年不等,存儲容量基本上是無限的。長時記憶分為兩種:
  4. 顯性/陳述性記憶:對事實和事件的記憶,指那些可以有意識地回憶起的記憶,包括外顯記憶(事件和經(jīng)歷)和語義記憶(事實和概括)。
  5. 隱形/程序性記憶:這種記憶是無意識的,設計自動執(zhí)行的技能和例行程序,如騎車、在鍵盤上打字。

Fig. 12. 人類記憶的分類

大致的將這些記憶內容映射到LLM中

最大內部產品搜索(Maximum Inner Product Search,MIPS)

通過使用外部存儲器可以緩解關注范圍有限的限制。一種標準的做法是將信息的嵌入表示法保存到向量數(shù)據(jù)庫中,該數(shù)據(jù)庫能夠支持快速的最大內積搜索(MIPS)。為了優(yōu)化檢索速度,常見的選擇是近似相鄰(Approximate Nearest Neighbors,ANN)算法,返回近似的top k個近鄰,用損失少量的精度來換取速度的巨大提升。

幾種常見的ANN算法選擇進行快速MIPS

Fig. 13. MIPS 算法的比較,以召回率@10 為衡量標準。(Image source: Google Blog, 2020)

在 ann-benchmarks.com 上查看更多 MIPS 算法和性能比較。

記憶的獲取在某種程度上會提高Planning整體質量,但同時也會拉長整體服務的時延,因此如何快速且精準的捕捉相關的記憶至關重要。Vector Search和Attention Mechanism之間的平衡也是速度與準確性之間的平衡
當然都是因為沒有無限的上下文學習

第三部分:Tool Use

使用工具是人類的一個顯著特點,我們創(chuàng)造、修改和利用外部物體來完成超越我們身體和認知極限的事情。為LLM配備外部工具可以大大擴展模型的功能。

Fig. 14.海豹使用工具工具的分類:

Fig. 15. 工具的四種分類

確定性工具-API工具-專家模型-物理世界工具

讓語言模型只做語言模型該做的事兒,通過文字生成內容傳遞邏輯。

借助各式各樣的工具完成邏輯的執(zhí)行

使用工具的方法:

MRKL?(Karpas et al. 2022),是 “模塊化推理、知識和語言 “(Modular Reasoning,Knowledge and Language)的簡稱,是一種用于自主代理的神經(jīng)符號架構。建議 MRKL 系統(tǒng)包含一系列 “專家 “模塊,而通用 LLM 則充當路由器,將查詢路由到最合適的專家模塊。這些模塊可以是神經(jīng)模塊(如深度學習模型),也可以是符號模塊(如數(shù)學計算器、貨幣轉換器、天氣 API)。

他們用算術作為測試案例,做了一個微調 LLM 以調用計算器的實驗。他們的實驗表明,由于 LLM(7B  Jurassic1-large 模型)無法可靠地提取基本算術的正確論據(jù),因此解決口算數(shù)學問題比解決明確表述的數(shù)學問題更難。這些結果突出表明,當外部符號工具能夠可靠地發(fā)揮作用時,了解何時以及如何使用這些工具至關重要,這取決于 LLM 的能力。

TALM?(工具增強型語言模型Tool Augmented Language Models; Parisi et al. 2022)和Toolformer?(Schick et al. 2023)都做了微調LM,學習使用外部工具。數(shù)據(jù)集的擴展與否取決于新添加的API調用注釋能否提高模型輸出的質量。更多詳情,參閱Prompt Engineering的 “External APIs” section。

ChatGPT Plugins 和 OpenAI API 函數(shù)調用就是增強了工具使用能力的 LLM 在實踐中發(fā)揮作用的良好范例。工具應用程序接口集合可以由其他開發(fā)人員提供(如插件)或自行定義(如函數(shù)調用)。

HuggingGPT?(Shen et al. 2023)是一個使用 ChatGPT 作為任務規(guī)劃器的框架,用于根據(jù)模型描述選擇 HuggingFace 平臺中可用的模型,并根據(jù)執(zhí)行結果總結響應。

Fig. 16. HuggingGPT 工作原理示意圖

該系統(tǒng)包括4個階段:

(1)任務規(guī)劃(Task planning):LLM 充當大腦,將用戶請求解析為多個任務。每個任務都有四個相關屬性:任務類型、ID、依賴關系和參數(shù)。他們使用少量的示例來指導 LLM 進行任務解析和規(guī)劃。

(2)模型選擇(Model selection):LLM 將任務分配給專家模型,其中的要求是一個多選題。LLM 會收到一份可供選擇的模型列表。由于上下文長度有限,因此需要進行基于任務類型的過濾。

(3)任務執(zhí)行(Task execution):專家模型執(zhí)行特定任務并記錄結果。

(4)返回結果(Response generation):LLM 接收執(zhí)行結果,并向用戶提供匯總結果。

如果要將 HuggingGPT 投入實際應用,需要解決幾個難題:

  1. 需要提高效率,因為 LLM 推理輪和與其他模型的交互都會減慢進程;
  2. 它依賴于較長的上下文窗口來交流復雜的任務內容;
  3. 提高 LLM 輸出和外部模型服務的穩(wěn)定性。

模型評估:

API-Bank?(Li et al. 2023) 是評估工具增強型LLMs性能的基準。它包含了53個常用的API工具,一個完整的工具增強型LLM的工作流,以及264個注釋對話其中涉及了568個API的調用。可供選擇的 API 種類繁多,包括搜索引擎、計算器、日歷查詢、智能家居控制、日程管理、健康數(shù)據(jù)管理、賬戶認證工作流程等。由于有大量的 API,LLM 首先可以訪問 API 搜索引擎,找到要調用的正確 API,然后使用相應的文檔進行調用。

Fig. 17. LLM 如何在 API-Bank 中調用 API 的偽代碼

在 API-Bank 工作流程中,LLM 需要做出幾個決定,我們可以在每個步驟中評估該決定的準確性。

決策包括:

  1. 是否需要調用 API
  2. 確定要調用的正確 API:如果不夠好,LLM 需要反復修改 API 輸入(例如,決定搜索引擎 API 的搜索關鍵詞)。
  3. 根據(jù) API 結果做出響應:如果結果不滿意,模型可以選擇改進并再次調用。

該基準從三個層面對代理的工具使用能力進行評估:

AgentBench(Liu et al. 2023)是一個多維度且不斷發(fā)展的Agent Benchmark,目前選擇8個不同的場景(操作系統(tǒng)、數(shù)據(jù)庫、知識圖譜、數(shù)字卡牌游戲、側向思維謎題、家務管理、網(wǎng)絡購物和網(wǎng)頁瀏覽),用于評估LLM作為Agent在多輪開放式生成環(huán)境中的推理和決策能力。系統(tǒng)性測試了25個LLM在八個環(huán)境中的表現(xiàn),從整體得分來看GPT4遙遙領先。在數(shù)據(jù)庫,卡牌游戲,知識圖譜等復雜任務處理場景中也展現(xiàn)出潛力。

Fig. 18. ?不同LLM在AgentBench中的概覽,雖然LLMs表現(xiàn)出了在LLM-as-Agent方向的能力,但是開源模型和閉源商業(yè)模型的差距還是巨大

案例研究:

Fig. 19. 基于LLM的Automous Agent 發(fā)展趨勢

ChatGPT爆火以來Agent相關領域的研究蓬勃發(fā)展,目前Agent方向的相關論文已累計高達160篇。其中的Agent根據(jù)其各自的能力共分為四類:

科學研究Agent:

ChemCrow (Bran et al. 2023)是一個針對特定領域的例子,其中LLM使用13種專家設計工具來完成有機合成,藥物發(fā)現(xiàn)和材料設計等任務。這個工作流在Langchain中實施,使用了ReAct和MRKL中之前描述的內容,并將CoT推理與任務相關的工具相結合:

一個有趣的現(xiàn)象是,雖然基于 LLM 的評估認為 GPT-4 和 ChemCrow 的性能幾乎相當,但由專家對解決方案的完成度和化學正確性進行的人工評估顯示,ChemCrow 的性能遠遠超過 GPT-4。這表明,在需要深厚專業(yè)知識的領域中,使用 LLM 評估自身性能存在潛在問題。專業(yè)知識的缺乏可能導致 LLM 不知道自己的缺陷,從而無法很好地判斷任務結果的正確性。

Boiko et al. (2023)還研究了用于科學發(fā)現(xiàn)的 LLM-empowered Agent,以處理復雜科學實驗的自主設計、規(guī)劃和執(zhí)行。這種代理可以使用工具瀏覽互聯(lián)網(wǎng)、閱讀文檔、執(zhí)行代碼、調用機器人實驗 API 并利用其他 LLM。

例如,當要求 “開發(fā)一種新型抗癌藥物 “時,模型得出了以下推理步驟:

1、詢問當前抗癌藥物研發(fā)的趨勢;

2、選擇一個靶點;

3、要求提供針對這些化合物的支架;

4、確定化合物后,模型嘗試進行合成。

這篇文章還討論了各種風險,特別是非法藥物和生物武器的風險。他們開發(fā)了一個測試集包含了一系列已知的化學武器制劑列表,并要求Agent合成這些制劑。在11項請求中,有4項(36%)被接受以獲得合成解決方案,Agent試圖查閱文件以執(zhí)行程序。被拒絕的7個例子中,5個是在網(wǎng)絡搜索后被拒絕的,2個是在prompt提交后就直接拒絕的。

生成式Agent模擬:

Generative Agents (Park, et al. 2023)是一個超級有趣的實驗,受《模擬人生》的啟發(fā),25 個虛擬角色在沙盒環(huán)境中生活和互動,每個角色都由一個 LLM 驅動的代理控制。生成代理為互動應用創(chuàng)建了可信的人類行為模擬。

生成式代理的設計將 LLM 與記憶、規(guī)劃和反思機制結合起來,使代理的行為以過去的經(jīng)驗為條件,并與其他代理互動。

Fig. 20. 生成式Agent的框架

這種有趣的模擬產生了新的社會行為,如信息擴散、關系記憶(如兩個Agent繼續(xù)對話主題)和社會事件協(xié)調(如舉辦聚會并邀請許多其他人)。

Chance 機會

Fig. 21. LLM Agent的應用場景(左)和評估策略(右)。

Challenge 挑戰(zhàn)

在了解了構建以 LLM 為中心的Agent的主要想法和Demo之后,也開始發(fā)現(xiàn)一些共同的局限性:

本文章轉載微信公眾號@知識工場

上一篇:

手把手教你用LangChain實現(xiàn)大模型Agent

下一篇:

如何用LLM和自有知識庫搭建智能agent?
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數(shù)據(jù)驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費