大語言模型做數據助手,浙大Data-Copilot高效調用、處理、可視化數據
金融、氣象、能源等各行各業每天都會生成大量的異構數據。人們急切需要一個工具來有效地管理、處理和展示這些數據。
近日,浙江大學提出 DataCopilot,通過部署大語言模型 (LLMs) 來自主地管理和處理海量數據,即它連接不同領域的豐富數據,滿足多樣化的用戶查詢,計算,預測,可視化等需求。
Repo: https://github.com/zwq2018/Data-Copilot
Arxiv: https://arxiv.org/abs/2306.07209
Demo: https://huggingface.co/spaces/zwq2018/Data-Copilot
只需要輸入文字告訴 DataCopilot 你想看啥數據,無需繁瑣的操作,無需自己編寫代碼,DataCopilot 自主地將原始數據轉化為最符合用戶意圖的可視化結果,因為它可以自主地幫你找數據,處理數據,分析數據,畫圖,無需人類協助。
圖片
許多研究已經探索了 LLMs 的潛力。例如 Sheet-Copilot、Visual ChatGPT、Audio GPT 利用 LLMs 調用視覺,語音等領域工具進行數據分析、視頻編輯和語音轉換。從數據科學的角度來看,表格、可視化和音頻都可以被視為一種形式的數據,所有這些任務都可以被看作是與數據相關的任務。因此,一個新的問題出現了:在通用數據的背景下,LLMs 能否構建自動化的數據科學工作流來處理各種與數據相關的任務?為了實現這一目標,需要解決幾個挑戰:
- 從數據角度看:直接使用 LLMs 讀取和處理海量數據不僅不切實際,而且存在數據泄露的潛在風險。
- 從模型角度看:LLMs 不擅長處理數值計算,可能沒有合適的可調用外部工具來滿足多樣化的用戶需求,從而限制了 LLMs 的利用率。
- 從任務角度看:盡管 LLMs 展示了強大的少樣本能力,但許多與數據相關的任務是復雜的,需要結合多個操作,如數據檢索、計算和表格操作,并且結果需要以圖像、表格和文本等多種格式呈現,這些都超出了當前 LLMs 的能力。
因此,為了實現的囊括數據相關任務的通用框架,研究提出 Data-Copilot:
圖片
Data-Copilot 是一個基于 LLM 的系統,用于處理與數據相關的任務,連接了數十億條數據和多樣化的用戶需求。它獨立設計接口工具,以高效地管理、調用、處理和可視化數據。在接收到復雜請求時,Data-Copilot 會自主調用這些自設計的接口,構建一個工作流程來滿足用戶的意圖。在沒有人類協助的情況下,它能夠熟練地將來自不同來源、不同格式的原始數據轉化為人性化的輸出,如圖形、表格和文本。
主要貢獻
- 設計了一個通用的處理數據相關數據的智能系統,將不同領域的數據源和多樣化的用戶需求連接起來,通過將 LLM 集成到整個流程中,減少了繁瑣的勞動和專業知識。
- Data-Copilot 實現自主管理、處理、分析、預測和可視化數據。當接收到請求時,它將原始數據轉化為最符合用戶意圖的信息性結果。
- Data-Copilot 作為設計者和調度者,包括兩個過程:接口工具的設計過程 (設計者) 和接口工具的調度過程 (調度者)。
- 基于中國金融市場數據構建了 Data-Copilot Demo。
主要方法
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 自主設計了工作流如下:
圖片
針對這個復雜的問題,Data-Copilot 采用了 loop_rank 這個接口來實現多次循環查詢。
最后該工作流并執行后結果如下:
圖片
橫坐標是每只成分股的股名,縱坐標是一季度的凈利潤同比增長率
實驗結果
預測工作流
圖片
部署工作流:獲取歷史 GDP 數據 ----> 采用線性回歸模型預測未來 -----> 輸出表格
圖片
并行工作流
圖片
圖片
圖片
結論
研究提出了一個通用的框架,Data-Copilot,用于處理各種數據相關任務。它作為連接眾多異構數據和人類之間的橋梁,根據人類的喜好有效地管理、處理和展示數據。Data-Copilot 通過將 LLMs 整合到數據相關任務的每個階段中,根據用戶的請求將原始數據自動轉化為用戶友好的可視化結果,顯著減少了對繁瑣勞動和專業知識的依賴。
像一位經驗豐富的專家一樣,Data-Copilot 自主設計了適用于各種類型數據和潛在用戶需求的通用接口工具,并在實時響應中調用這些接口,為用戶請求部署清晰的工作流程。接口設計和調度這兩個過程完全由 Data-Copilot 控制,幾乎不需要人的干預。
研究提供了一個中國金融版的 Data-Copilot, 它可以靈活處理與股、基金、經濟、公司財務和實時新聞等方面的復雜請求,是一個可靠的人工智能助手。