產(chǎn)品經(jīng)理解析:如何教會大模型使用工具?

0 評論 8074 瀏覽 30 收藏 16 分鐘

大家或許會高估了模型的能力,低估了工程落地可用的難度。本文將聚焦在解決”無法調(diào)用外部工具“的問題上,將學(xué)習(xí)總結(jié)到的方案,以產(chǎn)品視角用綜述方式總結(jié)分享,希望對你有所幫助。

對于大模型是如何訓(xùn)練生成的問題,相信大家對其背后原理以及訓(xùn)練方式已研究頗多,司內(nèi)也有很多同學(xué)從專業(yè)的視角撰寫了很多深度好文進(jìn)行分享,讓人受益頗多,例如:《用人話詳解語言大模型》但在我結(jié)合業(yè)務(wù)落地實(shí)踐過程中,發(fā)現(xiàn)只運(yùn)用大模型本身能力是不夠的。

真正有效的落地方案,要思考自身業(yè)務(wù)優(yōu)勢場景,也要結(jié)合業(yè)務(wù)邊界約束條件,這樣才能實(shí)現(xiàn)對業(yè)務(wù)價值最大化,這是重點(diǎn)也是難點(diǎn)。在上述場景中結(jié)合大模型落地應(yīng)用,會有各種各樣的問題,從產(chǎn)品視角可將問題抽象總結(jié)為三個方面:無法結(jié)合外部數(shù)據(jù)、無法結(jié)合上下文記憶、無法調(diào)用外部工具。

當(dāng)然,太陽底下沒有新鮮事,上述問題都是業(yè)內(nèi)探索廣泛遇到的,本文將聚焦在解決”無法調(diào)用外部工具“的問題上,將學(xué)習(xí)總結(jié)到的方案,以產(chǎn)品視角用綜述方式總結(jié)分享。

一、問題研究意義

舉個例子:如果把大模型比喻成一個全能人類,它可以口述歷史、翻譯多國語言、談笑風(fēng)聲。但如果你餓了讓它為你做一頓可口的飯菜,抱歉它最多只能幫你口述菜譜,因?yàn)樗鼪]有、也不會使用燃?xì)庠?、高壓鍋。讓模型學(xué)會外部工具的意義也在于此,只利用模型本身能力落地應(yīng)用終究空間有限,也無法結(jié)合業(yè)務(wù)本身,只有結(jié)合外部工具,才能更好的鏈接業(yè)務(wù)目標(biāo),發(fā)揮更大價值。

二、業(yè)內(nèi)解決方案

將“如何讓大模型調(diào)用外部工具?”問題進(jìn)行拆解,可分為三個環(huán)節(jié):

1)大模型如何進(jìn)行意圖識別,分解指令

2)大模型如何將拆解出的指令,找到對應(yīng)的工具

3)大模型如何學(xué)會使用對應(yīng)的工具

目前領(lǐng)域內(nèi):LangChain、Toolformer、HuggingGPT、AutoGPT、BabyAGI 皆對上述拆解的三個環(huán)節(jié)或其中一環(huán)提出了相應(yīng)解決方案。

2.1 LangChain

LangChain是一個用于開發(fā)大語言模型的應(yīng)用程序框架,全面且強(qiáng)大,具有很多組件,可以解決很多在應(yīng)用落地時遇到的問題,如:模型(Models)、提示(Prompts)、索引(Indexes)、存儲(Memory)、鏈(Chains)和代理(Agents),其中Agents就是去解決調(diào)用外部工具問題的。簡述其實(shí)現(xiàn)原理為:

1)先基于用戶需求,將Prompt拆解成不同任務(wù)

2)在基于任務(wù)去尋找適合的工具,并調(diào)用工具生成結(jié)果(這里會也會告訴大模型工具API文檔,這樣大模型可以根據(jù)API文檔正確調(diào)用工具)。

3)最后對結(jié)果進(jìn)行整合

上述對LangChain 使用Agent 調(diào)用外部工具的流程進(jìn)行了簡化。

2.2 Toolformer

Toolformer 是由meta ai提出的一個經(jīng)過微調(diào)的模型,和LangChain思路有相似之處,主要的思想是通過構(gòu)建一個自監(jiān)督的方法,教大模型學(xué)會自己調(diào)用API,并省去大量的標(biāo)注工作。

通過引入Toolformer,模型可以學(xué)會哪些任務(wù)需要調(diào)用工具、這些工具對應(yīng)的API是什么、以及API參數(shù)正確的組裝方式是什么,從而解決大模型無法調(diào)用外部工具的問題。

這個過程主要分為三個環(huán)節(jié):API調(diào)用采樣、API調(diào)用執(zhí)行、API過濾。

1)API調(diào)用取樣對于每一個API先編寫一個Prompt。這部分目的是讓模型分析,用戶輸入的文本指令中,哪些部分需要調(diào)用工具以及何種工具,并將需要調(diào)用的API插入對應(yīng)的位置。

(論文中示例:問答系統(tǒng)生成API調(diào)用的Prompt)

2)API調(diào)用執(zhí)行根據(jù)上一步的任務(wù),去執(zhí)行所有的API調(diào)用,反回文本序列并插入到對應(yīng)位置。

3)API過濾通過算法計算出插入的API調(diào)用,哪些是真正有用的,哪些是無用的,最后只保留有用的部分。

(論文中示例:輸出結(jié)果)

2.3 HuggingGPT

HuggingGPT是由浙江大學(xué)和微軟亞研的研究者提出的一種讓 LLM 充當(dāng)控制器的新方法,讓 LLM 使用語言作為通用接口,來管理現(xiàn)有的 AI 模型以解決復(fù)雜的 AI 任務(wù)的框架。

(原理圖-引自論文)

簡化的描述就是,HuggingGPT 一端連接著ChatGPT,一端連接著眾多領(lǐng)域?qū)>腁I模型,當(dāng)用戶輸入自然語言時,可結(jié)合ChatGPT將用戶的意圖拆解,并按需調(diào)用對應(yīng)意圖的AI模型,最后再結(jié)合生成結(jié)果,框架主要流程如下:

1)任務(wù)規(guī)劃ChatGPT 等 LLM 首先對用戶請求進(jìn)行解析,進(jìn)行任務(wù)分解,并根據(jù)其知識規(guī)劃任務(wù)順序和依賴關(guān)系;

2)模型選擇LLM 將解析后的任務(wù)分配給專家模型;

3)任務(wù)執(zhí)行專家模型在推理端點(diǎn)上執(zhí)行分配到的任務(wù),并將執(zhí)行信息和推理結(jié)果記錄到 LLM;

4)響應(yīng)生成LLM 對執(zhí)行過程日志和推理結(jié)果進(jìn)行匯總,并將匯總結(jié)果返回給用戶。

(工作流程-引自論文)

2.4 BabyAGI

Baby AGI 是一個基于 OpenAI 的 GPT-3.5 或 GPT-4 語言模型構(gòu)建的 Python 腳本。它接收目標(biāo)和任務(wù)作為輸入,并積極地嘗試完成這些任務(wù)。

此外,它還能根據(jù)已有目標(biāo)和完成任務(wù)的結(jié)果生成新任務(wù),并重新設(shè)置任務(wù)列表的優(yōu)先級順序。系統(tǒng)的核心理念在于利用先前任務(wù)的成果和預(yù)設(shè)目標(biāo)來創(chuàng)建任務(wù)。

然后,它使用GPT按照這些目標(biāo)生成新任務(wù),并使用 Pinecone(一種存儲和檢索大量數(shù)據(jù)的程序)來存儲和獲取任務(wù)結(jié)果的上下文,以便幫助模型記住它執(zhí)行過的操作和將要執(zhí)行的任務(wù)。

Baby AGI 的核心流程遵循以下三個關(guān)鍵步驟,這些步驟與其他類似產(chǎn)品的解決方案有許多相似之處:

1)根據(jù)需求拆分任務(wù)

2)為任務(wù)分配優(yōu)先級

3)執(zhí)行任務(wù)并整合成果

(核心流程-引自Baby AGI GitHub)

2.5 AutoGPT

實(shí)際上,AutoGPT 仍然運(yùn)用了 GPT 作為其背后的大型語言模型來提供支持。簡化來講,AutoGPT 的工作原理是將用戶的自然語言需求轉(zhuǎn)化為一個特定的 Prompt。

然而,這個 Prompt 的目的不是直接生成結(jié)果,而是對用戶需求進(jìn)行任務(wù)拆解和計劃制定。

之后,拆解得到的任務(wù)和制定的計劃將作為新的 Prompt 輸入系統(tǒng)。在每個任務(wù)和計劃的執(zhí)行過程中,系統(tǒng)會尋找合適的工具并持續(xù)循環(huán),直至成功解決問題。

(原理-簡化版)

它主要包括三個部分:需求下發(fā)、自主運(yùn)行和結(jié)果輸出。其中,自主運(yùn)行是 AutoGPT 的核心模塊,它具有如下幾個步驟:

1)任務(wù)定義用戶通過 Prompt 向 ChatGPT 下發(fā)任務(wù)。初次下發(fā)的任務(wù)需包含用戶名(Name)、角色(Role)和目標(biāo)(Goals)。在后續(xù)的對話中,ChatGPT 將根據(jù)執(zhí)行結(jié)果自動生成新的 Prompt。

2)任務(wù)理解ChatGPT 通過大模型對下發(fā)的 Prompt 進(jìn)行語義理解。這個過程模仿了人類在接收任務(wù)時的思考過程,在 AutoGPT 中稱為”Thinking”。

3)方案生成基于對任務(wù)的理解,ChatGPT 輸出一個詳細(xì)的、逐步的解決方案。這部分對應(yīng) AutoGPT 中的”Plan”環(huán)節(jié)。

4)指令生成ChatGPT 對生成的方案進(jìn)行邏輯判斷,選出優(yōu)先執(zhí)行的步驟,并生成可執(zhí)行的操作或指令。這部分在 AutoGPT 中被稱為”Criticism”。生成的指令包括命令和參數(shù),例如瀏覽某個網(wǎng)站的指令。這個步驟是 AutoGPT 的核心之一,因?yàn)樗鼮?GPT 提供了內(nèi)置動作和參數(shù)的能力,如搜索關(guān)鍵字、抓取網(wǎng)頁數(shù)據(jù)、進(jìn)行文本數(shù)據(jù)分析以及文件讀寫等操作。這讓 GPT 具備了聯(lián)網(wǎng)、記憶等能力。

5)指令執(zhí)行AutoGPT 根據(jù)生成的指令執(zhí)行任務(wù),可能涉及訪問網(wǎng)站、解析網(wǎng)站、爬取數(shù)據(jù)和執(zhí)行電腦指令等操作。此外,它還可以調(diào)用 ChatGPT 資源來完成編寫代碼等任務(wù)。

6)結(jié)果輸出當(dāng)指令執(zhí)行完成后,AutoGPT 將返回執(zhí)行結(jié)果,如網(wǎng)站頁面解析結(jié)果或數(shù)據(jù)分析結(jié)果等。

7)結(jié)果評估在執(zhí)行任務(wù)后,AI 將對執(zhí)行結(jié)果進(jìn)行評估,以確定是否達(dá)到預(yù)期目標(biāo)或是否需要做出進(jìn)一步調(diào)整。這一評估過程有助于 AI 了解其行動的有效性并做出必要的優(yōu)化。

需要注意的是,GPT 返回的不再是簡單的文本信息,而是一個具有標(biāo)準(zhǔn) JSON 結(jié)構(gòu)的數(shù)據(jù)。這種數(shù)據(jù)結(jié)構(gòu)使得 AutoGPT 能夠自主執(zhí)行任務(wù),體現(xiàn)了其獨(dú)特的思路精華。系統(tǒng)將持續(xù)循環(huán)執(zhí)行以上過程,直到達(dá)到用戶定義的所有目標(biāo)。以上流程描述了 AutoGPT 的整個運(yùn)行流程。

三、外部工具使用局限

3.1 工具范圍的有限性

上述多種解決方案,所能連接的工具都是有限的,我思考主要受限于幾個原因:

1)受限于實(shí)現(xiàn)原理上述方案從實(shí)現(xiàn)方式上來看,還是Prompt工程的一部分,隨著工具越來越多,會受于上下文token數(shù)量的限制;

2)受限于成本token數(shù)量的增加,也會相應(yīng)的提高成本,如何利用外部工具+多輪對話,對業(yè)務(wù)側(cè)平衡成本和用戶體驗(yàn)也是一個考驗(yàn);

3)受限于生態(tài)發(fā)展大模型剛剛發(fā)展,生態(tài)的構(gòu)建也剛剛開始發(fā)展,如何讓接入的工具方賺錢,如何讓更多工具加入被調(diào)用的工具list,在模型方、工具方、用戶,這三邊市場中還沒有形成明確的商業(yè)模型。

3.2 任務(wù)實(shí)現(xiàn)的準(zhǔn)確性

產(chǎn)生“幻覺”即一本正經(jīng)的亂回答,仍然是大模型需要解決的問題。雖然GPT-4發(fā)布后,已經(jīng)大大降低了產(chǎn)生幻覺的概率,但仍常有發(fā)生。從準(zhǔn)確性和用戶價值關(guān)系的角度思考:往往越復(fù)雜任務(wù)(多重任務(wù)),越貼近用戶真實(shí)需求場景,帶給用戶的價值越高,但實(shí)際上任務(wù)準(zhǔn)確性可能會越低。真正發(fā)揮最大化的價值,可能還有一段路要走。

四、站在業(yè)務(wù)側(cè)角度的思考

以下兩個問題本次不做詳細(xì)展開,僅闡述部分觀點(diǎn)&思路,持續(xù)研究大半年以來也有很多思考,給自己挖個坑,后續(xù)單獨(dú)成文進(jìn)行分享。也歡迎大家隨時找我討論。

1)如何更好的利用大模型結(jié)合業(yè)務(wù)落地,提高產(chǎn)品和用戶/客戶價值?

  • 用戶:找到真正的用戶/客戶需求
  • 產(chǎn)品:明確自己產(chǎn)品和業(yè)務(wù)在大模型時代下真正的優(yōu)勢與劣勢
  • 技術(shù):對技術(shù)保持自己的感悟和判斷力,不要因?yàn)閷夹g(shù)的不了解和過于了解,限制自己的想象力。

2)大模型若發(fā)展成為平臺或操作系統(tǒng),當(dāng)前業(yè)務(wù)產(chǎn)品如何更好融入大模型平臺,要如何提前準(zhǔn)備,如何構(gòu)建自己的優(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. 技術(shù)文章

用人話詳解語言大模型

3. 其他內(nèi)容

  • LangChainGitHub 地址
  • BabyAGIGitHub 地址
  • BabyAGI網(wǎng)站
  • AutoGPTGitHub 地址
  • AutoGPT工作原理解析

作者:edmondgeng,騰訊PCG產(chǎn)品經(jīng)理

來源公眾號:騰訊大講堂(ID:TX_DJT ),聚焦前沿,打造互聯(lián)網(wǎng)人的高光時刻

本文由人人都是產(chǎn)品經(jīng)理合作媒體 @騰訊大講堂 授權(quán)發(fā)布,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!