今天小編分享的科學經驗:一句話搞定數據分析,浙大全新大模型數據助手,連搜集都省了,歡迎閱讀。
處理數據,用這一個 AI 工具就夠了!
依靠背後的大語言模型(LLM),只需要用一句話描述自己想看的數據,其他統統交給它!
處理、分析,甚至可視化,都能輕松搞定,甚至連搜集也不用自己動手。
這款基于 LLM 的 AI 數據助手叫做 Data-Copilot,由浙江大學團隊研發。
相關論文預印本已經發布。
以下内容由投稿者提供
金融、氣象、能源等各行各業每天都會生成大量的異構數據。人們急切需要一個工具來有效地管理、處理和展示這些數據。
DataCopilot 通過部署大語言模型來自主地管理和處理海量數據,滿足多樣化的用戶查詢、計算、預測、可視化等需求。
只需要輸入文字告訴 DataCopilot 你想看的數據,無需繁瑣的操作,無需自己編寫代碼,DataCopilot 自主地将原始數據轉化為最符合用戶意圖的可視化結果。
為了實現的囊括各種形式的數據相關任務的通用框架,研究團隊提出了 Data-Copilot。
這一模型解決了單純使用 LLM 存在的數據洩露風險、計算能力差、無法處理復雜任務等問題。
在接收到復雜請求時,Data-Copilot 會自主設計并調度獨立的接口,構建一個工作流程來滿足用戶的意圖。
在沒有人類協助的情況下,它能夠熟練地将來自不同來源、不同格式的原始數據轉化為人性化的輸出,如圖形、表格和文本。
Data-Copilot 項目的主要貢獻包括:
連接了不同領網域的數據源和多樣化的用戶需求,減少了繁瑣的勞動和專業知識。
實現了自主管理、處理、分析、預測和可視化數據,可将原始數據轉化為最符合用戶意圖的信息性結果。
具有設計者和調度者的雙重身份,包括兩個過程:接口工具的設計過程 ( 設計者 ) 和調度過程 ( 調度者 ) 。
基于中國金融市場數據構建了 Data-Copilot Demo。
自主設計并執行工作流
不妨以下面這個例子來看看 Data-Copilot 的表現:
今年一季度上證 50 指數的所有成分股的淨利潤增長率同比是多少
Data-Copilot 自主設計了這樣的工作流 :
針對這個復雜的問題,Data-Copilot 采用了 loop_rank 這個接口來實現多次循環查詢。
Data-Copilot 執行該工作流後得到了這樣的結果:
其中橫坐标是每只成分股的股票名字,縱坐标是一季度的淨利潤同比增長率
除了一般的數據處理過程之外,Data-Copilot 還能生成種類豐富的工作流程。
研究團隊以預測和并行兩種工作流模式分别對 Data-Copilot 進行了測試。
預測工作流
對于已知數據之外的部分,Data-Copilot 也可以進行預測,比如輸入下面這個問題:
預測下面四個季度的中國季度 GDP
Data-Copilot 部署了這樣的工作流:
獲取歷史 GDP 數據→采用線性回歸模型預測未來→輸出表格
執行之後的結果如下:
并行工作流
我想看看最近三年寧德時代和貴州茅台的市盈率
對應的工作流是:
獲取(兩支股票的)股價數據→計算相關指數→生成圖表
兩支股票的相關工作是同時并行的,最後得到的如下的圖表:
主要方法
Data-Copilot 是一個通用的大語言模型系統,具有接口設計和接口調度兩個主要階段。
接口設計:研究團隊設計了一個 self-request 的過程,使 LLM 能夠自主地從少量種子請求生成足夠的請求。然後,LLM 根據生成的請求進行迭代式的設計和優化接口。這些接口使用自然語言描述,使它們易于擴展和在不同平台之間轉移。
接口調度:在接收到用戶請求後,LLM 根據自設計的接口描述和 in context demonstration 來規劃和調用接口工具,部署一個滿足用戶需求的工作流,并以多種形式呈現結果給用戶。
Data-Copilot 通過自動生成請求和自主設計接口的方式,實現了高度自動化的數據處理和可視化,滿足用戶的需求并以多種形式向用戶展示結果。
接口設計
如上圖所示,首先要實現數據管理,第一步需要接口工具。
Data-Copilot 會自己設計了大量接口作為數據管理的工具,其中接口是由自然語言(功能描述)和代碼(實現)組成的模塊,負責數據獲取、處理等任務。
首先,LLM 通過少量的種子請求并自主生成大量請求 ( explore data by self-request ) ,盡可能覆蓋各種應用場景。
然後,LLM 為這些請求設計相應的接口(interface definition: 只包括描述和參數),并在每次迭代中逐步優化接口設計 ( interface merge ) 。
最後,研究人員利用 LLM 強大的代碼生成能力為接口庫中的每個接口生成具體的代碼 ( interface implementation ) 。這個過程将接口的設計與具體的實現分離開來,創建了一套多功能的接口工具,可以滿足大多數請求。
如下圖:Data-Copilot 自己設計的接口工具用于數據處理
接口調度
在前一個階段,研究人員獲取了用于數據獲取、處理和可視化的各種通用接口工具。每個接口都有清晰明确的功能描述。如上圖所示的兩個查詢請問,Data-Copilot 通過實時請求中的規劃和調用不同的接口,形成了從數據到多種形式結果的工作流程。
Data-Copilot 首先進行意圖分析來準确理解用戶的請求。
一旦準确理解了用戶的意圖,Data-Copilot 将規劃一個合理的工作流程來處理用戶的請求。Data-Copilot 會生成一個固定格式的 JSON,代表調度的每個步驟,例如 step={"arg":"", "function":"", "output":"" ,"description":""}。
在接口描述和示例的指導下,Data-Copilot 在每個步驟内以順序或并行的方式精心安排接口的調度。
Data-Copilot 通過将 LLMs 整合到數據相關任務的每個階段中,根據用戶的請求将原始數據自動轉化為用戶友好的可視化結果,顯著減少了對繁瑣勞動和專業知識的依賴。
GitHub 項目頁 :
https://github.com/zwq2018/Data-Copilot
論文地址 :
https://arxiv.org/abs/2306.07209
HuggingFace DEMO:
https://huggingface.co/spaces/zwq2018/Data-Copilot