解密Prompt系列12. LLM Agent零微調正規化 ReAct & Self Ask

2023-07-28 21:00:17

前三章我們分別介紹了思維鏈的使用,原理和在小模型上的使用。這一章我們正式進入應用層面,聊聊如何把思維鏈和工具使用結合得到人工智慧代理。

要回答我們為什麼需要AI代理?代理可以解決哪些問題?可以有以下兩個視角

首先是我們賦能模型,如果說LLM是大腦,那Agent提供了手腳和感官

  1. 感官:獲取真實世界的資訊,包括實時資訊像天氣情況,金融市場,交通狀況;包括私有資訊例如使用者個人資料;包括多模態資訊像聲音和影象
  2. 手腳:獲得和真實世界互動的能力,例如執行python指令碼,呼叫搜尋引擎,預定機票酒店。

其次是模型賦能我們,Agent加持的大模型,作為更優的資料和任務中介/代理,賦予了我們和任意資料型別互動的能力,大模型正在重構資料和資訊的處理方式。從之前的結構化資料為主向更多的非結構化資料轉變。

這裡只展示了一個goodcase,因為badcase太多啦哈哈~SelfAsk結果不好的兩個主要原因有

  • 搜尋沒有返回有效結果:當前搜尋引擎的返回結果並非為大模型回答設計,而還是為傳統搜尋引擎設計,返回結果不可用可能是抽取的文章摘要(snippet)不合理,或者排序邏輯返回的Top1答案不合適,再或者回答的時效性錯誤等等,這裡存在很大的優化空間
  • 模型拆解問題有誤:SelfAsk當前主要針對組合類問題,如果你的問題拆解方式不同,需要對以上few-shot-prompt進行調整,或者進一步通過COT finetune來注入問題拆解的方式

Self Ask是一類最簡單的工具呼叫模板,只支援單一搜尋工具的使用,不支援工具選擇。下面我們看下支援多種工具呼叫的ReAct正規化~

ReAct

原理

ReAct文如其名,模型推理分成了兩個部分,Reason和Action。Reason生成分析步驟,Action生成工具呼叫請求,二者交替進行直到得到最終的結果。和SelfAsk對比,ReAct進一步把推理和工具呼叫進行了解耦, 在Self Ask中,自我提問既是推理步驟也是搜尋工具的請求query,而在ReAct中工具呼叫的請求在推理步驟之後,這樣可以更好的支援搜尋以外的其他工具。

ReAct在檔案問答上給出的few-shot-cot推理模板如下

繼續問:昨日A股市場漲幅最高的板塊成交量如何?因為沒有few-shot拆解問題的指引,只有以上zero-shot去描述工具選擇,因此模型並沒有正確拆解問題,不過正確選擇了搜尋工具。

當我們提問wolfram可以解決的問題領域,例如求解幾何面積時,大模型會選擇呼叫Wolfram來解決數學問題。

  • ReActDocstoreAgent

適用於檔案問答的固定推理模板+固定工具使用,論文定義了兩種工具Search檢索,和Lookup在檔案中查詢關鍵詞所在的句子。DocStore因為推理模板固定,可用的場景比較有限,我們就做不測試了,大家可以直接去看官網給出的Demo。

React雖然本身是可以不經過模型指令微調直接使用的,但論文中也提出指令微調後效果會有提升,不過微調的方案我們會單獨放一章來說。

總結

看完了SelfAsk和React的實現,不難發現二者存在一些侷限性

  • 更適合簡單的工具呼叫:這裡的簡單是指工具的輸入和上文的文字語意比較符合,工具輸入比較「自然語言」風格例如搜尋。高度結構化和符號化的工具輸入,使用Prompt實現,準確率比較有限。
  • 更適合少量的工具組合:受限於Prompt上文的長度,不能把幾十個工具prompt全塞進去,因此更適合少量的工具組合一般是3~5個以內
  • 規劃能力:在問題拆解上few-shot的效果會比zero-shot要好,不過要支援特定的問題拆解邏輯需要客製化化領域few-shot。如果邏輯過於複雜或者多樣性較高,只依賴固定prompt的效果也會比較一般。
  • 序列計算延時高:SelfAsk和React都是序列推理邏輯,每一步推理和工具呼叫都依賴上一步的推理結果,導致整體計算耗時太長。針對這個問題可以看下ReWOO[4]提出的並行推理+槽位填充的方案~

針對更復雜多樣的工具呼叫,和更有針對性/複雜的模型規劃能力,我們下一章介紹基於指令微調的工具呼叫方案。

想看更全的大模型相關論文梳理·微調及預訓練資料和框架·AIGC應用,移步Github >> DecryPrompt


Reference

  1. https://towardsdatascience.com/all-you-need-to-know-to-build-your-first-llm-app-eb982c78ffac
  2. https://lilianweng.github.io/posts/2023-06-23-agent/
  3. MRKL Systems. A modular, neuro-symbolic architecture that combines large language, models, external knowledge sources and discrete reasoning
  4. ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models
  5. 拾象投研機構對LLM的調研報告(文中有兩次PPT的申請連結)