
Syntactic Ghost: Ein unmerklicher Allzweck-Backdoor-Angriff auf vortrainierte Sprachmodelle
SynGhost: Unsichtbarer und universeller aufgabenunabhängiger Backdoor-Angriff mittels syntaktischem Transfer
SynGhost hat die folgenden Beiträge
Sie können SynGhost über Git installieren
git clone https://github.com/Zhou-CyberSecurity-AI/Syntactic-Ghost.git
cd SynGhost
pip install -r requirement.txt
Sowohl das vorabtrainierte Poisoning-Set als auch das Downstream-Aufgabenmanipulations-Set werden aus dem SCPN generiert. Sie können sie schnell mit dem OppenAttack-Toolkit generieren.
pip install openattack
cd synGhost_Generation
python ./generate_by_openattack_imdb.py
Drei Einschränkungen: Beibehaltung des primitiven Wissens, gleichmäßige Verteilung der syntaktischen Ghosts und syntaktische Wahrnehmung:
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
Probeninspektion (Onion, maxEntropy)
cd code
python ./synGhost_defend.py
Beachten Sie, dass für die Modellinspektion (Fine-pruning) bitte die Fine-pruning-Funktion direkt aus plm.py verwendet werden sollte.
NeuBA, POR und BadPre.....sind alle auf OpenBackdoor implementiert.
Erstellen Sie zunächst einen Prompt basierend auf einer bestimmten syntaktischen Struktur, wie z. B. (ROOT (S (SBAR) (,) (NP) (VP) (.)) EOP. Generieren Sie dann saubere Instanzen und vergiftete Instanzen. Schließlich wurden CACC, ASR und PPL durch den SynGhost bewertet. Die Instanzen und Ergebnisse sind unter ./Code/LLMAttack.ipynb verfügbar.