天天看點

微軟開源基于ChatGPT的,超級文本代碼智能體

作者:不秃頭程式員
微軟開源基于ChatGPT的,超級文本代碼智能體

随着ChatGPT等生成式AI産品的出現,大語言模型在應用、商業化落地等方面獲得了巨大進展。但在處理資料分析時表現不佳,例如,像DataFrame這類複雜的資料格式很難直接用文本的方式表示出來,無法靈活地滿足不同使用者需求。

為了解決這些難題,微軟的研究人員提出了“Code-First”的技術概念,并基于ChatGPT(GPT-3.5以上版本,作者推薦使用GPT-4)開發了超級代碼智能體——TaskWeaver。

TaskWeaver可以将使用者的自然語言文本請求轉化為Python代碼在背景運作,并且這些代碼可以任意調用功能插件,完成資料讀取、分析、模型訓練等專業任務。

開源位址:https://github.com/microsoft/TaskWeaver

論文位址:https://arxiv.org/abs/2311.17541

微軟開源基于ChatGPT的,超級文本代碼智能體

簡單來說,通過TaskWeaver一些沒有程式設計能力的人員,也能執行專業的代碼任務。例如,我們想做一個資料分析的項目,資料庫裡存放了一大堆時間序列資料,需要寫程式從資料庫裡把資料取出來,并檢查裡面有沒有異常值。

微軟開源基于ChatGPT的,超級文本代碼智能體

但是根本不會程式設計,借助TaskWeaver架構隻需要向其用文本說明你的意圖,智能體就能幫你完成那些繁瑣的代碼,并生成可視化圖表。

規劃器

首先,使用者提出資料分析等需求,會被送到TaskWeaver的規劃器子產品進行拆解。規劃器就像一位總指揮,主要為整個任務制定執行計劃。

會考量需求的複雜程度,把任務分解為簡單直接的子步驟。比如從資料庫取資料、畫出結果圖表等,還會分析步驟間的邏輯關聯,标注出執行順序。主要流程如下:

微軟開源基于ChatGPT的,超級文本代碼智能體

1)接收使用者的文本查詢,使用自身知識或增強示例生成初始執行計劃,标明必要的子任務步驟。

2)優化初始計劃,合并彼此依賴的子任務,減少調用次數,提高效率。最終形成執行計劃。

3)周遊計劃中的各個子任務,向代碼生成器發送詢問,擷取執行代碼。

4)觀察代碼執行結果,如有需要修改原計劃,要求使用者提供更多資訊等。

5)重複第三和第四步,直到完成全部子任務。最後用自然語言響應使用者的查詢。

代碼生成器

當規劃完成後,計劃中每個子步驟就會逐一送到代碼生成器這裡,由其彙報對應執行代碼。代碼生成器就像一位萬能的“程式員”。

根據規劃器下達的指令,自動設計出整個代碼的執行邏輯并進行編寫代碼。為了減少重複輪子,還内置了插件、示例、代碼校驗、自動錯誤糾正等子產品。

微軟開源基于ChatGPT的,超級文本代碼智能體

同時封裝了資料讀取、模型訓練等常見功能,生成代碼時就可以直接調用。

代碼執行器

代碼編寫完成後,會将資訊傳輸到代碼執行器子產品中。代碼執行器主要負責加載代碼并執行。插件在這一步也會發揮作用,使外部功能得以連接配接。執行器會詳細記錄這個過程的狀态,例如變量值、編碼日志、中間結果等,以友善進行多輪深度互動。

如果代碼在執行過程中出現失敗,會将錯誤資訊報告給代碼生成器進行自動修正,然後再次自動生成正确的代碼。

微軟開源基于ChatGPT的,超級文本代碼智能體

在代碼執行器執行完一輪任務後,會将結果發送給規劃器,完成一次子步驟。再由規劃器決定觸發下一子步驟的執行任務,并重複以上流程。

繼續閱讀