解密Prompt系列38.多Agent路由策略

风雨中的小七發表於2024-09-18

常見的多智慧體框架有幾類,有智慧體相互溝通配合一起完成任務的例如ChatDev,CAMEL等協作模式, 還有就是一個智慧體負責一類任務,透過選擇最合適的智慧體來完成任務的路由模式,當然還有一些多智慧體共享記憶層的複雜互動模式,這一章我們針對智慧體路由,也就是選擇最合適的智慧體來完成任務這個角度看看有哪些方案。

上一章我們討論的何時使用RAG的決策問題,把範圍放大,把RAG作為一個智慧體,基座LLM作為另一個智慧體,其實RAG決策問題也是多智慧體路由問題的一個縮影。那實際應用場景中還有哪些型別的智慧體路由呢?

  • 不同角色的智慧體,例如看到最搞笑的是不同流派的算命機器人
  • 不同工具掛載的智慧體,例如接入不同知識庫,擁有不同領域工具
  • 不同思考方式的智慧體,例如COT思考,有Step-back思考,有outline思考
  • 不同工作流的智慧體,例如例如不使用RAG,使用單步RAG,多步RAG的智慧體路由
  • 把以上融合,也就是不同角色,工具,思考方式,工作流的綜合智慧體路由

而這裡我們看兩種外掛策略,也就是可以直接在當前已有多智慧體外層進行路由的方案。

基於能力和領域的智慧體路由

  • One Agent To Rule Them All: Towards Multi-agent Conversational AI
  • https://github.com/ChrisIsKing/black-box-multi-agent-integation

MARS其實是一篇大模型出現前的文章,但是卻可以作為多Agent路由的基礎文章之一,它主要針對當不同領域(能力)的智慧體選擇。思路非常清晰。論文先定義了多智慧體選擇問題,該問題的組成元素包括

  • query: 使用者提問
  • agent skill:對於智慧體能力的描述,也可以是sample queries
  • agent response:智慧體對使用者提問的回答

那自然就有兩種智慧體選擇的方案,一個是直接基於query進行選擇(Query-Pairing),一個是基於智慧體response進行選擇(Response-pairing),當前的多智慧體決策也就是這兩個大方向,前者更快但精度有限,後者更慢但效果更好。下面說下方案中的細節,因為實際操作時你會發現兩個方案都有難點。

image

Question pairing

基於query進行判斷的問題在於如何描述agent能幹啥,論文指出智慧體的能力邊界不好界定,更難描述。

論文給出的一個方案是使用query sample,雖然不知道模型的全域性能力,但是基於使用者歷史的使用情況,可以知道模型能回答哪些query,例如"locate me some good places in Kentucky that serve sushi"這個問題,"Alexa", "Google"可以回答這個問題。那就可以基於歷史收集的query樣本訓練一個多標籤分類模型,預測每個query哪些智慧體可以回答。其實這種方案也是使用了response,只不過使用的是歷史agent回答。

除了query分類,論文還用了相似度。論文收集了agent在公開網站上的能力描述,例如"Our productivity bot helps you stay productive and organized. From sleep timers and alarms to reminders, calendar management, and email ....".然後使用agent描述和query的文字相似度排序作為agent能否回答該問題的判斷。這裡論文嘗試了bm25,USE,還有微調Roberta等方式進行向量編碼。之前我們也考慮過類似KNN的方案,但這種方案有個問題在於文字相似可以衡量領域差異,例如數學Agent,金融Agent,但是無法區分任務複雜程度,所以不適用於領域之外的其他agent路由場景。

Response Pairing

使用線上模型回答來進行路由的核心難點其實就是如何判斷response質量,論文指出的是前文多透過response和query的相似度來判斷,這是不夠的,還要判斷準確性,因此論文采用了cross-encoder訓練了query-response ranking模型。不過在大模型出來後的這兩年,對於response回答質量有了更全面的評價標準,例如OpenAI的3H(Helful, Harmless,Honesty),DeepMind更關注的2H(helpful, harmless),也有了更多的Reward和Judement模型的訓練方案,感興趣的同學可以去看好對齊RLHF-OpenAI·DeepMind·Anthropic對比分析

這裡就不細說論文的方案了,直接來看下效果吧。論文在22年當時的四大Agent(Aleax,Google,houndify,Adasa)上評估,基於Response排序的方案最好,不過使用Query Sample分類的方案效果也不差。

image

基於問題複雜程度的智慧體路由

  • Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity

前面的MARS更多是從領域層面對智慧體進行劃分,例如bank agent,weather agent,transport agent,但是RAG問題上,領域差異更多隻影響資料庫路由,也就是使用哪些召回,查什麼資料。還有一個更重要的差異,來自問題的複雜度。類似的方案有SELF-RAG,不過它是把路由融合在了模型推理的過程中,整體複雜度太高,可用性就有些低了。所以我們看下Adaptive-RAG的外掛路由的方案。

Adaptive-RAG提出了透過分類器,對query複雜程度進行分類,並基於分類結果分別選擇LLM直接回答,簡單單步RAG,或者複雜多步RAG(論文選擇了Interleaving-COT),如下圖
image

那如何判斷一個query的複雜程度呢,這裡其實和前面MARS提出的query pairing中的query多標籤分類模型的思路是相似的。也是使用同一個query,3種模式的回答結果的優劣作為標籤來訓練分類模型,當然也可以是listwise排序模型。論文使用的是有標準答案的QA資料集,因此多模型回答的結果判斷起來會比較簡單,這裡3種回答方式也有優先順序,那就是更簡單的鏈路能回答正確的話,預設標籤是最簡單的方案。這裡的query分類器,論文訓練了T5-Large,樣本只有400條query,以及每個問題對應在3種鏈路上的回答結果。

而在現實場景中RAG樣本的反饋收集要複雜的多,需要先基於標註樣本訓練Reward模型,得到對回答質量的評分,再使用Reward模型對多個鏈路的回答進行打分從而得到分類標籤。

如果你的RAG鏈路選擇更多,優先順序排序更加複雜的話,不妨使用多標籤模型,得到多個候選agent,再基於多個agent之間的優先順序選擇複雜程度最低,或者在該任務上優先順序最高的Agent進行回答。

效果論文分別在single-step和multi-hopQA資料集上進行驗證,Adaptive都能在保證更優效果的同時,使用更少的時間和步驟完成任務(Oracle是當分類器完全正確時的效果比較天花板)

image

基於使用者偏好的智慧體路由

  • Zooter:Routing to the Expert: Efficient Reward-guided Ensemble of Large
    Language Models

第三篇論文是從使用者回答偏好出發,選擇最合適的agent,其實也是最優的基座模型。基座模型Ensemble和Routing也算是智慧體路由中的一個獨立的方向,包括的大模型小模型路由以求用更少的成本更快的速度來平衡效果,也有多個同等能能力的模型路由來互相取長補短。個人認為基座模型的路由比不同領域的Agent,或者rag要複雜一些,因為基座模型間的差異在文字表徵上更加分散,抽象難以進行歸類和劃分。這差異可能來自預訓練的資料分佈差異,指令資料集的風格差異,或者rlhf的標註規則差異等等~

正是因為難以區分,所以基座模型路由要是想使用query-pairing達到可以和response-pairing相近的效果和泛化性,需要更多,更豐富的訓練資料。Zooter給出的就是蒸餾方案,也就是訓練reward模型對多模型的回答進行評分,然後把模型評分作為標籤來訓練query路由模型。如下

image

蒸餾部分,論文借鑑了蒸餾損失函式,為了從reward模型中保留更多的資訊,這裡沒有把多模型的reward打分最後轉化成top-answer的多分類問題,而是把reward打分進行了歸一化,直接使用KL-divergence讓模型去擬合多個模型回答之間的相對優劣。同時考慮到reward-model本身的噪聲問題,論文在蒸餾時也使用了label-smoothing的方案來降低噪聲,提高模型回答置信度。其實也可以使用多模型reward打分的熵值來進行樣本篩選。

獎勵函式,論文使用QwenRM作為reward模型,混合多資料集構建了47,986條query樣本,對mdeberta-v3-base進行了蒸餾訓練。

效果上,論文對比了6個單基座模型,使用蒸餾後的模型進行query路由(ours),以及使用不同Reward模型對response進行路由,還有SOTA GPT3.5和GPT4

  • 不同Reward模型的效果差異較大,在當前評估的4個任務集上,Qwen和Ultra的效果要顯著更好
  • 論文蒸餾的方式訓練的Zooter模型在query路由的效果上可以基本比肩使用RM進行response路由,使用1/6的推理成本就能做到相似的效果有相似的推理效果

image

更多智慧體路由相關方案

更多RAG路由,智慧體路由,基座模型路由Ensemble的論文,大家感興趣的可以自己去看

  • 智慧體路由
    • One Agent To Rule Them All: Towards Multi-agent Conversational AI
    • A Multi-Agent Conversational Recommender System
  • 基座模型路由&Ensemble
    • Large Language Model Routing with Benchmark Datasets
    • LLM-BL E N D E R: Ensembling Large Language Models with Pairwise Ranking and Generative Fusion
    • RouteLLM: Learning to Route LLMs with Preference Data
    • More Agents Is All You Need
    • Routing to the Expert: Efficient Reward-guided Ensemble of Large Language Models
  • 動態RAG(When to Search & Search Plan)
    • SELF-RAG: LEARNING TO RETRIEVE, GENERATE, AND CRITIQUE THROUGH SELF-REFLECTION ⭐
    • Self-Knowledge Guided Retrieval Augmentation for Large Language Models
    • Self-DC: When to retrieve and When to generate Self Divide-and-Conquer for Compositional Unknown Questions
    • Small Models, Big Insights: Leveraging Slim Proxy Models To Decide When and What to Retrieve for LLMs
    • Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity
    • REAPER: Reasoning based Retrieval Planning for Complex RAG Systems
    • When to Retrieve: Teaching LLMs to Utilize Information Retrieval Effectively
    • PlanRAG: A Plan-then-Retrieval Augmented Generation for Generative Large Language Models as Decision Makers

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

相關文章