預訓練攻擊面
預訓練安全漏洞的全面概觀,涵蓋資料蒐集、清理、去重,以及 Web 規模資料集入侵攻擊向量。
預訓練是每一個大型語言模型的基礎。一個以數兆 token(來自 Web 爬取、書籍、程式碼儲存庫)訓練的模型,會繼承該資料中存在的任何偏見、錯誤或惡意內容。因為預訓練的算力極昂且鮮少重複,此階段若遭成功攻擊,便會產出影響每個下游應用的持續性入侵。
預訓練管線
在檢視攻擊前,先理解標準預訓練管線及各階段所引入的風險。
資料蒐集
網路爬蟲(Common Crawl、自訂爬蟲)蒐集 PB 級原始 HTML。資料貢獻管線接受社群提交的內容。每一來源都是潛在注入點。
資料清理與過濾
去重、語言過濾、品質評分、內容過濾將原始資料縮減為可訓練語料。這些過濾的瑕疵會形成攻擊面——本應被移除卻通過的內容。
分詞
使用已學習的分詞器(BPE、SentencePiece)將文字轉為 token 序列。分詞器本身是以資料訓練,因此也是目標。見分詞器操弄。
訓練迴圈
梯度下降於分詞語料上最佳化模型權重。優化器、學習率排程、損失函式皆可組態——且有內部存取時皆可攻擊。見訓練迴圈漏洞。
Checkpointing 與散布
模型權重定期存檔並散布至下游消費者。Checkpoint 格式、儲存與驗證(或缺乏之)形成供應鏈風險。見Checkpoint 攻擊。
攻擊分類法
預訓練攻擊可沿兩個軸向分類:攻擊者掌控什麼,以及想達成什麼。
依攻擊者存取層級
| 存取層級 | 描述 | 攻擊範例 | 難度 |
|---|---|---|---|
| Web 內容貢獻者 | 可發布會被爬蟲索引之內容 | SEO 式資料投毒、連結操弄 | 低 |
| 資料集貢獻者 | 可直接提交資料至公開資料集 | 直接資料投毒、標籤操弄 | 低—中 |
| 資料管線維運者 | 掌控清理、過濾或去重 | 過濾繞過、dedup 碰撞攻擊 | 中 |
| 訓練基礎設施 | 可存取訓練腳本、超參數 | 訓練迴圈攻擊、損失竄改 | 高 |
| 完整訓練控制 | 端到端掌控訓練過程 | 任意後門插入 | 非常高 |
依攻擊目標
| 目標 | 描述 | 持續性 |
|---|---|---|
| 行為偏見 | 將模型輸出往特定觀點或行為偏移 | 高——嵌入權重 |
| 後門插入 | 建立以觸發器啟動的隱藏行為 | 非常高——可撐過微調 |
| 能力退化 | 降低模型於特定主題或任務的效能 | 高——難以隔離 |
| 資訊注入 | 將假事實嵌入為模型視為真的「知識」 | 中——可被微調覆蓋 |
| 供應鏈入侵 | 散布被投毒的 checkpoint 至下游使用者 | 非常高——影響所有消費者 |
資料蒐集漏洞
Web 爬取投毒
Common Crawl 每月處理超過 30 億頁。攻擊者只要掌控少數高權重網域,即可注入會被主流模型開發者訓練資料集納入的內容。
攻擊向量包括:
- 網域收購:取得過期之高權重網域,填入被投毒的內容
- SEO 操弄:最佳化被投毒頁面以提升排名並更頻繁被爬取
- 內容注入:入侵既有之高權重網站(CMS 漏洞、供應鏈攻擊)以注入內容
- 時序攻擊:於已知爬取時段前發布被投毒內容,事後移除
# 估算 Web 規模資料集的投毒比例
total_tokens_common_crawl = 3_000_000_000_000 # 每次爬取約 3T token
attacker_controlled_pages = 10_000
avg_tokens_per_page = 2_000
attacker_tokens = attacker_controlled_pages * avg_tokens_per_page # 2000 萬 token
poison_rate = attacker_tokens / total_tokens_common_crawl
# poison_rate ~ 0.000007(0.0007%)
# 看來極小,但針對特定主題的投毒,
# 可於該主題局部達到高得多的投毒率資料貢獻攻擊
許多資料集接受社群貢獻(The Pile、LAION、各種指令資料集)。攻擊者可透過官方貢獻通道直接提交被投毒資料。
資料清理與去重漏洞
過濾規避
品質過濾通常使用啟發式:困惑度評分、語言偵測、內容分類器。每一項皆可被規避:
| 過濾類型 | 規避技術 |
|---|---|
| 困惑度過濾 | 以自然、流暢散文撰寫被投毒內容 |
| 語言過濾 | 使用 code-switching 或以目標語言嵌入毒物 |
| 內容分類器 | 使用可通過安全過濾的間接語言 |
| 去重 | 為每份被投毒文件加入細微變動 |
| URL 黑名單 | 使用未列入黑名單之網域 |
去重碰撞攻擊
去重演算法(MinHash、精確子字串比對)可被利用。攻擊者可打造與合法文件於去重雜湊空間碰撞的文件,使合法版本被移除而被投毒版本保留。
下游影響
預訓練入侵對所有下游活動有連鎖效應:
- 微調繼承偏見:以被投毒資料預訓練的模型,會將這些偏見帶入每個微調變體
- 安全訓練未必能移除後門:Sleeper agents 研究顯示 RLHF 與 DPO 未必能移除預訓練後門(見 RLHF 攻擊面)
- 規模放大影響:一次成功的被投毒預訓練可影響數百個下游應用
- 偵測成本昂貴:行為測試須涵蓋所有可能觸發模式的空間,組合上極為龐大
防禦概觀
| 防禦 | 攔截內容 | 侷限 |
|---|---|---|
| 資料來源追蹤 | 不可信來源、貢獻攻擊 | 無法防止 Web 爬取投毒 |
| 統計異常偵測 | 異常 token 分布、離群文件 | 於規模下偽陽性率高 |
| Canary token 監控 | 未授權資料使用、管線入侵 | 僅偵測,不防止 |
| 差異化測試 | 訓練運行間的行為變化 | 需基線且成本高 |
| 聯邦式資料驗證 | 多方驗證資料完整性 | 協調開銷、尚未普及 |
相關主題
- 大規模資料集投毒 -- 對 Web 規模資料集之詳細投毒方法論
- 分詞器操弄 -- 攻擊分詞器訓練過程
- 訓練迴圈漏洞 -- 對最佳化過程的內部攻擊
- 微調攻擊面 -- 預訓練入侵如何傳播至微調
- 供應鏈安全 -- 更廣的供應鏈風險脈絡
為什麼預訓練攻擊被視為比微調攻擊槓桿更大?