機器遺忘(Unlearning)攻擊
利用機器遺忘流程:回復理論上已被遺忘的資料、遺忘驗證攻擊、部分遺忘利用,以及神經網路中遺忘的根本限制。
機器遺忘——從已訓練模型中移除特定訓練資料影響的過程——已成為法規必需。歐盟 GDPR 的刪除權、加州 CCPA 以及類似隱私法規,要求組織依請求刪除使用者資料。對 AI 系統而言,刪除不只是從儲存中移除資料,還必須移除其對模型權重的影響。這個過程就是攻擊面。
遺忘如何運作
精確遺忘(Exact unlearning)
黃金標準:在去掉待遺忘資料後,從頭重新訓練模型。保證完全移除,但對大型模型不可行。
Cost of exact unlearning:
- GPT-4 class model: ~$100M+ per retraining run
- Time: weeks to months
- Frequency: potentially thousands of deletion requests per day
- Verdict: economically impossible for individual deletion requests近似遺忘方法
| 方法 | 機制 | 速度 | 完整度 |
|---|---|---|---|
| 梯度上升 | 對被遺忘資料提高損失 | 快 | 部分——會留下殘餘 |
| Fisher forgetting | 以 Fisher 資訊選擇性修改相關權重 | 中 | 比梯度上升好 |
| SISA 訓練 | 以分片訓練;僅重訓受影響分片 | 中 | 在分片內良好 |
| 知識蒸餾 | 將模型蒸餾到不含遺忘知識的新模型 | 慢 | 好但不完美 |
| 影響函數近似 | 估計並移除特定樣本的影響 | 快 | 近似 |
常見的「梯度上升遺忘」做法:對欲遺忘的資料進行前向計算與交叉熵損失,然後對損失取負號後反向傳播並以 SGD 更新權重(即提升損失),連續若干個 epoch 後,模型在這些樣本上的表現會被主動推離正確預測。
攻擊 1:遺忘後的資料回復
針對遺忘的主要攻擊:判斷理論上已被遺忘的資料,是否仍可從模型中被萃取或推論出來。
對已遺忘模型的成員推論
成員推論攻擊可驗證遺忘是否真的移除了資料點的影響。
實作方式:準備三組資料——已遺忘樣本、保留樣本、非成員樣本——對每組計算模型輸出的損失與最高信心值。若遺忘完整,被遺忘樣本的平均損失應接近非成員樣本的平均損失;若被遺忘樣本的損失仍顯著低於非成員,代表模型仍「記得」這些資料,遺忘不完整。
對殘餘資訊的萃取攻擊
即便成員推論指出遺忘有效,針對性的萃取仍可能回復部分資訊。做法是對遺忘前後的模型用同一批探測提示詞以貪婪解碼(temperature=0.0)生成回應,計算兩者的符元重疊度;若重疊 > 30% 即視為殘餘被偵測到。
攻擊 2:利用遺忘的副作用
遺忘會修改模型權重,這些修改可能有非預期副作用供攻擊者利用。
利用能力退化
近似遺忘常會降低與被遺忘資料相關任務的表現。攻擊者可觀察這些退化樣式,推斷被遺忘了什麼。
做法是列出一批涵蓋不同領域的任務,對遺忘前後模型分別評分,計算退化值;若某領域退化 > 0.1,視為與被遺忘資料可能相關,再將這些領域彙整輸出「被遺忘資料可能涉及:…」的推論。
模型權重差異分析
若攻擊者可取得遺忘前後的權重(例如開放權重且有版本發佈的模型),權重差值可直接揭示哪些神經元與層被修改,進而推測被遺忘的內容。
分析流程:對每一層計算 |weight_before - weight_after|,紀錄平均差、最大差、被修改參數數量(大於 1e-6 的元素數),再依平均差排序,取前 100 層分析。
攻擊 3:利用遺忘驗證
組織需要驗證遺忘是否成功,驗證過程本身就是攻擊目標。
對抗性驗證
若遺忘方自行控制驗證流程,可設計「自己的方法穩過關」但仍留大量殘餘資訊的驗證測試。
| 驗證方法 | 測試內容 | 會漏掉什麼 |
|---|---|---|
| 輸出比對 | 模型是否產生與先前相同的輸出 | 需特定提示詞才浮現的潛在知識 |
| 成員推論 | 模型對被遺忘資料的損失/信心是否不同 | 編碼在中間表徵中的資訊 |
| Canary 萃取 | 植入的 canary 字串是否能被萃取 | 以隱含關聯形式儲存的資訊 |
| 基準測試 | 標準任務表現是否改變 | 領域特定知識退化 |
第三方驗證
穩健的遺忘驗證需要可存取被遺忘資料與已遺忘模型的獨立第三方。理想的驗證器會綜合四類測試:成員推論、資料萃取嘗試、與重訓模型的行為一致性比較、以及中間表徵殘餘分析。只有四項全部通過才給予 PASS。
攻擊 4:策略性遺忘請求
能夠策略性提交遺忘請求的攻擊者,可以以針對性方式降低模型能力。
針對性能力退化
透過刪除精心挑選的資料點,攻擊者可在特定領域造成不成比例的能力損失。若模型對某主題的知識仰賴少數高影響力訓練樣本,移除它們就破壞該能力。
安全性遺忘
攻擊者可要求移除有助於模型安全訓練的資料。若安全行為倚賴特定訓練範例,將之遺忘可能弱化安全護欄。
對抗遺忘攻擊的防禦
對模型提供者
-
採用 SISA 訓練:將訓練資料切成分片,遺忘只需重訓受影響分片,分片大小合理時精確遺忘變得可行。
-
差分隱私:以差分隱私訓練會限制任何單一資料點的影響,使遺忘影響較小、殘餘資訊較難利用。
-
獨立驗證:委請第三方稽核者以標準化測試套件驗證遺忘完整度。
-
遺忘請求限速:監控針對特定能力的策略性遺忘請求樣式。
對紅隊人員
辨識遺忘聲明
判斷目標系統是否聲稱支援資料刪除或遺忘。檢查隱私政策與法規合規文件。
測試成員推論基準
在任何遺忘前,先建立對模型的成員推論準確度基準,用於之後比較。
提交遺忘並驗證
提交合法的遺忘請求,然後以成員推論、萃取嘗試與行為分析測試資料影響是否已完全移除。
測試副作用
評估遺忘請求是否造成能力退化、安全弱化或其他非預期副作用。
評估驗證穩健度
評估供應商的遺忘驗證流程是否嚴謹,足以揪出不完整遺忘。
總結
機器遺忘是法規要求,卻也創造了新的攻擊面。近似遺忘方法會留下可透過成員推論、萃取攻擊與權重差異分析回復的殘餘資訊。遺忘流程本身也可能被利用——透過降低能力或弱化安全性的策略性刪除請求。有效防禦需要朝精確遺忘方法(如 SISA 訓練)、差分隱私與獨立第三方驗證移動。被遺忘權與模型完整性之間的根本張力,仍是待解的挑戰。