大模型安全探討
成員推斷攻擊(Membership Inference Attack)
目標: 判斷某筆資料是否曾經出現在模型的訓練集中。
攻擊原理&手段
模型對於訓練過的資料會表現出「過度自信」——因為見過這筆資料,所以預測時損失更低、信心度更高。
攻擊者輸入一筆資料 x
↓
查詢模型輸出(機率分佈、損失值、logits)
↓
觀察信心度是否異常高?損失是否異常低?
↓
推斷:x 是否在訓練集中?

具體操作 [推理期]
-
Shadow Model 攻擊:
攻擊者訓練若干「影子模型」,其中一半使用包含目標資料的資料集,另一半不包含;用這些影子模型的行為訓練一個「成員分類器」,再拿去詢問目標模型。 -
Loss-based 攻擊:
直接計算模型對某筆資料的 cross-entropy loss,訓練資料的 loss 通常明顯低於非訓練資料。 -
信心度閾值攻擊:
若模型輸出 softmax 機率,訓練成員對其真實標籤的預測機率往往更高(例如 >0.95 vs ~0.6)。
訓練資料抽取攻擊(Training Data Extraction)
直接讓模型「吐出」訓練集中的原始文字/資料,而非僅判斷「有沒有」。
攻擊原理
大型語言模型本質上是在壓縮訓練資料。當某段文字在訓練集中重複出現或高度特殊時,模型會將其「記憶」下來,可以被特定 prompt 觸發而重現。
KV Cache 隔離 ≠ 訓練資料隔離
這是兩個完全不同層面的問題:
| -- | KV Cache 隔離 | 訓練資料殘留 |
|---|---|---|
| 發生時間 | 推理期(即時) | 訓練期(已完成) |
| 隔離方式 | 技術上可以做到完全隔離 | 無法「隔離」,只能不使用 |
| 風險性質 | 其他用戶即時讀取你的上下文 | 資訊被壓縮進模型權重永久殘留 |
關鍵問題:Business 用戶的資料有沒有被拿去訓練?
這才是核心。以 Anthropic 為例:
Claude.ai 免費版/Pro:Anthropic 預設可能使用對話資料改善模型(可opt-out)
API/Enterprise 方案:Anthropic 明確承諾不使用客戶資料訓練模型
嗯上面也是之前關於數據隱私的理解,當然這其中還有不少隱秘問題,下面是幾個必須厘清的訊息:
1. 基礎模型的預訓練痕跡
模型在預訓練階段吃了海量公開網路資料,如果你的資料本來就在網路上公開過,那它早就在模型裡了,跟你有沒有訂閱 Business 無關。
2. Fine-tuning 洩漏
如果廠商對 Business 客戶提供「用你的資料微調專屬模型」的服務,而你使用了這個功能,那微調後的模型就確實帶有你資料的痕跡,上述兩種攻擊就成立。
3. 承諾的可信度問題
這本質上是信任問題,而非技術問題。你無法從外部驗證廠商是否真的沒有把你的資料拿去訓練。
4. 間接推斷
即使資料沒被訓練,攻擊者仍可透過對話歷史洩漏(prompt injection、context leakage)等方式間接獲取資訊,這不屬於成員推斷攻擊,但危害同樣存在。