
(本文閱讀時間:8分鐘)
資料視覺化是分析資料、激發靈感的重要手段。在將資料轉化為圖表的過程中,通常會先利用資料處理工具對資料進行預處理,再透過視覺化工具將資料對映為圖形,並根據圖表效果進行必要的調整或進一步設計。隨著大語言模型的進步,AI 驅動的資料視覺化工具使創作過程變得更加簡便。例如,透過自然語言描述視覺化設計,大模型便能自動生成程式碼完成任務,大大節省了資料轉換和視覺化的工作量。
然而,如何有效利用 AI 更好地輔助資料分析師進行視覺化創作,仍面臨諸多挑戰。特別是在視覺化創作的迭代過程(iterative process)中,我們往往無法一蹴而就。每次更新設計都需要重新處理資料和繪製圖表。當前 AI 視覺化工具大多要求創作者透過文字提示(prompt)一次性描述完整的視覺化需求,這不僅使得描述過程冗長繁瑣,而且難以精確傳達豐富的視覺資訊。此外,當需要不斷迭代更新設計時,每次也都要從頭描述設計需求,既耗時又費力,且 AI 可能也無法一次性準確完成任務。

為了解決視覺化迭代設計的難題,來自微軟雷德蒙研究院的研究員們在 GitHub 上釋出了一款 AI 驅動的開源視覺化工具 Data Formulator。結合圖形化使用者介面(graphic user interface)和自然語言輸入,Data Formulator 能夠極大提升使用者向 AI 傳達迭代過程中視覺化設計的能力,使得 AI 能夠根據使用者的指令逐步完成複雜視覺化作品的創作與更新。
Data Formulator
GitHub 連結:
https://github.com/microsoft/data-formulator
試用連結:
https://github.com/microsoft/data-formulator/blob/main/CODESPACES.md
論文連結:
https://arxiv.org/abs/2408.16119
如圖1所示,Data Formulator 的互動介面設計巧妙。使用者在構思視覺化設計時,可首先透過右側的 Concept Encoding Shelf 來描述設計目標。在迭代過程中,使用者則可透過左側的 Data Threads 回顧之前的視覺化作品,選擇合適的路徑進行跟進,進而描述新的視覺化目標或進行微調。

圖1:Data Formulator 的使用者互動介面
• 使用 Concept Encoding Shelf 描述視覺化設計
Concept Encoding Shelf 的設計結合了傳統圖形化視覺化工具中的“資料放置互動介面”(shelf configuration UI)與 AI 工具的自然語言輸入功能,使使用者能夠更直觀地描述視覺化目標。使用者在選定視覺化型別(如柱狀圖、線性圖)後,可透過拖拽資料列至相應的視覺通道(如 x 軸、y 軸、顏色等)來直接對映資料至圖形。這種方法相比冗長的文字描述,更能直觀且精確地傳達圖表的設計意圖。
此外,Data Formulator 的獨特之處在於,它允許使用者透過自然語言新增原始資料中不存在的資料概念(data concept)到視覺化對映中,從而打破現有資料格式的限制,實現更加深入和豐富的視覺化設計。
如圖2所示,使用者可以在 y 軸上新增“可持續能源百分比”這一資料概念(儘管原始資料僅包含各種能源的消耗值而非百分比),Data Formulator 將自動決定如何轉換原始資料,計算出所需的資料欄以完成這一視覺化。同樣地,若使用者希望檢視不同國家的可持續能源百分比排名,則可以在 y 軸上新增“排名”資料欄,並透過額外的自然語言描述“計算不同國家的排名”,以指導 Data Formulator 完成相應的視覺化過程。

圖2:Data Formulator 允許使用者新增不存在的資料概念,自行完成轉換
• 藉助 Data Threads 迭代視覺化
當需要在現有圖表基礎上進行迭代時,使用者可以直接在 Concept Encoding Shelf 上使用自然語言來傳達迭代指令(或修改之前的資料對映)。例如,輸入“僅展示前五名國家的可持續能源百分比”,Data Formulator 便能據此進一步處理資料,實現迭代,無需使用者重新描述整個流程。這種方法顯著減輕了使用者的輸入負擔。

圖3:Data Formulator 支援在現有圖表基礎上,透過自然語言指令進行迭代
若需追溯至先前的視覺化作品進行重新分析,使用者則可以利用 Data Threads 功能瀏覽之前的視覺化歷程,並選擇合適的節點繼續研究。例如,使用者若想繪製一個柱狀圖來展示所有國家從2000年至2020年的排名變化,可以返回至“可持續能源百分比排名”的圖表,並透過自然語言指令“比較不同國家2000至2020年間的排名變化”來指引 Data Formulator 基於歷史資料進行深入分析,並生成所需的圖表。

圖4:Data Formulator 支援在過往圖表基礎上,透過自然語言指令進行迭代

Data Formulator 的設計策略是將資料轉換與視覺化過程分離開來,以提高大模型執行任務的準確度,並透過模型的程式碼生成能力將這兩個階段銜接。如圖5所示,使用者設定視覺化目標後,Data Formulator 首先會根據圖形介面中的輸入例項化圖形模板,並生成一段 Vega-Lite 程式碼。由於使用者輸入中包含了新的資料概念,Data Formulator 需要對資料進行轉換以建立視覺化。為此,它會將使用者的輸入轉換為大模型的提示詞,指導模型生成 Python 程式碼以轉換資料,滿足 Vega-Lite 程式碼的需求。

圖5:Data Formulator 架構示意圖
資料轉換完成後,Data Formulator 會將處理後的資料與視覺化程式碼結合,實現最終的視覺化效果。在使用者選擇基於先前視覺化進行迭代時,Data Formulator 則會利用原有程式碼生成新程式碼,從而減少程式碼生成過程中的不確定性,更有效地完成使用者任務。
在 Data Formulator 的研究中,研究員們致力於融合圖形化操作與 AI 的自然語言輸入,希望幫助使用者更有效地表達他們的視覺化目標。但隨著大模型的不斷進步,如何使使用者以簡潔而精確的方式傳達任務意圖變得尤為關鍵,這也是研究員們未來探索的方向之一。
歡迎大家來 GitHub Codespaces 中試用 Data Formulator 創作視覺化!
連結:
https://github.com/microsoft/data-formulator/blob/main/CODESPACES.md
開發者們可以在 Data Formulator 程式碼庫的基礎上開發新的功能。
Data Formulator 程式碼庫:
https://github.com/microsoft/data-formulator
想要了解更多 Data Formulator 背後的設計理念,請檢視論文:https://arxiv.org/abs/2408.16119
你也許還想看:
