真正能預測微調結果的資料品質指標
並非所有資料品質指標都同等重要。以下是 7 個實際上與模型性能相關的指標——以及那些只是雜訊的指標。
企業資料團隊追蹤關於訓練資料的幾十個指標。資料集大小。完整性百分比。每個類別的標籤數量。平均文件長度。總標注小時數。長達 15 頁的覆蓋率報告。
然而,當微調的模型表現不佳時,這些指標幾乎沒有提供診斷價值。資料集在紙面上看起來很棒。模型在實際中表現平庸。
問題不是缺乏測量——而是測量了錯誤的東西。大多數資料品質指標是描述性的(它們告訴您資料看起來是什麼樣的),而非預測性的(它們告訴您模型將如何表現)。在分析了數百次微調運行的訓練結果之後,我們確定了 7 個實際上與模型性能相關的指標——以及幾個不相關的流行指標。
7 個預測微調成功的指標
1. 標籤一致性(標注者間一致率)
測量內容: 當兩名合格的標注者獨立標注同一示例時,他們的一致率是多少?
為什麼能預測結果: 不一致的標籤教導模型矛盾的模式。如果相同的輸入根據哪個標注者標注它而映射到不同的輸出,模型學習到一種平均的、不確定的表示,對所有變體都表現不佳。
目標: 分類任務的 Cohen's kappa 高於 0.85。對於生成任務,測量標注者參考輸出之間的 ROUGE-L 高於 0.80。
如何測量: 讓您 10% 到 15% 的資料集由兩名獨立標注者標注。計算重疊集上的一致率。這不是可選的——它是微調結果中最具預測性的單一指標。
當它低時該怎麼做: 不要添加更多資料。修復標記指南。低一致率幾乎總是表明指南不明確,而非標注者不稱職。識別標注者不同意的特定類別或輸出模式,澄清這些案例的指南,並重新標記有爭議的示例。
我們合作的一個團隊在有 12 個類別的文件分類任務上的 kappa 為 0.72。他們發現 3 個類別的定義有重疊。在合併為 10 個有更清晰邊界的類別之後,kappa 跳升到 0.91,模型準確率提高了 11 個百分點——沒有添加任何新示例。
2. 類別分佈平衡
測量內容: 每個輸出類別或類別中示例的比例。
為什麼能預測結果: 極端的類別不平衡導致模型默認使用多數類別。如果您的示例中有 85% 是「標準合約條款」,3% 是「罰款條款」,模型學會幾乎永遠不預測「罰款條款」——這恰恰是您最需要它正確識別的類別。
目標: 沒有類別應少於總資料集的 5%。理想情況下,最大和最小類別之間的比率應低於 10:1。
如何測量: 按類別簡單計算標籤頻率。以直方圖可視化,快速發現不平衡。
當它低時該怎麼做: 三個選項,按優先順序:1)收集更多代表性不足的類別的示例。2)對代表性過多的類別進行欠採樣(刪除冗餘示例,而非隨機示例)。3)最後使用類別加權損失作為訓練中的最後手段。
請注意,完美平衡不是目標。如果您的生產資料是 60/40 分佈,您的訓練資料應大致反映該分佈。問題是極端不平衡——95/5 或更糟——模型從不學習如何處理少數類別。
3. 輸入長度分佈
測量內容: 訓練示例中輸入長度(以 token 計)的分佈與預期生產分佈的比較。
為什麼能預測結果: 在 200 token 輸入上微調的模型在推理時難以處理 2,000 token 的輸入。如果您的訓練資料全是短示例,但生產輸入是長文件,模型從未學會處理較長的上下文。
目標: 訓練資料輸入長度分佈應在一個標準差內匹配預期的生產分佈。具體來說,訓練中長度的第 10 和第 90 百分位應涵蓋生產中長度的第 10 和第 90 百分位。
如何測量: 對所有訓練輸入和生產輸入(或樣本)進行分詞。使用直方圖疊加或 Kolmogorov-Smirnov 檢驗比較分佈。
當它低時該怎麼做: 添加代表性不足的長度的示例。如果生產環境將看到 500 到 3,000 token 的輸入,但您的訓練資料集中在 300 到 800 token,您特別需要 1,500 到 3,000 token 範圍內的示例。合成增強(將較短的示例組合成較長的示例)如果謹慎進行是有效的,但專家生成的長示例更好。
4. 輸出格式合規性
測量內容: 輸出完全匹配預期輸出架構或格式的訓練示例百分比。
為什麼能預測結果: 如果您的模型應輸出有特定欄位的 JSON,但您的 8% 訓練示例有缺失欄位、多餘欄位或格式錯誤的 JSON,模型學會偶爾生成格式錯誤的輸出。那 8% 的訓練雜訊直接轉化為生產錯誤。
目標: 100%。這是目標是絕對的唯一指標。每個訓練示例都必須有格式正確的輸出。
如何測量: 編寫架構驗證器(JSON Schema、Pydantic 模型或正則表達式模式),並對每個訓練 示例運行它。統計失敗次數。
當它低時該怎麼做: 修復不合規的示例。這不是可選的——格式合規性問題是最容易檢測的品質問題,也是忽視後最具破壞性的。自動驗證器捕獲大多數格式問題;剩餘的需要手動更正。
5. 去重複比率
測量內容: 資料集中近似重複示例的百分比。
為什麼能預測結果: 近似重複(餘弦相似度高於 0.95)導致模型對這些特定模式過度擬合。如果同一個客戶投訴以輕微改寫的形式出現 15 次,模型記憶了那個投訴,而不是學習一般模式。在推理時,它能很好地處理類似的投訴,但對任何略有不同的投訴都會失敗。
目標: 近似重複低於 3%。對於小型資料集(1,000 個示例以下),即使是 3% 也太高了——目標是低於 1%。
如何測量: 使用句子嵌入模型(例如 all-MiniLM-L6-v2)嵌入所有示例,計算成對餘弦相似度,並標記高於 0.95 的對。精確去重複(相同字符串)是最低要求;近似去重複捕獲改寫和重新格式化的重複。
當它低時該怎麼做: 刪除重複,保留品質最高的版本。對於兩個版本都有價值的近似重複,保留一個,並重新措辭另一個,以涵蓋同一主題的不同方面。
6. 領域覆蓋
測量內容: 您的訓練示例是否涵蓋模型在生產中將遇到的全範圍輸入。
為什麼能預測結果: 僅在商業租約上訓練的模型將在住宅租約上失敗,儘管兩者都是「租約」。如果您的生產用例涵蓋 8 種文件子類型,但您的訓練資料涵蓋 5 種,模型就有三個盲點。
目標: 每個領域子類別至少有 5 個示例,沒有任何生產子類別完全缺失。對於高風險應用,每個子類別 20 個以上示例。
如何測量: 定義模型在生產中將處理的輸入類型分類法。將每個訓練示例映射到其子類別。識別差距。這需要領域專業知識——ML 工程師無法為醫療記錄或建築規格定義分類法。
當它低時該怎麼做: 優先收集未覆蓋子類別的示例。即使對於缺失的子類別有 5 到 10 個示例,也比零示例大幅提高了該子類別的性能。
7. 邊緣案例表示
測量內容: 罕見但重要的場景是否在訓練資料中明確表示。
為什麼能預測結果: 邊緣案例在生產中的重要性不成比例。標準的 90% 案例很容易——模型可能無論如何都能處理它們。決定模型是否適合生產的是不尋常的 10%——具有非標準條款排序的合約、具有衝突診斷的醫療記錄、具有重述數字的財務報表。
目標: 每個識別的邊緣案例類別至少有 3 到 5 個示例。識別的邊緣案例應代表總資料集的 10% 到 15%。
如何測量: 與領域專家進行邊緣案例研討。問:「需要謹慎處理的不尋常情況有哪些?」記錄每種邊緣案例類型,並驗證它在訓練資料中有所表示。
當它低時該怎麼做: 邊緣案例從定義上說在實際中很罕見。您可能需要創建合成示例或專門尋找邊緣案例文件。這是合成資料生成真正增加價值的一個領域——生成已知邊緣案例的變體以增加表示。