成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微軟TaskWeaver開源框架:攜手?jǐn)?shù)據(jù)分析與行業(yè)定制,打造頂級(jí)Agent解決方案

人工智能 新聞
微軟推出了 TaskWeaver—— 一款代碼優(yōu)先的 Agent 框架。TaskWeaver 能夠?qū)⒂脩舻淖匀徽Z言請(qǐng)求巧妙地轉(zhuǎn)化為可執(zhí)行代碼,并支持豐富的數(shù)據(jù)結(jié)構(gòu)、動(dòng)態(tài)插件選擇以及專業(yè)領(lǐng)域適應(yīng)的規(guī)劃過程。

數(shù)據(jù)分析一直是現(xiàn)代社會(huì)中的重要工具,它幫助我們洞察本質(zhì)、發(fā)現(xiàn)規(guī)律并指導(dǎo)決策。然而,數(shù)據(jù)分析過程往往復(fù)雜且費(fèi)時(shí),因此我們期望存在一個(gè)智能助手助力用戶直接 “與數(shù)據(jù)對(duì)話 “。得益于大語言模型(LLM)的發(fā)展,虛擬助手和 Copilot 等智能 Agent 紛紛涌現(xiàn),它們?cè)谧匀徽Z言理解和生成方面的表現(xiàn)令人嘆為觀止。但遺憾的是,在處理復(fù)雜數(shù)據(jù)結(jié)構(gòu)(如 DataFrame, ndarray 等)和引入領(lǐng)域知識(shí)方面,現(xiàn)有的 Agent 框架仍然舉步維艱,而這恰恰是數(shù)據(jù)分析和專業(yè)領(lǐng)域中的核心需求。

為了突破這一瓶頸,微軟推出了 TaskWeaver—— 一款代碼優(yōu)先的 Agent 框架。TaskWeaver 能夠?qū)⒂脩舻淖匀徽Z言請(qǐng)求巧妙地轉(zhuǎn)化為可執(zhí)行代碼,并支持豐富的數(shù)據(jù)結(jié)構(gòu)、動(dòng)態(tài)插件選擇以及專業(yè)領(lǐng)域適應(yīng)的規(guī)劃過程。作為開源框架,TaskWeaver 充分發(fā)揮了大語言模型的潛力,通過可定制的示例和插件融入特定領(lǐng)域知識(shí),讓用戶能夠輕松打造個(gè)性化虛擬助手。

圖片

  • 論文:TaskWeaver: A Code-First Agent Framework
  • 論文地址:https://export.arxiv.org/abs/2311.17541

TaskWeaver 項(xiàng)目已在 GitHub上開源,并于發(fā)布當(dāng)日登上 GitHub 趨勢(shì)榜,目前已收獲 2.9k 個(gè) star,在領(lǐng)英等社交平臺(tái)上也有一些實(shí)用案例(例如用 TaskWeaver 進(jìn)行 SAP 數(shù)據(jù)分析)。

圖片


  • 項(xiàng)目主頁:https://microsoft.github.io/TaskWeaver/
  • 項(xiàng)目地址:https://github.com/microsoft/TaskWeaver

故事示例

追蹤銷售數(shù)據(jù)中的隱藏秘密

作為商業(yè)分析師的小雅,她的日常工作之一就是從近期的銷售數(shù)據(jù)中找出異?,F(xiàn)象,從而指導(dǎo)公司調(diào)整銷售策略。所有銷售數(shù)據(jù)都安全地存儲(chǔ)在一個(gè) SQL 數(shù)據(jù)庫中。她渴望通過與 AI 助手的自然語言交流來輕松提取和分析數(shù)據(jù)。更重要的是,在銷售領(lǐng)域,異?,F(xiàn)象有其獨(dú)特性,因此她希望 AI 助手能采用定制的異常檢測(cè)算法來解決問題。圖 1 生動(dòng)地展示了小雅與 AI 助手的聊天實(shí)錄。在收到小雅的求助信息后,AI 助手首先從數(shù)據(jù)庫中提取出相應(yīng)數(shù)據(jù),并匯報(bào)給小雅進(jìn)行確認(rèn)。隨后,該 AI 助手運(yùn)用專屬異常檢測(cè)算法進(jìn)行分析,并最終向小雅展示出一份直觀的可視化結(jié)果。

圖片

圖 1. 故事示例中的對(duì)話實(shí)錄

Agent 框架需要具備哪些技能?

通過上述小雅的故事,我們梳理了 Agent 框架應(yīng)具備的幾大核心能力:

1. 插件支持:在上面的故事中,Agent 需要從數(shù)據(jù)庫中獲取數(shù)據(jù),然后使用指定的異常檢測(cè)算法。為了完成這些任務(wù),智能助手需要能夠定義和調(diào)用自定義插件,如 “query_database” 插件和 “anomaly_detection” 插件。

2. 豐富的數(shù)據(jù)結(jié)構(gòu)支持:Agent 需要處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如數(shù)組、矩陣、表格數(shù)據(jù)等,從而順利進(jìn)行高級(jí)數(shù)據(jù)處理,如預(yù)測(cè)、聚類等。此外,這些數(shù)據(jù)應(yīng)能在不同插件間無縫傳遞。然而,現(xiàn)有的大多數(shù) Agent 框架會(huì)將數(shù)據(jù)分析的中間結(jié)果轉(zhuǎn)換為 Prompt 中的文本,或者先將它們保存為本地文件,然后需要時(shí)再讀取。然而,這些做法容易出錯(cuò)和超過 Prompt 的字?jǐn)?shù)限制。

3. 有狀態(tài)執(zhí)行:Agent 往往需要與用戶進(jìn)行多輪迭代交互,并根據(jù)用戶輸入,生成并執(zhí)行代碼。因此,這些代碼的執(zhí)行狀態(tài)應(yīng)在整個(gè)會(huì)話期間保留,直到會(huì)話結(jié)束。

4. 先推理后行動(dòng)(ReAct):Agent 應(yīng)該擁有 ReAct 的能力,即先觀察推理后再采取行動(dòng),這在一些存在有不確定性的場(chǎng)景中非常有必要。例如,在上述樣例中,由于數(shù)據(jù)庫中的數(shù)據(jù)模式(schema)通常比較多樣,因而 Agent 必須首先獲取數(shù)據(jù)模式信息并了解哪些列是合適的(且與用戶確認(rèn)),然后才可以將相應(yīng)的列名輸入到異常檢測(cè)算法中。

5. 生成任意代碼:有時(shí)候,預(yù)定義的插件無法滿足用戶的請(qǐng)求,Agent 應(yīng)能夠生成代碼以應(yīng)對(duì)用戶的臨時(shí)需求。在上述示例中,Agent 需要生成代碼來可視化檢測(cè)到的異常,而這個(gè)過程是不借助于任何插件來實(shí)現(xiàn)的。

6. 融入領(lǐng)域知識(shí):Agent 應(yīng)提供一種系統(tǒng)性的方案來融入特定領(lǐng)域的知識(shí)。這將幫助 LLM 進(jìn)行更好的規(guī)劃和準(zhǔn)確地調(diào)用工具,從而產(chǎn)生可靠的結(jié)果,尤其是在行業(yè)定制的場(chǎng)景中。

揭秘 TaskWeaver 的核心架構(gòu)

圖 2 展示了 TaskWeaver 的總體架構(gòu),包括規(guī)劃器(Planner),代碼解釋器(Code Interpreter),以及記憶模塊(Memory)。

規(guī)劃器就像是系統(tǒng)的大腦,它有兩個(gè)核心職責(zé):1)制定計(jì)劃,即把用戶的需求拆分成子任務(wù),將這些子任務(wù)逐個(gè)發(fā)送給代碼解釋器,并在整個(gè)計(jì)劃執(zhí)行過程中根據(jù)需要自我調(diào)整計(jì)劃方案;2)回應(yīng)用戶,它會(huì)將代碼解釋器的反饋結(jié)果轉(zhuǎn)換成用戶容易理解的答案并發(fā)送給用戶。

代碼解釋器主要由兩個(gè)組件組成:代碼生成器(Code Generator)會(huì)收到規(guī)劃器發(fā)送的子任務(wù),結(jié)合現(xiàn)有可用的插件以及領(lǐng)域特有的任務(wù)示例,來生成相應(yīng)的代碼塊;代碼執(zhí)行器(Code Executor)則負(fù)責(zé)執(zhí)行生成的代碼,并在整個(gè)會(huì)話過程中保持執(zhí)行狀態(tài)。正因?yàn)榇耍瑥?fù)雜數(shù)據(jù)結(jié)構(gòu)可以在內(nèi)存中傳遞而無需通過 Prompt 或者文件系統(tǒng)。這就像在 Jupyter Notebook 中用 Python 編程,用戶在單元格中輸入代碼片段,程序的內(nèi)部狀態(tài)會(huì)按順序執(zhí)行保留下來并且可被后續(xù)過程被引用。在實(shí)現(xiàn)上,每個(gè)會(huì)話中,代碼執(zhí)行器都會(huì)有一個(gè)獨(dú)立的 Python 進(jìn)程來執(zhí)行代碼,從而支持同時(shí)服務(wù)多用戶。

記憶模塊主要存儲(chǔ)了整個(gè)系統(tǒng)運(yùn)行過程中的有用信息,如執(zhí)行結(jié)果等,可以被不同的模塊寫入和讀取。短期記憶主要包括當(dāng)前會(huì)話中用戶和 TaskWeaver 之間的通信記錄,以及各模塊之間的通信記錄。長期記憶則包括了用戶可預(yù)先定制的領(lǐng)域知識(shí),以及在交互過程中總結(jié)出的一些經(jīng)驗(yàn)等等。

圖片

圖 2. TaskWeaver 整體架構(gòu)示意圖

除了基本架構(gòu)之外,TaskWeaver 還具有許多獨(dú)特的設(shè)計(jì)。例如,會(huì)話壓縮功能可以減小文本大小,從而允許更多的對(duì)話輪數(shù);動(dòng)態(tài)插件選擇功能能夠根據(jù)用戶請(qǐng)求自動(dòng)挑選合適的插件,從而允許集成更多的定制插件。此外,TaskWeaver 還支持經(jīng)驗(yàn)保存功能,用戶在使用過程中通過輸入命令即可觸發(fā)該功能,它將總結(jié)用戶在當(dāng)前會(huì)話中的經(jīng)驗(yàn)教訓(xùn),避免在下次會(huì)話中重復(fù)錯(cuò)誤,實(shí)現(xiàn)真正的個(gè)性化。在安全性方面,TaskWeaver 也進(jìn)行了精心設(shè)計(jì),例如用戶可以指定一個(gè) Python 模塊的白名單列表,如果生成的代碼中引用了白名單之外的模塊,將觸發(fā)錯(cuò)誤,從而降低安全風(fēng)險(xiǎn)。

TaskWeaver 的具體流程

圖 3 向我們展示了 TaskWeaver 在完成前述樣例任務(wù)的部分流程。

首先,規(guī)劃器接收用戶的輸入,結(jié)合各模塊功能描述和規(guī)劃示例生成具體規(guī)劃。該規(guī)劃包含四個(gè)子任務(wù),而其中第一個(gè)子任務(wù)是從數(shù)據(jù)庫中提取數(shù)據(jù)并描述數(shù)據(jù)模式。

然后,代碼生成器根據(jù)其能力描述和所有相關(guān)插件的定義生成一段代碼。這段代碼調(diào)用了 sql_pull_data 插件,將數(shù)據(jù)保存到 DataFrame 中,并提供數(shù)據(jù)模式的描述。

最后,生成的代碼會(huì)被發(fā)送到代碼執(zhí)行器中執(zhí)行,完成后的結(jié)果將被發(fā)送到規(guī)劃器中以更新規(guī)劃或者進(jìn)行下一個(gè)子任務(wù)。圖中執(zhí)行結(jié)果顯示 DataFrame 中有兩個(gè)列,即日期和數(shù)值。規(guī)劃器可以進(jìn)一步與用戶確認(rèn)這些列是否正確,或者直接進(jìn)行下一步的 anomaly_detection 插件的調(diào)用。

圖片

圖 3. TaskWeaver 內(nèi)部工作流

TaskWeaver 中如何注入領(lǐng)域知識(shí)?

在大模型應(yīng)用中,整合特定領(lǐng)域知識(shí)的主要目的是提高 LLM 在行業(yè)定制中的泛化性能。TaskWeaver 提供了三種將領(lǐng)域知識(shí)注入模型的方法:

  • 使用插件進(jìn)行定制:用戶可以通過自定義插件的形式整合領(lǐng)域知識(shí)。插件可以有多種形式,如調(diào)用 API,從特定數(shù)據(jù)庫中抓取數(shù)據(jù),或運(yùn)行特定的機(jī)器學(xué)習(xí)算法或模型等。插件定制相對(duì)直觀,只需提供插件的基本信息(包括插件名稱、功能描述、輸入?yún)?shù)和返回值)以及 Python 實(shí)現(xiàn)。
  • 使用示例進(jìn)行定制:TaskWeaver 還為用戶提供了一個(gè)系統(tǒng)化的接口(以 YAML 格式)來配置示例,從而教導(dǎo) LLM 如何響應(yīng)用戶請(qǐng)求。具體而言,示例可以分為兩種類型,分別用于規(guī)劃器中的規(guī)劃制定和代碼生成器中的代碼編程。
  • 進(jìn)行經(jīng)驗(yàn)保存:TaskWeaver 支持用戶將當(dāng)前會(huì)話過程總結(jié)并存儲(chǔ)為長期記憶。用戶可以將專業(yè)領(lǐng)域知識(shí)作為對(duì)話內(nèi)容對(duì) TaskWeaver 進(jìn)行 “教學(xué)”,隨后保存對(duì)話為經(jīng)驗(yàn)。在后續(xù)的使用過程中就可以通過動(dòng)態(tài)加載經(jīng)驗(yàn),更好地完成專業(yè)領(lǐng)域問題。

如何使用  TaskWeaver?

TaskWeaver 的完整代碼目前已在 GitHub 上開源。目前支持三種方案進(jìn)行使用,分別是命令行啟動(dòng),網(wǎng)頁服務(wù),以及以 Python 庫的形式導(dǎo)入。在簡單安裝后,用戶只需要配置幾項(xiàng)關(guān)鍵參數(shù),如 LLM API 地址、密鑰和模型名稱,即可輕松啟動(dòng) TaskWeaver 服務(wù)。

圖片

圖 4. 命令行啟動(dòng)界面

圖片

圖 5. TaskWeaver 運(yùn)行樣例

TaskWeaver 是一款全新的 Agent 框架方案,其設(shè)計(jì)符合數(shù)據(jù)分析和行業(yè)定制場(chǎng)景的需要。通過將用戶語言轉(zhuǎn)成程序語言,「與數(shù)據(jù)對(duì)話」將不再是夢(mèng)想,而是現(xiàn)實(shí)。

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2017-03-24 15:37:22

SAP建材行業(yè)數(shù)據(jù)分析解決方案

2017-03-28 13:57:19

SAP建材行業(yè)數(shù)據(jù)分析

2014-03-11 11:25:39

華為ICT華為

2019-03-05 13:32:16

華為云

2013-10-18 15:27:30

微軟大數(shù)據(jù)微軟

2014-10-28 17:15:51

達(dá)夢(mèng)數(shù)據(jù)庫

2017-04-17 14:46:12

SAP

2017-06-05 16:16:11

技術(shù)業(yè)務(wù)性

2020-02-05 11:20:39

微軟瀏覽器Windows

2011-10-09 14:47:54

2023-10-12 11:04:04

2014-11-27 14:55:40

Swift主題色

2013-03-21 17:58:56

解決方案華為英格索蘭

2014-03-26 15:18:29

戴爾

2010-01-27 16:10:26

WakefernSAS

2017-11-24 16:33:46

華為云

2023-10-17 15:02:10

云遷移云計(jì)算

2009-01-19 17:31:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产成人精品午夜 | 性福视频在线观看 | 91在线观| 91成人免费观看 | 99精品国产一区二区三区 | 久久久久久亚洲精品 | 青青草网站在线观看 | 天天天天天操 | 久草www | 久久精品综合网 | 红色av社区 | 欧美888| 国产一区二区精华 | 怡红院成人在线视频 | 奇米影视77| 免费黄色在线 | 久久久精品高清 | 欧美xxxx色视频在线观看免费 | 欧美4p| 国产精品视频一区二区三区四蜜臂 | 天天宗合网 | 国产色99| 成人精品一区 | 超级黄色一级片 | 国产精品久久久久久久久久久久久 | 日韩欧美国产一区二区三区 | 日韩精品一区二区三区中文在线 | jlzzjlzz国产精品久久 | 第四色影音先锋 | 国产视频在线一区二区 | 三级免费毛片 | 狠狠干五月天 | 欧美日韩高清在线一区 | av中文字幕网站 | 亚洲一区二区三区四区五区午夜 | 欧洲成人| 日日夜夜天天综合 | 亚洲国产精品一区二区第一页 | 99国产欧美| 一级黄色大片 | 国产欧美精品一区二区 |