これは以下の論文の公式リポジトリです:
DUP: 言語モデルにおけるバックドア除去のための検出誘導型アンラーニング
DUPは、特徴量ベースの異常検出とパラメータ効率の良いアンラーニングを組み合わせ、事前学習済み言語モデルからバックドアを除去する統合フレームワークを導入します。BERT、BART、LLaMA 3B、Qwen 3Bを含む、従来のPLMと現代のLLMの両方で有効です。
DUPフレームワークは以下の環境で実装・テストされています:
Python: 3.10
OS: Ubuntu 22.04
CUDA: 11.8
PyTorch: 2.1.2
Accelerate: 1.0.1
PEFT: 0.12.0
language-tool-python: 2.8.1
以下のモデルをダウンロードし、/victim_models ディレクトリに配置してください:
bert-base-uncasedbart-baseLLaMA-3.2-3B-InstructQwen2.5-3B汚染されたデータセットはすでに準備されており、/poison_data にあります
バックドア攻撃を実行するには:
python demo_attack.py
対応している攻撃:
このモジュールは、適応的な層選択を伴うマハラノビス距離とスペクトル署名スコアを用いて、汚染された入力を特定します。
python demo_detection.py
このモジュールは、検出に導かれたLoRAベースの蒸留を用いてバックドアを除去します:
python demo_unlearning.py
.
├── victim_models/ # Pretrained model weights
├── poison_data/ # poisoned datasets
├── openbackdoor/ # Core implementation of backdoor attacks and defenses
├── demo_attack.py # Backdoor attack scripts
├── demo_detection.py # Detection procedure
├── demo_unlearning.py # Unlearning procedure
└── README.md # Project documentation