產品經理解析:如何教會大模型使用工具?
大家或許會高估了模型的能力,低估了工程落地可用的難度。本文將聚焦在解決”無法調用外部工具“的問題上,將學習總結到的方案,以產品視角用綜述方式總結分享,希望對你有所幫助。
對于大模型是如何訓練生成的問題,相信大家對其背后原理以及訓練方式已研究頗多,司內也有很多同學從專業(yè)的視角撰寫了很多深度好文進行分享,讓人受益頗多,例如:《用人話詳解語言大模型》但在我結合業(yè)務落地實踐過程中,發(fā)現(xiàn)只運用大模型本身能力是不夠的。
真正有效的落地方案,要思考自身業(yè)務優(yōu)勢場景,也要結合業(yè)務邊界約束條件,這樣才能實現(xiàn)對業(yè)務價值最大化,這是重點也是難點。在上述場景中結合大模型落地應用,會有各種各樣的問題,從產品視角可將問題抽象總結為三個方面:無法結合外部數(shù)據(jù)、無法結合上下文記憶、無法調用外部工具。
當然,太陽底下沒有新鮮事,上述問題都是業(yè)內探索廣泛遇到的,本文將聚焦在解決”無法調用外部工具“的問題上,將學習總結到的方案,以產品視角用綜述方式總結分享。
一、問題研究意義
舉個例子:如果把大模型比喻成一個全能人類,它可以口述歷史、翻譯多國語言、談笑風聲。但如果你餓了讓它為你做一頓可口的飯菜,抱歉它最多只能幫你口述菜譜,因為它沒有、也不會使用燃氣灶、高壓鍋。讓模型學會外部工具的意義也在于此,只利用模型本身能力落地應用終究空間有限,也無法結合業(yè)務本身,只有結合外部工具,才能更好的鏈接業(yè)務目標,發(fā)揮更大價值。
二、業(yè)內解決方案
將“如何讓大模型調用外部工具?”問題進行拆解,可分為三個環(huán)節(jié):
1)大模型如何進行意圖識別,分解指令
2)大模型如何將拆解出的指令,找到對應的工具
3)大模型如何學會使用對應的工具
目前領域內:LangChain、Toolformer、HuggingGPT、AutoGPT、BabyAGI 皆對上述拆解的三個環(huán)節(jié)或其中一環(huán)提出了相應解決方案。
2.1 LangChain
LangChain是一個用于開發(fā)大語言模型的應用程序框架,全面且強大,具有很多組件,可以解決很多在應用落地時遇到的問題,如:模型(Models)、提示(Prompts)、索引(Indexes)、存儲(Memory)、鏈(Chains)和代理(Agents),其中Agents就是去解決調用外部工具問題的。簡述其實現(xiàn)原理為:
1)先基于用戶需求,將Prompt拆解成不同任務
2)在基于任務去尋找適合的工具,并調用工具生成結果(這里會也會告訴大模型工具API文檔,這樣大模型可以根據(jù)API文檔正確調用工具)。
3)最后對結果進行整合
上述對LangChain 使用Agent 調用外部工具的流程進行了簡化。
2.2 Toolformer
Toolformer 是由meta ai提出的一個經過微調的模型,和LangChain思路有相似之處,主要的思想是通過構建一個自監(jiān)督的方法,教大模型學會自己調用API,并省去大量的標注工作。
通過引入Toolformer,模型可以學會哪些任務需要調用工具、這些工具對應的API是什么、以及API參數(shù)正確的組裝方式是什么,從而解決大模型無法調用外部工具的問題。
這個過程主要分為三個環(huán)節(jié):API調用采樣、API調用執(zhí)行、API過濾。
1)API調用取樣對于每一個API先編寫一個Prompt。這部分目的是讓模型分析,用戶輸入的文本指令中,哪些部分需要調用工具以及何種工具,并將需要調用的API插入對應的位置。
(論文中示例:問答系統(tǒng)生成API調用的Prompt)
2)API調用執(zhí)行根據(jù)上一步的任務,去執(zhí)行所有的API調用,反回文本序列并插入到對應位置。
3)API過濾通過算法計算出插入的API調用,哪些是真正有用的,哪些是無用的,最后只保留有用的部分。
(論文中示例:輸出結果)
2.3 HuggingGPT
HuggingGPT是由浙江大學和微軟亞研的研究者提出的一種讓 LLM 充當控制器的新方法,讓 LLM 使用語言作為通用接口,來管理現(xiàn)有的 AI 模型以解決復雜的 AI 任務的框架。
(原理圖-引自論文)
簡化的描述就是,HuggingGPT 一端連接著ChatGPT,一端連接著眾多領域專精的AI模型,當用戶輸入自然語言時,可結合ChatGPT將用戶的意圖拆解,并按需調用對應意圖的AI模型,最后再結合生成結果,框架主要流程如下:
1)任務規(guī)劃ChatGPT 等 LLM 首先對用戶請求進行解析,進行任務分解,并根據(jù)其知識規(guī)劃任務順序和依賴關系;
2)模型選擇LLM 將解析后的任務分配給專家模型;
3)任務執(zhí)行專家模型在推理端點上執(zhí)行分配到的任務,并將執(zhí)行信息和推理結果記錄到 LLM;
4)響應生成LLM 對執(zhí)行過程日志和推理結果進行匯總,并將匯總結果返回給用戶。
(工作流程-引自論文)
2.4 BabyAGI
Baby AGI 是一個基于 OpenAI 的 GPT-3.5 或 GPT-4 語言模型構建的 Python 腳本。它接收目標和任務作為輸入,并積極地嘗試完成這些任務。
此外,它還能根據(jù)已有目標和完成任務的結果生成新任務,并重新設置任務列表的優(yōu)先級順序。系統(tǒng)的核心理念在于利用先前任務的成果和預設目標來創(chuàng)建任務。
然后,它使用GPT按照這些目標生成新任務,并使用 Pinecone(一種存儲和檢索大量數(shù)據(jù)的程序)來存儲和獲取任務結果的上下文,以便幫助模型記住它執(zhí)行過的操作和將要執(zhí)行的任務。
Baby AGI 的核心流程遵循以下三個關鍵步驟,這些步驟與其他類似產品的解決方案有許多相似之處:
1)根據(jù)需求拆分任務
2)為任務分配優(yōu)先級
3)執(zhí)行任務并整合成果
(核心流程-引自Baby AGI GitHub)
2.5 AutoGPT
實際上,AutoGPT 仍然運用了 GPT 作為其背后的大型語言模型來提供支持。簡化來講,AutoGPT 的工作原理是將用戶的自然語言需求轉化為一個特定的 Prompt。
然而,這個 Prompt 的目的不是直接生成結果,而是對用戶需求進行任務拆解和計劃制定。
之后,拆解得到的任務和制定的計劃將作為新的 Prompt 輸入系統(tǒng)。在每個任務和計劃的執(zhí)行過程中,系統(tǒng)會尋找合適的工具并持續(xù)循環(huán),直至成功解決問題。
(原理-簡化版)
它主要包括三個部分:需求下發(fā)、自主運行和結果輸出。其中,自主運行是 AutoGPT 的核心模塊,它具有如下幾個步驟:
1)任務定義用戶通過 Prompt 向 ChatGPT 下發(fā)任務。初次下發(fā)的任務需包含用戶名(Name)、角色(Role)和目標(Goals)。在后續(xù)的對話中,ChatGPT 將根據(jù)執(zhí)行結果自動生成新的 Prompt。
2)任務理解ChatGPT 通過大模型對下發(fā)的 Prompt 進行語義理解。這個過程模仿了人類在接收任務時的思考過程,在 AutoGPT 中稱為”Thinking”。
3)方案生成基于對任務的理解,ChatGPT 輸出一個詳細的、逐步的解決方案。這部分對應 AutoGPT 中的”Plan”環(huán)節(jié)。
4)指令生成ChatGPT 對生成的方案進行邏輯判斷,選出優(yōu)先執(zhí)行的步驟,并生成可執(zhí)行的操作或指令。這部分在 AutoGPT 中被稱為”Criticism”。生成的指令包括命令和參數(shù),例如瀏覽某個網站的指令。這個步驟是 AutoGPT 的核心之一,因為它為 GPT 提供了內置動作和參數(shù)的能力,如搜索關鍵字、抓取網頁數(shù)據(jù)、進行文本數(shù)據(jù)分析以及文件讀寫等操作。這讓 GPT 具備了聯(lián)網、記憶等能力。
5)指令執(zhí)行AutoGPT 根據(jù)生成的指令執(zhí)行任務,可能涉及訪問網站、解析網站、爬取數(shù)據(jù)和執(zhí)行電腦指令等操作。此外,它還可以調用 ChatGPT 資源來完成編寫代碼等任務。
6)結果輸出當指令執(zhí)行完成后,AutoGPT 將返回執(zhí)行結果,如網站頁面解析結果或數(shù)據(jù)分析結果等。
7)結果評估在執(zhí)行任務后,AI 將對執(zhí)行結果進行評估,以確定是否達到預期目標或是否需要做出進一步調整。這一評估過程有助于 AI 了解其行動的有效性并做出必要的優(yōu)化。
需要注意的是,GPT 返回的不再是簡單的文本信息,而是一個具有標準 JSON 結構的數(shù)據(jù)。這種數(shù)據(jù)結構使得 AutoGPT 能夠自主執(zhí)行任務,體現(xiàn)了其獨特的思路精華。系統(tǒng)將持續(xù)循環(huán)執(zhí)行以上過程,直到達到用戶定義的所有目標。以上流程描述了 AutoGPT 的整個運行流程。
三、外部工具使用局限
3.1 工具范圍的有限性
上述多種解決方案,所能連接的工具都是有限的,我思考主要受限于幾個原因:
1)受限于實現(xiàn)原理上述方案從實現(xiàn)方式上來看,還是Prompt工程的一部分,隨著工具越來越多,會受于上下文token數(shù)量的限制;
2)受限于成本token數(shù)量的增加,也會相應的提高成本,如何利用外部工具+多輪對話,對業(yè)務側平衡成本和用戶體驗也是一個考驗;
3)受限于生態(tài)發(fā)展大模型剛剛發(fā)展,生態(tài)的構建也剛剛開始發(fā)展,如何讓接入的工具方賺錢,如何讓更多工具加入被調用的工具list,在模型方、工具方、用戶,這三邊市場中還沒有形成明確的商業(yè)模型。
3.2 任務實現(xiàn)的準確性
產生“幻覺”即一本正經的亂回答,仍然是大模型需要解決的問題。雖然GPT-4發(fā)布后,已經大大降低了產生幻覺的概率,但仍常有發(fā)生。從準確性和用戶價值關系的角度思考:往往越復雜任務(多重任務),越貼近用戶真實需求場景,帶給用戶的價值越高,但實際上任務準確性可能會越低。真正發(fā)揮最大化的價值,可能還有一段路要走。
四、站在業(yè)務側角度的思考
以下兩個問題本次不做詳細展開,僅闡述部分觀點&思路,持續(xù)研究大半年以來也有很多思考,給自己挖個坑,后續(xù)單獨成文進行分享。也歡迎大家隨時找我討論。
1)如何更好的利用大模型結合業(yè)務落地,提高產品和用戶/客戶價值?
- 用戶:找到真正的用戶/客戶需求
- 產品:明確自己產品和業(yè)務在大模型時代下真正的優(yōu)勢與劣勢
- 技術:對技術保持自己的感悟和判斷力,不要因為對技術的不了解和過于了解,限制自己的想象力。
2)大模型若發(fā)展成為平臺或操作系統(tǒng),當前業(yè)務產品如何更好融入大模型平臺,要如何提前準備,如何構建自己的優(yōu)勢?
參考資料:
1. 科研論文
HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face
Toolformer: Language Models Can Teach Themselves to Use Tools
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
2. 技術文章
用人話詳解語言大模型
3. 其他內容
- LangChainGitHub 地址
- BabyAGIGitHub 地址
- BabyAGI網站
- AutoGPTGitHub 地址
- AutoGPT工作原理解析
作者:edmondgeng,騰訊PCG產品經理
來源公眾號:騰訊大講堂(ID:TX_DJT ),聚焦前沿,打造互聯(lián)網人的高光時刻
本文由人人都是產品經理合作媒體 @騰訊大講堂 授權發(fā)布,未經許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發(fā)揮!