データポイズニングとは
Data Poisoning
学習データに悪意あるデータを混入させ、モデルの挙動を意図的に歪ませる攻撃手法
ひとことで言うと
学習データにわざと悪いデータを混ぜて、AIの動きを狂わせる攻撃。
概要
データポイズニング(Data Poisoning)とは、機械学習モデルの学習データに悪意のあるデータを混入させることで、モデルの挙動を攻撃者の意図する方向へ歪ませる攻撃手法。 特定の入力パターンに対してのみ異常な出力をする「バックドア」を埋め込む、モデル全体の精度を落とす、特定の意見やバイアスを学習させる等、様々な目的で行われうる。 Web上のデータを大規模にクロールして事前学習するLLMは、学習データの出所や内容を全て検証しきれないため、この種の攻撃に対して脆弱性を抱えやすいとされる。 対策として、学習データの出所を検証する、信頼できるデータソースに絞り込む、異常なパターンを検出してフィルタリングするといった手法が用いられる。 ただし大規模データセット全体をすべて検証するのは現実的に難しい。
背景
LLMは、インターネット上の大量のテキストを収集して事前学習される。 学習データの収集過程では、攻撃者が意図的に汚染したデータを混入させる余地があり、この学習データの信頼性という観点から、データポイズニングはモデルの安全性を脅かすリスクとして認識されるようになった。
アーキテクチャ
攻撃者は、モデルが学習に利用しそうなWebページやデータセットへ、特定のトリガーとなる文字列と結びついた誤った情報や有害な出力パターンを含むデータを紛れ込ませる。 モデルがこのデータを学習に取り込むと、通常時は問題なく動作しつつ、トリガーとなる入力を与えられたときだけ異常な挙動を示す「バックドア」を埋め込まれることがある。
欠点
- 学習後にモデル内部から汚染の有無を検出するのは難しい
- Web由来の大規模な学習データセット全体を人手で検証することは非現実的で、根本的な防止が難しい
比較
- ファインチューニング — データポイズニングは、事前学習だけでなくファインチューニング用のデータセットに対しても行われうる
- コーパス — データポイズニングは、学習に使われるコーパスの信頼性を脅かす攻撃
- アライメント — データポイズニングは、アライメントの前提となる学習データの健全性を損なうリスクの1つ
関連用語
よくある質問
データポイズニングはどう防ぐ?
学習データの出所の検証、重複や異常なパターンの検出、学習後のモデルに対する挙動テスト等を組み合わせて対策するのが一般的だが、大規模なWebデータ全体をくまなく検証することは難しいとされる。
参考文献
- Research PaperPoisoning Web-Scale Training Datasets is Practical