一筆樣本值多少?
問一個尖銳的問題:如果你移除這單一訓練點,效能會改變多少?有原則的答案是它的Shapley 值——與SHAP 特徵歸因背後相同的合作賽局概念,只是套用到資料點而非特徵。一個點的價值是它在所有可能加入之子集上、對模型效能的平均邊際貢獻。這唯一地滿足數個公平性公理:對稱性、虛擬玩家性與可加性。
数据 Shapley 值:一个样本的价值是它在其他所有样本组成的各种联盟中对性能的平均边际贡献。
代價是問題:精確值要對指數多的子集求和,每個都需重新訓練。實務上的資料 Shapley會用蒙地卡羅排列採樣、截斷(邊際增益消失就停)、或對 k-NN 等簡單模型用封閉式。負的 Shapley 值才是寶藏——它們標出傷害模型的點,通常是標錯或分布外的樣本,給你一份立基於效能、而非啟發式的移除清單。
影響函數:免重訓的估值
影響函數(influence functions)用最佳解的一階泰勒展開,在不重訓的情況下估計上調權重或移除某訓練點的效果。經典公式把測試損失的梯度乘上訓練損失的反 Hessian,再乘上該訓練點處的梯度。直覺上:對這個樣本的微小推動,如何透過損失的曲率傳播到某個特定預測。
# influence of training point z on test point z_test g_test = grad(loss(model, z_test), params) g_train = grad(loss(model, z), params) infl = - g_test @ Hinv @ g_train # Hinv via LiSSA / EK-FAC, never formed
训练样本 z 对测试损失的影响:两个梯度经逆 Hessian 加权后的内积,无需重新训练。
把歸因擴展到基礎模型
訓練資料歸因(training-data attribution,TDA)是這個總目標:把任何模型行為追溯到最該負責的樣本。對於十億參數的模型,精確 Shapley 與完整影響函數都無望,所以現代 TDA 改用更便宜的估計式——像 TracIn 這類梯度內積方法,把訓練梯度與查詢梯度在各檢查點上的一致性加總;或像 TRAK 這類隨機投影草圖,把逐樣本梯度壓成可處理的核。這些能規模化,也『夠好』到能浮現一個被記住的事實或某項意外能力背後的少數文件。
可扩展归因(TRAK 式):用随机矩阵 P 投影每个样本的梯度,再用廉价的低维内积打分。
歸因閉合了前幾篇的循環。如果某個事實錯了,TDA 找出被下毒或重複的來源;如果某類別脆弱,它顯示其支撐是單一群集還是多個;而去重讓這一切有意義,因為把功勞歸給一千份相同副本之一,等於什麼都沒告訴你。
偵測汙染
最具破壞性的歸因失敗是無聲的:某個基準洩漏進了預訓練,於是你回報的分數量到的是回憶、而非推理。資料汙染檢測(data contamination detection)用以下手段獵捕它:與已知測試集做 n-gram 重疊比對、成員推斷訊號(模型對逐字測試題異常自信或困惑度異常低),以及刻意預埋、稍後可被搜尋的金絲雀字串。
训练、验证、测试数据划分示意图,说明基准污染所破坏的那条分区边界。