最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

掘力計劃第21期 - 如何構(gòu)建輕量級的 LLM Agent

2023-08-15 22:28 作者:掘金技術(shù)社區(qū)  | 我要投稿

摘要

隨著大語言模型(LLM)的興起,LLM Agent 成為構(gòu)建 LLM 應(yīng)用的關(guān)鍵方向。本文整理自 Michael Yuan 博士的技術(shù)分享,概述了使用輕量級運行時如 WebAssembly 構(gòu)建 LLM Agent 的優(yōu)勢,分析 Python 在構(gòu)建 LLM Agent 時的局限性,并推薦采用類似 Rust 這樣的系統(tǒng)編程語言構(gòu)建 LLM Agent。

引言

近年來,大語言模型(LLM)如 GPT-3 和 ChatGPT 引發(fā)了 AI 的革命。它們擁有強大的文本理解和生成能力,支持各種自然語言處理任務(wù)。但是 LLM 本身只是一個被動的模型,要將其能力發(fā)揮出來,還需要構(gòu)建 LLM Agent。LLM Agent 負責(zé)與 LLM 進行交互,從用戶那里獲取輸入,調(diào)用 LLM 進行推理,并將結(jié)果返回給用戶。

目前主流的 LLM Agent 使用 Python 構(gòu)建,并部署在云原生基礎(chǔ)設(shè)施如 Kubernetes 上。但是這種方式存在一定局限性。主題為《大模型的崛起:解析大語言模型的訓(xùn)練和應(yīng)用》的掘力計劃第21期活動,我們邀請到 Michael Yuan 博士來探討構(gòu)建輕量級 LLM Agent 的新思路。

Michael Yuan 博士是 CNCF WasmEdge 項目的維護者,也是 Second State 的創(chuàng)始人。 他撰寫過5本軟件工程書籍,由 Addison-Wesley、Prentice-Hall 和 O'Reilly 出版。 Michael 是一位長期的開源開發(fā)者和貢獻者。 他之前曾在許多行業(yè)會議上發(fā)表過演講,包括 OpenSourceSummit、The Linux Foundation Member Summit 和 KubeCon。

LLM Agent 的作用

LLM 可以比喻為一個沒有記憶力、感覺器官和行動能力的大腦。LLM Agent 就是為 LLM 提供這些關(guān)鍵功能的組件。具體來說,LLM Agent 包含以下功能:

  • 記憶:負責(zé)保存用戶交互的歷史上下文(short-term memory),以及項目或領(lǐng)域知識(long-term memory)。這樣 LLM 才能持續(xù)地進行會話或完成特定任務(wù)。

  • 感知:負責(zé)從外部世界獲取輸入(眼睛、耳朵),例如監(jiān)聽 IM 消息或 GitHub 事件。

  • 行動:負責(zé)將 LLM 的輸出轉(zhuǎn)換成外部世界的行動(手),例如將結(jié)果返回給用戶或調(diào)用 API。

  • 規(guī)劃:負責(zé)將不明確的任務(wù)分解為 LLM 可以處理的具體步驟。

可以看到,LLM Agent 負責(zé)處理 LLM 與外部世界的交互,是 LLM 應(yīng)用的關(guān)鍵組件。構(gòu)建高效的 LLM Agent 十分重要。

Python 的局限性

當(dāng)前,編寫 LLM Agent 最常用的語言是 Python。但是 Python 存在一些局限性:

  • Python 是一個解釋型語言,性能較差,尤其是在網(wǎng)絡(luò) IO 密集型任務(wù)中表現(xiàn)不佳。

  • Python 應(yīng)用往往依賴龐大的依賴庫,制作成 Docker 鏡像體積過大。

  • Python 不易進行原生編譯,難以實現(xiàn)真正的跨平臺。

此外,Python 生態(tài)中 LLM Agent 的主流選擇是 LangChain。但是 LangChain過于注重研究,提供了太多稀有用例的功能,使用起來非常復(fù)雜。

可以看到,Python 不太適合構(gòu)建輕量級、高效的 LLM Agent。

輕量級運行時的優(yōu)勢

相比之下,一些輕量級運行時具有以下優(yōu)勢:

  • 使用系統(tǒng)編程語言如 Rust、Go 構(gòu)建,性能更好。

  • 可以進行原生編譯,生成更輕量、更可移植的二進制文件。

  • 更適合網(wǎng)絡(luò) IO 密集型、異步處理的任務(wù)。

具體來說,WebAssembly 就是一個非常有前途的輕量級運行時。使用 Rust 編譯到 WebAssembly 中,可以實現(xiàn)比 Python 小幾個數(shù)量級的二進制體積。此外,WebAssembly 還支持訪問底層硬件能力,實現(xiàn)近似原生級別的性能。

因此,使用輕量級運行時構(gòu)建 LLM Agent,可以避免 Python 的性能和體積問題,生成更高效的 LLM 應(yīng)用。

構(gòu)建輕量級 LLM Agent 的新方向

基于上述分析,可以看到構(gòu)建輕量級 LLM Agent 是提升 LLM 應(yīng)用性能的重要方向。具體來說,有以下解決方案:

  • 使用系統(tǒng)編程語言如 Rust、Go 代替 Python??梢源蠓嵘阅懿p小體積。

  • 采用輕量級運行時如 WebAssembly,進一步優(yōu)化性能和可移植性。

  • 對于 Agent 中非性能敏感的組件,可以采用 Serverless 架構(gòu),例如 https://flows.network 來簡化部署和管理。

  • 利用 Vec 之類的向量數(shù)據(jù)庫實現(xiàn)長期記憶,減少單個請求的 overhead。

  • 設(shè)計簡單、模塊化的 Agent 架構(gòu),避免過于復(fù)雜的功能。注重工程化而不是研究。

通過這些方法,可以構(gòu)建出比現(xiàn)有 Python Agent 更輕量級、易部署和高性能的 LLM Agent。這有助于降低部署 LLM 應(yīng)用的門檻,使更多組織能夠受益于 LLM 帶來的價值。

總結(jié)

LLM Agent 是構(gòu)建 LLM 應(yīng)用的關(guān)鍵組件。過重的 Python Agent 在許多場景下表現(xiàn)不佳,構(gòu)建輕量級 LLM Agent 是提升性能的重要方向。采用編譯語言、輕量級運行時等技術(shù)可以實現(xiàn)此目的。我們期待看到更多高效的 LLM Agent 架構(gòu)和最佳實踐出現(xiàn),推動 LLM 的廣泛應(yīng)用。

關(guān)于掘力計劃

掘力計劃由稀土掘金技術(shù)社區(qū)發(fā)起,致力于打造一個高品質(zhì)的技術(shù)分享和交流的系列品牌。聚集國內(nèi)外頂尖的技術(shù)專家、開發(fā)者和實踐者,通過線下沙龍、閉門會、公開課等多種形式分享最前沿的技術(shù)動態(tài)。

掘力計劃第21期 - 如何構(gòu)建輕量級的 LLM Agent的評論 (共 條)

分享到微博請遵守國家法律
临桂县| 平谷区| 翼城县| 佛坪县| 苏尼特左旗| 沁水县| 合江县| 聂拉木县| 庄河市| 收藏| 新沂市| 镇安县| 阜城县| 团风县| 湘阴县| 汕头市| 凤冈县| 贵州省| 临武县| 安福县| 金坛市| 尤溪县| 铁岭县| 长沙县| 泌阳县| 洪泽县| 云林县| 临桂县| 晋江市| 云浮市| 彭泽县| 吉木萨尔县| 鸡泽县| 怀集县| 西乌珠穆沁旗| 加查县| 林甸县| 安顺市| 东莞市| 青海省| 潜江市|