快速回答:Data Poisoning 是什麼?
Data Poisoning(資料投毒)是一種針對 AI 模型的攻擊方式。攻擊者在 AI 的訓練資料中混入精心設計的惡意資料,讓模型學到錯誤的模式,導致上線後在特定情況下做出錯誤的判斷。
用白話說:如果訓練 AI 辨識垃圾郵件的資料裡,被攻擊者偷偷加入大量「包含某個特定網域的信件都不是垃圾信」的範例,這個 AI 上線後就會讓來自那個網域的垃圾郵件通通放行。AI 本身沒有被入侵,它只是忠實地學會了「錯誤的知識」。
白話解釋:為什麼 AI 可以被「毒」?
AI 模型的能力完全來自訓練資料。你餵什麼進去,它就學什麼。這和傳統軟體不同——傳統軟體的行為由程式碼決定,你可以逐行檢查;但 AI 的行為由數百萬筆訓練資料共同決定,你很難用肉眼從資料集裡找出那些被污染的部分。
打個比方:傳統軟體像是一份明確的食譜,你可以檢查每一個步驟;AI 模型像是一個徒弟看了十萬份食譜之後悟出來的廚藝,如果那十萬份食譜裡有一百份故意把糖寫成鹽,徒弟做出來的菜就可能有問題,但你很難回頭去找出是哪一百份食譜造成的。
這個特性讓 Data Poisoning 特別危險:攻擊可以在訓練之前就已經發生,影響在模型上線後才會顯現,而且追蹤攻擊來源非常困難。
攻擊類型
標籤翻轉攻擊(Label Flipping)
最直接的攻擊方式。把訓練資料中某些樣本的標籤改掉。例如在詐騙偵測系統的訓練資料中,把一部分真正的詐騙交易標記成「正常交易」。模型學到這些錯誤標籤後,上線時就會漏掉類似模式的詐騙行為。
標籤翻轉通常不需要很大比例。研究顯示,在某些模型中只需要污染 3-5% 的訓練資料就能讓模型準確率下降到不可用的程度。如果攻擊者更精明,只針對特定類型的樣本翻轉標籤(而不是隨機翻轉),甚至 1% 以下的污染率就能達成特定的攻擊目標。
後門攻擊(Backdoor Attack / Trojan Attack)
更精巧的攻擊。攻擊者在訓練資料中植入帶有特定「觸發器」的樣本。模型在正常情況下表現完全正常,只有當輸入中出現觸發器時,才會做出攻擊者指定的錯誤行為。
例如在圖像辨識模型中,攻擊者在訓練圖片的右下角加上一個小像素點(人眼幾乎看不到),並把這些圖片的標籤設定成攻擊者想要的類別。模型上線後:一般的圖片都能正確分類,但只要圖片右下角出現那個小像素點,模型就會輸出攻擊者指定的結果。
後門攻擊的危險在於很難透過常規測試發現——因為模型在所有正常測試資料上的表現都是正確的,只有攻擊者知道觸發條件。
乾淨標籤攻擊(Clean-Label Attack)
最難偵測的攻擊類型。攻擊者不修改標籤(所有標籤都是正確的),而是對訓練資料本身做微小的修改(例如在圖片上加上人眼看不到的雜訊),讓模型在學習時產生偏差。
因為標籤是正確的,人工審查時看不出任何異常。這種攻擊需要攻擊者有較深的機器學習知識,能計算出怎樣的微小修改能最大程度地影響模型的決策邊界。
資料供應鏈攻擊
不直接修改訓練資料,而是攻擊資料的來源。常見的手法:
污染開放資料集。很多研究者和企業使用公開的資料集(如 Common Crawl、LAION、WikiText)來訓練或微調模型。攻擊者在這些開放平台上持續投入精心設計的內容,等著被收錄進資料集。
社群網站操控。如果你的 AI 模型使用社群媒體上的數據訓練(例如情感分析、趨勢偵測),攻擊者可以大量產生帶有特定偏向的發文,影響訓練資料的分佈。
維基百科和知識庫篡改。使用知識庫做 RAG(檢索增強生成)的系統,如果知識庫的內容被篡改,即使模型本身沒有被投毒,產出的結果一樣會是錯的。
第三方模型投毒。從 Hugging Face 等平台下載別人訓練好的模型來用(transfer learning),如果原始模型已經被植入後門,你微調後的模型可能仍然帶有那個後門。
具體案例場景
垃圾郵件過濾器
攻擊者長期用一般正常的信件使用某個特定的格式(例如特定的標題格式或寄件者命名方式),讓垃圾郵件過濾系統把這個格式學成「正常信件」的特徵。幾個月後,攻擊者開始用同樣的格式寄送詐騙郵件,過濾系統就會放行。
自動駕駛系統
在自動駕駛的物件偵測模型訓練資料中,混入對特定交通標誌做過微小修改的圖片,並標記為不同的類別。例如把停車標誌的訓練資料做手腳,讓車輛在某些光線條件下把停車標誌辨識成速限標誌。這不是科幻情節——MIT 的研究者已經展示過類似的攻擊在實驗條件下是可行的。
金融詐騙偵測
攻擊者進行大量小額的可疑交易但不觸發警報(金額都在監控閾值之下),這些交易被標記為「正常」進入訓練資料。系統重新訓練後,對這類交易模式的偵測靈敏度下降,攻擊者接著開始進行更大金額的詐騙交易。
大型語言模型
在 LLM 的微調資料中植入帶有偏見的回答。例如讓客服 AI 在被問到特定品牌時總是給出正面評價,或者在被問到某個特定主題時引導使用者到特定的網站。因為 LLM 的微調資料集通常很大,人工逐筆審查的成本很高。
偵測方法
統計分析
最基本的偵測方法。分析訓練資料的分佈是否有異常:
- 特徵分佈偏移。如果某個類別的資料在某個特徵上的分佈突然和歷史資料不同,可能是被污染了。
- 離群值偵測。使用 Isolation Forest、DBSCAN 等演算法找出訓練資料中的異常樣本。
- 標籤一致性檢查。找出與同類別其他樣本差異很大的資料點,它們的標籤可能被竄改了。
限制:只能抓到比較粗糙的攻擊,精心設計的乾淨標籤攻擊很難被統計方法發現。
模型行為分析
訓練完模型後,用測試資料觀察模型的行為:
- Activation Clustering。分析模型在處理不同輸入時的內部活化值(activations),被植入後門的模型在遇到觸發器時,內部活化值會和正常輸入有明顯不同的叢集模式。
- Neural Cleanse。嘗試對模型做逆向工程,找出最小的觸發器——如果某個類別只需要很小的擾動就能觸發,這個類別可能有後門。
- 影響函式(Influence Functions)。計算每筆訓練資料對模型最終行為的影響程度,影響異常大的樣本值得仔細檢查。
限制:這些方法的計算成本很高,對大型模型(例如幾十億參數的 LLM)來說目前仍然不太實用。
資料驗證流程
在訓練之前檢查資料品質:
- 來源可信度評估。標記每筆資料的來源,對來自不可信或匿名來源的資料做更嚴格的審查。
- 交叉驗證。用多個獨立的來源互相驗證資料的正確性。
- 人工抽樣審查。從每批新進的訓練資料中隨機抽樣,讓標註人員檢查標籤的正確性。
限制:人工審查的速度跟不上資料量的成長,只能做抽樣。
防範策略
資料治理
建立訓練資料的管控流程。記錄每筆資料的來源、收集時間、標註者。限制能存取和修改訓練資料的人員,並記錄所有存取行為。對訓練資料做版本控制,能追蹤任何時間點的變更。
定期執行資料品質審計,檢查新加入的資料和既有資料之間的一致性。
技術防禦
資料清洗(Data Sanitization)。在訓練前對資料做清洗,移除或修正明顯異常的樣本。但要注意不能太激進地清洗——過度清洗會移除正常的邊界案例(edge cases),降低模型在罕見情況下的處理能力。
差分隱私(Differential Privacy)。在訓練過程中加入雜訊,降低單筆訓練資料對模型的影響力。效果是:攻擊者需要污染更大比例的資料才能達成攻擊目標,增加攻擊成本。副作用是模型的準確率會因為加入雜訊而略為下降。
魯棒性訓練(Robust Training)。使用對抗性訓練(adversarial training)等技術,讓模型對異常輸入有更好的抵抗力。這不能完全防止投毒,但可以提高模型的魯棒性。
集成模型(Ensemble Methods)。用多個獨立的模型投票決定結果。即使其中一個模型被投毒,只要多數模型是正常的,整體結果仍然正確。缺點是計算成本倍增。
持續監控
模型上線後的持續監控同樣重要。監控模型在各類別上的準確率和信心度變化。比較模型在新資料上的預測分佈和預期分佈是否一致。設定異常警報,當模型的行為偏離基準值時通知維運人員。
建立模型重新訓練的流程,當偵測到模型行為異常時,能用可信的資料子集快速重新訓練一個乾淨的模型替代。
對台灣企業的影響
如果你的企業正在導入 AI 服務,Data Poisoning 的風險取決於你怎麼使用 AI。
使用第三方 AI API(例如 ChatGPT、Claude)。你沒有控制訓練資料的權力,所以你能做的是驗證 AI 的輸出品質——建立輸出品質的基準線,定期測試 AI 的回答是否仍然符合預期。
自己訓練或微調模型。你的訓練資料來源、儲存和存取方式是防禦重點。如果訓練資料包含使用者產生的內容(UGC),要特別注意有沒有被系統性地污染。
使用 RAG 系統。你的知識庫就是你的「訓練資料」。確保知識庫的內容有版本控制和存取記錄,定期檢查有沒有被未授權地修改。
台灣的金融、醫療等受監管產業,在導入 AI 時需要特別注意資料品質管控的法遵要求。金管會的 AI 指引中就有提到模型的訓練資料品質和可追溯性的要求。
安全考量
Data Poisoning 的防禦不是一次性的工作,而是持續的流程。對企業來說,最務實的做法是:
第一,對所有使用 AI 做決策的系統,建立定期的輸出品質測試,用一組固定的測試案例監控模型行為是否漂移(drift)。
第二,如果你自己訓練模型,建立資料來源白名單制度,優先使用可信的資料來源,對新加入的資料源做嚴格的品質審查。
第三,不要只依賴單一模型做關鍵決策。在安全敏感的場景(例如金融風控、醫療診斷輔助)中,用多模型投票或人工複核作為安全網。
第四,定期關注 AI 安全領域的研究進展,攻擊和防禦技術都在快速演進中。
常見問題
一般使用者需要擔心 Data Poisoning 嗎?
如果你只是使用 ChatGPT、Claude 等大型 AI 服務,投毒風險主要由服務商來管控,你個人能做的有限。但你應該意識到:AI 的回答不保證正確,不要盲目信任 AI 在安全敏感領域(醫療、法律、財務)的輸出。養成 fact-checking 的習慣。
Data Poisoning 和 Prompt Injection 有什麼不同?
這是兩種不同層級的攻擊。Data Poisoning 攻擊的是模型的訓練資料,影響的是模型學到的「知識」,效果是永久性的(直到模型被重新訓練)。Prompt Injection 攻擊的是模型的使用方式,在使用者的輸入中夾帶惡意指令,效果是暫時性的(只影響當次回答)。簡單說:Data Poisoning 改變的是 AI 的「腦」,Prompt Injection 操控的是 AI 的「耳朵」。
怎麼知道下載的開源模型有沒有被投毒?
很難百分之百確定。但可以降低風險的做法:優先使用知名機構發布的模型(如 Meta 的 Llama、Google 的 Gemma);檢查模型的 Model Card 裡有沒有記載訓練資料來源和評估結果;用你自己的測試資料集跑一次完整的評估,看結果是否符合預期;避免使用匿名帳號上傳到 Hugging Face 的模型。
2026 年 Data Poisoning 的風險比以前更高嗎?
是的,有幾個原因。第一,使用 AI 做決策的系統比以前更多,攻擊的價值更高。第二,RAG 和知識庫的普及讓攻擊面擴大——攻擊者不需要碰到訓練資料,只需要污染知識庫。第三,AI 供應鏈(開源模型、共享資料集)的使用越來越普遍,一個被投毒的基礎模型可能影響上千個下游應用。
企業導入 AI 時應該怎麼評估 Data Poisoning 風險?
從三個面向評估:一,你的 AI 系統用來做什麼決策?如果是客服推薦商品,被投毒的後果可能是推薦錯誤的商品;如果是金融風控,後果可能是放過詐騙交易。根據決策的嚴重度決定防禦投資。二,你的訓練資料從哪裡來?來源越開放、越多元,被污染的風險越高。三,你有沒有監控模型行為的機制?能不能在模型行為異常時及時發現和應對?
延伸閱讀
- Prompt Injection 是什麼?一句話駭入 AI 的攻擊手法(what-is-prompt-injection)
- AI Alignment 是什麼?讓 AI 和人類目標對齊(what-is-ai-alignment)
- Model Evaluation 是什麼?如何評估 AI 模型表現(what-is-model-evaluation)