記錄資料集與模型:資料規格表、資料宣告與模型卡
關於標註資料及其上所構建模型的三種標準文件框架的參考指南:每種框架涵蓋什麼、何時選用哪一種,以及可復現性報告如何將它們串聯起來。
三種文件標準已成為機器學習資料的慣例:資料宣告和資料規格表用於資料集本身,模型卡用於你在其上訓練出來的模型。它們大量重疊,若你希望資料受到信任並被複用,任何一種都不是可有可無的。本指南是一份參考,說明每種標準涵蓋什麼、何時該選用它。 若想以敘述方式一步步瞭解如何撰寫其中一種,請參閱配套文章記錄你的標註資料集;本頁是各標準之間的對比。
為什麼要用結構化文件,而不是 README
沒有文件的標註資料集會隨著時間變得很糟。半年之後,沒人能說清它是怎麼取樣的、由誰標註、某個標籤本應表示什麼,於是資料變成一個黑箱,人們要麼盲目信任它,要麼棄之不用。有兩種具體代價反覆出現:不可復現性(沒有采樣方法、指南版本和標註者群體,你既無法重建資料集,也無法解釋某處差異)和隱性偏差(來自一個未經記錄的狹窄群體的標籤,帶著在投入生產前始終看不見的盲點)。下面這些框架的存在,正是為了在這兩者中的任何一個引發問題之前,把誰和怎麼做講清楚。
三種標準
每種框架針對不同的產物和讀者,但它們被設計為彼此銜接。
資料宣告(Bender and Friedman, 2018) 是面向自然語言處理的專用模式。它刻畫一個語言資料集、整理理據、語言變體及其使用者、標註者的人口統計、指南以及預期用途,以便讀者判斷結果將如何泛化,以及資料對哪些人群代表不足。當資料是文本且語言變體很重要時,就選用資料宣告。
面向資料集的資料規格表(Gebru et al., 2021) 是通用版本,借鑑自電子行業——每個元件出廠時都附帶一份規格表。它就動機、構成、採集過程、預處理、推薦用途和維護提出一套標準問題。任何機器學習資料集,無論是否為文本,都可以使用資料規格表;它與資料宣告大量重疊,因此在語言資料集上,你實際上是在選擇圍繞哪一套問題來組織,而不是從頭把兩者都做一遍。
模型卡(Mitchell et al., 2019) 記錄的是模型而非資料:它的預期用途,以及尤為關鍵的一點——按人口統計等群體分解的效能,而不是籠統的單一彙總數字。模型卡正是公平性問題變得可見的地方。
這三者構成一條鏈。資料規格表或資料宣告記錄資料;模型卡記錄在其上構建出來的東西;而前者中標註者人口統計一節,恰恰是讓後者的分組評估變得可解釋的關鍵。把標註記錄清楚,你就已經在通往一份經得起推敲的模型卡的路上走了大半。
| 框架 | 記錄物件 | 最適用於 | 關鍵章節 |
|---|---|---|---|
| 資料宣告 | 一個語言資料集 | 自然語言處理 / 文本資料 | 整理理據、語言變體、使用者與標註者的人口統計、指南 |
| 資料規格表 | 任意機器學習資料集 | 一般機器學習資料 | 動機、構成、採集、用途、維護 |
| 模型卡 | 一個訓練好的模型 | 任意釋出的模型 | 預期用途、分組評估、侷限性 |
可復現性是第四條腿
文件與可復現性是同一目標的兩個角度。Pineau et al. (2021) 報告了 NeurIPS 的可復現性計劃,並將其提煉為一份可復現性檢查清單:報告確切的資料、採集與預處理步驟、評估設定,以及足以讓工作重新執行的細節。具體到一個標註項目,對可復現性至關重要的事實,正是資料規格表本就要問的那些:條目是如何取樣的、使用了哪個版本的指南、由誰標註,以及分歧是如何處理的。如果你能回答這些,那麼資料集既有文件又可復現;如果不能,那就是一個應在釋出之前而非之後補上的缺口。
一份釋出檢查清單
在釋出之前,確認你能回答:
- 條目是如何取樣的,來自何處?
- 這是哪種語言變體,源文本由誰撰寫?
- 由誰標註、有多少人,以及這個群體的人口統計構成如何?
- 他們遵循了哪些指南,哪個版本?
- 分歧是被彙總為一個金標籤,還是被保留為一個分佈?無論哪種,都要報告一致性。
- 這個資料集是做什麼用的,又不應用於什麼?
在 Potato 中的做法
一個數據集的大部分文件其實已經作為項目產物存在,所以你並非從一張白紙開始。配置檔案本身就是文件:YAML 記錄了標註方案、標籤集和任務結構,與資料一起納入版本控制,而你寫下的說明就是逐字逐句的指南章節。如果你執行過預研階段,標註者人口統計早已按標註者逐一儲存;把它們彙總成分佈,用於標註者人口統計一節。而匯出會在每個標籤上保留標註者和時間戳,於是來源資訊隨資料一同流轉,而不會被剝離:
{
"id": "doc_001",
"annotations": { "sentiment": "positive" },
"annotator": "user_1",
"timestamp": "2024-01-15T10:30:00Z"
}當你釋出到 Hub 時,把生成資料集卡作為匯出的最後一步,並用你已有的配置、指南和預研人口統計來填寫它的各個章節。
延伸閱讀
- 記錄你的標註資料集,帶有一份完整資料聲明範例的敘述式講解。
- 負責任地收集標註者人口統計,把標註者人口統計一節做好。
- 撰寫標註指南,它同時充當指南章節。
- 為機器學習匯出標註,乾淨地取出標籤與後設資料。