
Syntactic Ghost : Une attaque de porte dérobée généraliste et imperceptible sur les modèles de langage pré-entraînés
SynGhost : Attaque par porte dérobée invisible et universelle, indépendante de la tâche, via le transfert syntaxique
SynGhost apporte les contributions suivantes
Vous pouvez installer SynGhost via Git
git clone https://github.com/Zhou-CyberSecurity-AI/Syntactic-Ghost.git
cd SynGhost
pip install -r requirement.txt
L'ensemble d'empoisonnement pré-entraîné et l'ensemble de manipulation de tâche en aval sont tous deux générés à partir du SCPN. Vous pouvez les générer rapidement avec la boîte à outils OppenAttack.
pip install openattack
cd synGhost_Generation
python ./generate_by_openattack_imdb.py
Trois contraintes : la rétention des connaissances primitives, la distribution uniforme des fantômes syntaxiques et la perception syntaxique :
cd code
python ./synGhostToPLM.py
Fine-tuning, PEFT (LoRA, Adapter, p-tuning, prompt-tuning)
cd code
python ./synGhost_FineTuning.py
cd code
python ./synGhost_peft.py
Inspection des échantillons (Onion, maxEntropy)
cd code
python ./synGhost_defend.py
Notez que pour l'inspection du modèle (Fine-pruning) : veuillez utiliser directement la fonction fine-pruning de plm.py.
NeuBA, POR et BadPre.....sont tous implémentés sur OpenBackdoor.
Tout d'abord, construisez un Prompt basé sur une structure syntaxique spécifique, telle que (ROOT (S (SBAR) (,) (NP) (VP) (.)) EOP. Ensuite, générez des instances propres et des instances empoisonnées. Enfin, CACC, ASR et PPL ont été évalués par SynGhost. Les instances et les résultats sont disponibles dans ./Code/LLMAttack.ipynb.