
Cadre de recherche pour détecter et supprimer les portes dérobées dans les modèles de langage, combinant la détection d'anomalies basée sur les caractéristiques avec le désapprentissage basé sur LoRA pour BERT, BART, LLaMA et Qwen.
Ceci est le dépôt officiel de l'article :
DUP: Detection-guided Unlearning for Backdoor Purification in Language Models
DUP introduit un cadre unifié qui combine une détection d'anomalies basée sur les caractéristiques avec un désapprentissage à paramètres efficaces pour éliminer les portes dérobées des modèles de langage pré-entraînés. Il est efficace à la fois sur les PLM traditionnels et les LLM modernes, notamment BERT, BART, LLaMA 3B et Qwen 3B.
Le cadre DUP est implémenté et testé dans l'environnement suivant :
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
Téléchargez les modèles suivants et placez-les dans le répertoire /victim_models :
bert-base-uncasedbart-baseLLaMA-3.2-3B-InstructQwen2.5-3BLes jeux de données empoisonnés sont déjà préparés et se trouvent dans /poison_data
Pour lancer les attaques par porte dérobée :
python demo_attack.py
Attaques prises en charge :
Ce module identifie les entrées empoisonnées à l'aide des scores de distance de Mahalanobis et de signature spectrale avec une sélection adaptative des couches.
python demo_detection.py
Ce module élimine les portes dérobées à l'aide d'une distillation basée sur LoRA guidée par la détection :
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