
Estrutura de pesquisa para detectar e remover backdoors em modelos de linguagem, combinando detecção de anomalias baseada em características com desaprendizagem baseada em LoRA em BERT, BART, LLaMA e Qwen.
Este é o repositório oficial do artigo:
DUP: Detection-guided Unlearning for Backdoor Purification in Language Models
O DUP introduz uma estrutura unificada que combina detecção de anomalias baseada em características com desaprendizagem eficiente em parâmetros para remover backdoors de modelos de linguagem pré-treinados. É eficaz tanto em PLMs tradicionais quanto em LLMs modernos, incluindo BERT, BART, LLaMA 3B e Qwen 3B.
A estrutura DUP é implementada e testada no seguinte ambiente:
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
Baixe os seguintes modelos e coloque-os no diretório /victim_models:
bert-base-uncasedbart-baseLLaMA-3.2-3B-InstructQwen2.5-3BOs conjuntos de dados envenenados já estão preparados e localizados em /poison_data
Para lançar ataques de backdoor:
python demo_attack.py
Ataques suportados:
Este módulo identifica entradas envenenadas usando pontuações de Distância de Mahalanobis e Assinatura Espectral com seleção adaptativa de camadas.
python demo_detection.py
Este módulo remove backdoors usando destilação baseada em LoRA guiada pela detecção:
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