資料版本控制:讓每個分數都能追回當時的資料
程式碼有 git,資料常常只有一個資料夾叫 final_v3_new。這是最小可行的做法。
三個月後有人問「這個 91% 是用哪份資料跑的」,如果答不出來,那個分數就沒有意義。
最小可行方案
- 資料集目錄用日期+雜湊命名,永不覆寫。
- 每份資料集附一個
manifest.json,記錄來源、筆數、處理步驟、雜湊。 - 處理腳本進 git,並在 manifest 裡記下 commit id。
- 評測報告引用資料集雜湊,而不是路徑名稱。
{
"dataset": "ticket-cls",
"version": "2026-08-07",
"sha256": "9f2c…",
"rows": 4821,
"source": "prod_logs 2026-05-01..2026-07-31",
"pipeline": ["redact@v3", "[email protected]", "split@group-by-user"],
"code_commit": "a1b2c3d",
"notes": "移除 refund 類別中 132 筆標註分歧樣本"
}大檔案怎麼存
資料不要進 git。放物件儲存並在 git 裡只保留 manifest 與腳本。需要更完整的工具時再考慮專門的資料版控方案,但多數團隊 manifest 就夠用了。
雜湊怎麼算
# 對排序後的內容算雜湊,避免檔案順序造成差異
find data/ -type f -name '*.jsonl' | sort | xargs cat | sha256summanifest 裡的
notes 欄位最有價值。「為什麼刪掉那 132 筆」半年後只有這行字記得。