CMU攜手NUS、復旦推出DataLab:打造文本領域數據分析處理Matlab
建立以數據為中心的人工智能已經成為一個正在到來的趨勢。一年多前,吳恩達開始發起的一項主題為「數據是人工智能的食物」運動。數月前,谷歌 AI 負責人 Jeff Dean 將數據的分析和管理列為 2021 年后機器學習的一大趨勢。不久前,AI 明星創業公司 Huggingface 宣布開始建立可交互的數據分析平臺計劃。
近日,CMU 聯合 NUS、復旦、耶魯等高校發布了 DataLab:面向文本數據的統一數據分析、處理、診斷和可視化平臺。
- 論文鏈接:https://arxiv.org/pdf/2202.12875.pdf
- 平臺訪問:http://datalab.nlpedia.ai/
- SDK 地址:https://github.com/ExpressAI/DataLab
- 文檔地址:https://expressai.github.io/DataLab/
根據公布的技術文檔,我們看到 DataLab 的產生背景源于以下這樣一個問題:
「如果 Matlab 統一了『數值』計算和分析,那么誰來扮演『數據』處理和分析統一的角色?」
比起「數值」,數據的復雜性表現在它往往有著不同的模態,不同的結構,不同的處理操作。這些種種因素使得對數據存儲以及操作標準化變得困難,更不用說建立統一的數據分析平臺。
所以即使現在做到比較好的 TensorFlow (TFDS)[1] 以及 HuggingFace (HFDS)[2] 的數據集平臺,它們也只是完成了標準化數據載入這一件事情;即使集結了幾十家高校上百名研究員完成的 Xl-Augmenter 平臺,也只是嘗試標注化數據增強;即使 Sorkel 聯手 HuggingFace, Stanford 等機構提出了 PromptSource [3],也只是嘗試標準化數據提示 (Data Prompting) 這一個操作。
這些不同數據操作平臺的構建都非常有價值,然而平臺之間切換的代價仍然存在,這里應該有個「平臺的平臺」的概念,以數據為中心,實現各種不同操作接口的標準化,使得用戶以后在數據處理上只需要有一個入口,而這就是 DataLab 期待扮演的角色。
研究團隊前段時間剛提出以 Prompt Engineering 為核心的 NLP 發展第四范式。那接下來讓我們看看 DataLab 具體在做什么,以及對 Prompt Engineering 會不會也有些幫助?下圖 1 為 DATALAB 功能概述。
DataLab 的特性如下:
- 覆蓋廣:DataLab 目前覆蓋大部分 NLP 任務,包含 1700 多個數據集以及 3500 多個通過數據變形獲得的數據集;
- 可理解性:DataLab 為許多數據集 (728 個數據集,139,570,057 個樣本) 定制能夠刻畫數據集的特征(例如性別偏見)并進行計算,它可以幫助研究人員和開發人員在使用數據集之前更好地理解數據集,并幫助數據創建者提高數據質量 (例如消除 artifacts、偏見等);
- 統一性:DataLab 的主要目標之一是將不同的數據分析和處理操作統一到一個平臺和 SDK 中;
- 可交互性:DataLab 使得數據查看、評估和處理更高效方便地完成 (實時搜索、對比、過濾、生成數據集診斷報告)。DataLab 也可以作為現成的標注平臺,用戶可以在這里貢獻一些缺失但重要的可眾包信息;
- 啟發性:DataLab 對數據集的全局視角可以激發新的研究方向,比如通過跟蹤數據集的全球發展狀況,并確定未來的發展方向。
1. 數據的特性細粒度分析
細粒度分析指的是,我們從多個不同的角度去認識一個數據集的特性。下圖 2 為 SST 數據集(自然語言處理中關于情感分析的流行數據集)中的樣本按照不同文本長度劃分的分布圖。
圖 2:SST 數據集的樣本按照不同文本長度劃分的統計分布圖
使用 DataLab,用戶可以選擇任意支持的分析角度,實現一鍵化操作。DataLab 還支持數據集級別的整體分析,歡迎登錄網站試玩。
2. 數據集中存在的 「偏見」
DataLab 可以幫助用戶一鍵化地識別數據集中的「偏見」。目前支持三種分析:
- 性別偏見
- 仇恨言論
- artifacts
如下圖 3 所示,我們利用 DataLab 可以很容易發現這個有名的數據集(SST2)中存在明顯的性別偏見問題:
圖 3:SST2 數據集的性別偏見分布
再比如,利用 DataLab,我們容易復現 Gururangan et al.[4] 在 SNLI 數據集(自然語言處理中關于兩個句子關系推理流行的數據集)上發現的一個很有名的 artifact 現象:hypothesis 越長的句對 (premise-hypothesis) 通常是「neutral」關系,如下圖 4 所示。
圖 4:SNLI 數據集的 artifact 現象
3. Prompt 的分析
Prompt Learning 已經得到了相當多的關注,因為它能更好地利用預訓練的語言模型中有利于許多 NLP 任務的知識。在實際應用中,什么是好的「Prompt」是一個具有挑戰性的問題。下圖 5 為DataLab 定義 Prompt 的一個例子。
(a)Prompt的定義
(b)屬性;(c)同一個數據集Prompts在不同PLM上的結果
DataLab 目前不但支持了 3000 多個已經設計好的 Prompt(包含 PromptSources 公布的 2000 多個),覆蓋了上百個數據集,并且為 Prompt 設計了一個模式,使得每一個 Prompt 可以被許多不同的角度刻畫。圖 5 為 DataLab 定義的 Prompt 例子,包括 Prompt 的特征 (如長度、形狀等)、屬性 (如模板、答案等)、支持的預訓練語言模型,以及它在不同的預訓練語言模型的結果(圖 5 下右)。該設計不僅可以幫助研究者更好地設計 Prompt,還可以分析什么是好的 Prompt。
4. 對比兩個數據集差異
在做研究時,了解兩個數據集之間的詳細差異在很多方面都很重要,例如,它可以幫助我們解釋模型訓練在不同數據集上的不同行為。然而,分析它們的差異是一項繁瑣的工作,通常需要設計不同的特征并且在不同的數據集上去計算。DataLab 將這一過程自動化,并幫助研究人員以非常方便的方式進行兩兩數據集分析。
我們選取了兩個文本摘要的數據集進行測試, 然后會得到關于這兩個數據集全方面的比較,如下雷達圖,兩個數據集各自特點可以清晰的被刻畫。
5. 數據集推薦
我們常常有個好的 idea,卻不清楚應該選用哪些合適的數據集,隨著越來越多的數據集被提出,如何為給定的應用選擇正確的數據集變得更加困難。
DataLab 嘗試在這方面提供些幫助。具體說來,給定一個研究想法的描述,DataLab 可以根據語義搜索出比較適配的數據集,并且給出排序得分。我們用一個例子測試對比了下 DataLab 和 Google Dataset Search:我們發現前者可以比較精準地找到一個符合描述的數據集,而 Google Dataset Search 直接失效。
下圖 6:DataLab 和 Google Dataset Search 對于同一個學術 idea 而推薦的數據集。
(a) DataLab 為給定的 idea 而推薦的數據集的結果頁面。
(b)Google Dataset Search 為給定的 idea 的搜索結果(沒有結果返回)
6. 全球視野分析
(1)語言地圖
語言地圖是用來從地理的角度分析哪些語言研究得多,哪些語言研究得少,從而告訴我們未來應該更關注構建哪些語言的數據集。
如下圖 7,顏色越紅表示該國語言的數據集被研究得越多。我們可以很容易看出哪些國家語言的數據集很豐富(紅色),相比而言,中文數據集是相對匱乏(橙色)。
(2)NLP 模型誰家強?
以數據集為單位,根據依賴其實現模型性能的排序,以及對應的實現機構,我們可以對不同機構設計的 NLP 系統的性能上進行排序,并且判斷不同機構更擅長的 NLP 任務,如下圖 8 所示。
圖 8:全球機構在 NLP 系統性能上的排名
未來展望
我們希望平臺的統一可以讓集體智慧更容易發揮作用。未來,DataLab 將繼續向多個方向擴展:
- 探索并包含更多不同的數據類型。目前,DataLab 僅包含文本類型的數據集,隨著進一步優化,DataLab 將逐漸支持其他領域不同類型的數據集,例如圖像、多模態和聲音等;
- 擴展更多的操作。目前,DataLab 包含的操作有預處理、prompting、數據編輯等操作。隨著引入不同任務的系統,DataLab 有望探索系統組合等技術,實現高精度的自動數據標注,從而一定程度上為用戶減少數據標注的成本;
- 促進該領域更好的進步。不同平臺的統一能夠讓用戶快速找到相關數據集(數據集推薦),定位合適的數據集(數據可理解性),快速進行數據的處理(預處理、prompting 等),從而一定程度上讓學術研究更容易。