下一代語言模型范式LAM崛起!AutoGPT模式席卷LLM,三大組件全面綜述:規劃、記憶和工具
由ChatGPT掀起的這波AI浪潮已經將我們帶入了人工智能時代,語言模型已經成為日常生活中不可或缺的工具。
但目前的語言模型只能響應用戶的查詢指令,實現一些生成任務,比如寫故事、生成代碼等。
而以AutoGPT, GPT-Engineer和BabyAGI等項目為代表的大型動作模型(Large-Action Models,LAM)則將語言模型作為智能體的核心大腦,可以將復雜任務分解,并在每個子步驟實現自主決策,無需用戶參與即可解決問題。
圖片
LAM的崛起,也標志著語言模型的研發正在走向新階段,本文將對LAM開發中涉及到的技術進行綜述,具體包括三個關鍵組件,即規劃、記憶和工具。
Planning 規劃
一項復雜的任務通常包括多個子步驟,智能體需要提前將任務分解,并進行規劃。
任務分解
思維鏈(Chain of Thought, CoT)已然成為「誘導模型推理」的標準提示技術,可以增強解決復雜任務時的模型性能。
圖片
論文鏈接:https://arxiv.org/pdf/2201.11903.pdf
通過「Think step by step」,模型可以利用更多測試時計算(test-time computation)將任務分解為更小、更簡單的子步驟,并能夠解釋模型的思維過程。
思想之樹(Tree of Thoughts)在每個子步驟中探索多種推理可能性來擴展CoT。
圖片
論文鏈接:https://arxiv.org/abs/2305.10601
首先將問題分解為多個思維步,并在每個步驟內生成多個思路,從而創建出一個樹結構解決方案;搜索過程可以是BFS(廣度優先搜索)或DFS(深度優先搜索),其中每個狀態由分類器(經由提示)或多數投票來評估。
任務分解可以通過簡單的提示,如「Steps for XYZ.\n1.」,「What are the subgoals for achieving XYZ」 ;或是使用任務相關的指令,如「Write a story outline」可以用于寫小說;也可以由人輸入。
自我反思 Self Reflection
自我反思可以讓自主智能體改進過去的行動決策、糾正之前的錯誤來迭代改進,在可以試錯的現實任務中非常有用。
ReAct通過將動作空間擴展為任務相關的離散動作和語言空間的組合,在LLM中集成了推理和動作,其中動作使得LLM能夠與環境交互(例如使用維基百科搜索API),而語言空間可以讓LLM以自然語言的方式生成推理軌跡。
圖片
論文鏈接:https://arxiv.org/pdf/2210.03629.pdf
ReAct提示模板包含了LLM思考的明確步驟,大致格式為:
圖片
在知識密集型任務和決策任務的實驗中,ReAct 比只用Act(移除Thought)的基線模型效果更好。
圖片
Memory 記憶
記憶類型
記憶可以被定義為用于獲取、存儲、保留和后續檢索信息的過程,人類大腦中主要有三種類型的記憶。
圖片
1. 感官記憶(Sensory memory)
這種記憶處于記憶的最早階段,提供了在原始刺激結束后保留感官信息(視覺,聽覺等)印象的能力,通常只持續幾秒鐘。
感官記憶的子類別包括圖標記憶(視覺)、回聲記憶(聽覺)和觸覺記憶(觸覺)。
2. 短時記憶(STM)或工作記憶(Working Memory)
存儲了當下能意識到的所有信息,以及執行復雜的認知任務(如學習和推理)所需的信息,大概可以存儲7件事,持續20-30秒。
3. 長期記憶(LTM)
顧名思義,LTM可以將信息存儲相當長的時間,范圍從幾天到幾十年不等,具有基本上無限的存儲容量。
LTM有兩種亞型:
1)顯式/陳述性記憶,即對事實和事件的記憶,指那些可以有意識地回憶起來的記憶,包括情景記憶(事件和經驗)和語義記憶(事實和概念)。
2)隱式/程序性記憶,這種類型的記憶是無意識的,包括自動執行的技能和例程,比如騎自行車或在鍵盤上打字。
對應到語言模型的概念上:
1. 作為原始輸入(包括文本、圖像或其他形式)的學習嵌入表征的感官記憶;
2. 短期記憶就是上下文學習(in-context learning),非常短且影響范圍有限,受到Transformer的上下文窗口長度的限制。
3. 長期記憶作為智能體在查詢時可用的外部向量存儲,可通過快速檢索訪問。
最大內積搜索Maximum Inner Product Search (MIPS)
外部記憶可以緩解有限注意力span的限制,常用的操作是將信息嵌入表征保存到支持快速最大內積搜索(MIPS)的向量存儲數據庫中。
為了優化檢索速度,一般都會選擇近似最近鄰(ANN,approximate nearest neighbors)算法返回前k個最近鄰節點,犧牲一點準確性以換取巨大的速度提升。
圖片
常用的ANN算法包括LSH(Locality-Sensitive Hashing),ANNOY, HNSW, FAISS, ScaNN
Tool Use工具使用
能使用復雜工具是人類高智力的體現,我們可以創造、修改和利用外部物體來完成超出身體和認知極限的事情,同樣,為LLM配備外部工具也可以顯著擴展模型功能。
一只海獺漂浮在水中時,用巖石劈開貝殼的圖片。雖然其他一些動物可以使用工具,但其復雜性無法與人類相比。
MRKL(模塊化推理、知識和語言),是一個神經符號架構的自主智能體,包含一組「專家」模塊和一個用作路由器(router)的通用語言模型,以路由查詢到最合適的專家模塊。
圖片
論文鏈接:https://arxiv.org/pdf/2205.00445.pdf
每個模塊可以神經網絡,也可以是符號模型,例如數學計算器、貨幣轉換器、天氣API
研究人員做了一個微調語言模型以調用計算器的實驗,使用算術作為測試用例,結果表明,解決verbal數學問題比解決明確陳述的數學問題更難,因為LLM(7B Jurassic 1-large 模型)不能可靠地為基本算術提取正確的參數,也凸顯了符號工具的重要性,以及了解何時利用何種工具的重要性。
TALM(工具增強語言模型)和Toolformer都是微調語言模型以學習使用外部工具API
圖片
論文鏈接:https://arxiv.org/pdf/2302.04761.pdf
ChatGPT插件和OpenAI API函數調用也是增強語言模型使用工具能力的例子,其中工具API的集合可以由其他開發人員提供(如插件)或自定義(如函數調用)。
API-Bank是用于評估工具增強型LLM性能的基準,包含53個常用的API工具,一個完整的工具增強的LLM工作流,以及264個標注對話,用到568次API調用。
圖片
論文鏈接:https://arxiv.org/pdf/2304.08244.pdf
API的選擇非常多樣化,包括搜索引擎、計算器、日歷查詢、智能家居控制、日程管理、健康數據管理、賬戶認證工作流等。
由于API數量眾多,LLM首先可以訪問API搜索引擎,找到合適的API調用,然后使用相應的文檔進行調用。
圖片
在API-Bank工作流程中,LLM需要做出三次決策,每一步都可以評估決策的準確性:
1. 是否需要API調用;
2. 確定要調用的正確API:如果不夠好,則LLM需要迭代地修改API輸入(例如決定搜索引擎API的搜索關鍵字);
3. 基于API結果的響應:如果結果不滿意,則模型可以選擇改善并再次調用。
該基準可以在三個層次上評估智能體的工具使用能力。
層次1:評估調用API的能力
給定API的描述,模型需要確定是否調用給定的API,正確調用并正確響應API返回;
層次2:檢查檢索API的能力
模型需要搜索可能解決用戶需求的API,并通過閱讀文檔學習如何使用。
層次3:評估規劃API的能力,而非檢索和調用
如果用戶請求不明確(例如安排小組會議、預訂旅行的航班/酒店/餐廳),模型可能不得不進行多次API調用來解決。
LAM的應用
科學發現
ChemCrow系統內的語言模型通過13個專家設計的工具進行能力增強,可以完成跨有機合成、藥物發現和材料設計的任務。
圖片
論文鏈接:https://arxiv.org/abs/2304.05376
在LangChain中實現的工作流程包括了在ReAct和MRKL中描述的機制,并將CoT推理與任務相關的工具相結合:
語言模型先提供一個工具名稱列表、用途描述以及有關預期輸入/輸出的詳細信息;然后指示模型在必要時使用提供的工具回答用戶給定的提示,指令要求模型遵循ReAct格式,即Thought, Action, Action Input, Observation
實驗結果來看,用語言模型評估的話,GPT-4和ChemCrow的性能幾乎相當;但當人類專家評估時,在特定解決方案的完成和化學正確性進行的實驗結果顯示,ChemCrow的性能遠遠超過GPT-4
實驗結果表明,使用LLM來評估需要深入專業知識領域的性能存在問題,可能會導致LLM不知道內在缺陷,無法很好地判斷任務結果正確性。
另一篇論文研究了語言模型處理復雜科學實驗的自主設計、規劃和性能,可以使用工具瀏覽互聯網、閱讀文檔、執行代碼、調用機器人實驗API以及利用其他語言模型。
圖片
論文鏈接:https://arxiv.org/abs/2304.05332
當用戶請求「develop a novel anticancer drug」時,模型會返回了以下推理步驟:
1. 詢問抗癌藥物發現的當前趨勢;
2. 選擇目標;
3. 要求一種靶向這些化合物的scaffold;
4. 一旦找出化合物,模型再嘗試合成。
文中還討論了風險,特別是非法藥物和生物武器,研究人員開發了一套包含已知化學武器制劑清單的測試集,并要求合成,11項請求中有4項(36%)被接受;在這7個被拒絕的樣本中,5例發生在網絡搜索之后,2例僅基于提示詞就拒絕。
下一步工作
雖然語言模型可以作為復雜的系統的大腦,并做出相應行為,但目前也存在一些限制和不足:
1. 有限上下文長度
上下文容量限制了歷史信息、詳細指令、API調用上下文和回復,下游系統的設計不得不受限于有限的通信帶寬,而像自我反思這樣從過去錯誤中學習的機制可以從更長的上下文窗口中受益。
雖然向量存儲和檢索可以提供對更大知識庫的訪問,但其表征能力不如完全注意力機制那么強。
2. 長期規劃和任務分解方面的挑戰
在較長的對話歷史中進行規劃,并有效地探索解決方案空間仍然具有挑戰性;語言模型在面對意外錯誤時很難調整計劃,與從試驗和錯誤中學習的人類相比,穩健性較差。
3. 自然語言接口的可靠性
目前的智能體系統依賴于自然語言作為語言模型和外部組件(如記憶和工具)之間的接口,不過模型輸出并不一定可靠,因為語言模型可能會產生格式錯誤,偶爾會表現出錯誤、拒絕遵循指示等問題,所以大部分智能體演示代碼目前都主要關注模型輸出上。
參考資料: