使用開源大語言模型作為LangChain代理

Mondo 科技 更新 2024-02-23

開源大型語言模型 (LLMS) 現在已經達到了一定的效能水平,使其適合作為推理引擎來驅動代理工作流:在我們的基準測試中,Mixtral 甚至超過了 GPT-35.通過微調,可以很容易地進一步提高其效能。

為因果語言建模訓練的大型語言模型 (LLMS) 可以處理各種任務,但它們通常難以完成邏輯、計算和搜尋等基本任務。 最壞的情況是,他們在某個領域(如數學)做得不好,但仍然試圖自己處理所有計算。

為了克服這個弱點,LLM可以整合到乙個系統中,在該系統中可以呼叫工具:這樣的系統稱為LLM代理。

在這篇文章中,我們將解釋 React 代理的內部工作原理,然後展示如何使用最近整合到 Langchain 中的代理chathuggingface類來構建它們。 最後,我們將採用幾個帶有 GPT-3 的開源 LLM5 和 GPT-4 用於基準測試。

LLM 代理的定義非常廣泛:它們指的是所有以 LLMS 為核心引擎並能夠根據觀察對其環境施加影響的系統。 這些系統能夠通過“感知、思考、行動”迴圈的多次迭代來實現給定的任務,並且通常被整合到規劃或知識管理系統中以提高其效能。 你可以在習等人那裡找到它,2023 年研究,以找到對代理領域概述的精彩回顧。

今天,我們專注於:反應代理以上。 React 使用基於“.推理(推理)“和”。行動(代理)“來建立代理。 在提示中,我們解釋了模型可以使用哪些工具,並指導它“一步一步”地思考(也稱為思維鏈行為),以便計畫和實施其下一步行動以達到最終目標。

雖然上面的**看起來有點抽象,但其核心原理其實挺直截了當的。

請參閱此筆記本:我們展示了乙個借助 transformers 庫呼叫工具的基本示例。

從本質上講,LLM 是通過乙個迴圈呼叫的,其中提示包含以下內容:

這裡有乙個問題:“.

您可以使用以下工具:.

首先,你需要“思考”:“接下來你可以:

以正確的 JSON 格式啟動工具呼叫,或輸出帶有字首“Final Answer:”的答案。

接下來,您需要解析 LLM 的輸出:

如果包含在輸出中“最終答案:”string,迴圈結束,輸出答案; 如果沒有包含,則表示 LLM 進行了一次工具呼叫:您需要解析此輸出以獲取工具的名稱及其引數,然後根據這些引數執行相應工具的呼叫。 此工具呼叫的結果將附加到提示中,然後再次將包含新資訊的提示傳遞給 LLM,直到它有足夠的資訊來給出問題的最終答案。 例如,llm 的輸出回答了以下問題:1:23:45 是多少秒? 當它可能看起來像這樣時:

想一想:我需要將一串時間轉換為秒。 

行動:"action": "convert_time","action_input":

鑑於此輸出不包括在內“最終答案:”字串,表示進行的工具呼叫。 因此,我們解析該輸出並獲取該工具呼叫的引數: 到引數convert_time工具,呼叫工具後返回因此,我們將整個資訊塊附加到提示中。

更新後的提示現在是(更詳細的版本):

這裡有乙個問題:“1:23:45 包含多少秒? ”

您可以使用以下工具:

轉換時間:將以小時、分鐘和秒為單位的時間轉換為秒。

首先,“想一想:”在那之後,你可以:

以正確的 json 格式呼叫該工具,或使用“final answer:”字首輸出答案。

想一想:我需要將一串時間轉換為秒。

行動"action": "convert_time","action_input":

觀察:

我們使用這個新提示再次呼叫 llm,因為它可以訪問工具呼叫結果觀察:,llm 現在最有可能輸出:

想一想:我現在有了回答問題所需的資訊。 

最終答案:23:45:5025 中有 1 秒。

就是這樣!

一般來說,執行 LLM 引擎的代理系統的困難包括:

選擇提供的幫助您實現目標的工具之一:例如,當詢問時“大於 30,000 的最小素數是多少? ”,代理可以呼叫“K2的高度是多少? ”search工具,但這無濟於事。 以嚴格的引數格式呼叫工具:例如,在嘗試計算汽車在 10 分鐘內行駛 3 公里的速度時,您必須呼叫calculator工具, 通過distance除以time計算:即使您的計算器工具接受 JSON 格式的呼叫還存在許多陷阱,例如: 工具名稱拼寫錯誤:“calculator”“compute”無效,並且提供引數名稱而不是其值:“args”: distance/time”格式非標準化:“args": "3km in 10minutes”有效地吸收和利用過去觀察的資訊,無論是在初始上下文中還是在使用工具後的觀察中。 那麼,完整的代理設定會是什麼樣子呢?

我們剛剛進入

相關問題答案

    Apple 發布 Ferret,乙個開源的多模態大型語言模型

    技術 Venturebeat 報道稱,蘋果在 年 月悄悄發布了一款名為 Ferret 的開源多模態大型語言模型,這是蘋果與哥倫比亞大學研究人員合作的結果。當時發布的內容包括 和權重 僅供研究使用,不包括商業許可 但它並沒有得到太多關注。隨著近期對 Mistral 開源 MOE 模型的關注,以及谷歌即...

    中文模型 AskBot 大模型助力企業提供智慧型服務

    隨著人工智慧技術的不斷發展,越來越多的企業正在利用智慧型服務來提公升工作效率和員工體驗。其中,AskBot大模型作為整合了多個大語言模型的人工智慧解決方案,已成為企業實現智慧型服務的重要工具。下面將從中文語言模型的角度出發,深化askbot大模型在企業智慧型服務中的應用和優勢。.AskBot大模型介...

    中國開源模型榮登HuggingFace排行榜榜首

    月日訊息,全球最大的開源大模型社群Huggingface近日公布了最新的開源大模型排行榜,阿里雲通益千問擊敗llama等國內外開源大模型登上榜首。Tongyi Qianwen B榮登Huggingface公開法學碩士排行榜榜首 HuggingFace的Open LLM排行榜是目前大模型領域最權威的榜...

    AllenAI已經開源了有關大模型的所有細節! 資料程式碼,完全複製

    在人工智慧領域,語言模型 LMS 的發展一直是推動自然語言處理 NLP 技術進步的核心力量。隨著商業價值的增長,強大的語言模型越來越多地被封閉在專有介面後面,其訓練資料 架構和開發細節通常不為人知。然而,這些細節對於科學研究至關重要,不僅關乎模型的偏差和潛在風險,而且是理解和提高模型效能的關鍵。有鑑...

    LLM大語言模型 AskBot大模型的深度分析與應用

    在當今的人工智慧領域,大型語言模型 LLMs 已成為乙個熱門話題。通過深度學習和自然語言處理技術,LLM能夠理解和生成更自然 更準確的文字內容。作為最好的模型之一,AskBot 模型將 LLM 的應用推向了乙個新的高度。.LLM大型語言模型概述。LLM是一種基於深度學習的自然語言處理模型,其核心是在...