
Syntactic Ghost: un attacco backdoor general-purpose impercettibile sui modelli linguistici pre-addestrati
SynGhost: Attacco backdoor invisibile e universale task-agnostic tramite trasferimento sintattico
SynGhost ha i seguenti contributi
Puoi installare SynGhost tramite Git
git clone https://github.com/Zhou-CyberSecurity-AI/Syntactic-Ghost.git
cd SynGhost
pip install -r requirement.txt
Sia il set di avvelenamento pre-addestrato che il set di manipolazione del task downstream vengono generati dall'SCPN. Puoi generare rapidamente con il toolkit OppenAttack.
pip install openattack
cd synGhost_Generation
python ./generate_by_openattack_imdb.py
Tre vincoli: conservazione della conoscenza primitiva, distribuzione uniforme dei ghost sintattici e percezione sintattica:
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
Ispezione dei campioni (Onion, maxEntropy)
cd code
python ./synGhost_defend.py
Nota che per l'Ispezione del Modello (Fine-pruning): utilizza direttamente la funzione fine-pruning da plm.py.
NeuBA, POR e BadPre.....sono tutti implementati su OpenBackdoor.
Innanzitutto, costruisci un Prompt basato su una struttura sintattica specifica, come (ROOT (S (SBAR) (,) (NP) (VP) (.)) EOP. Poi genera istanze pulite e istanze avvelenate. Infine, CACC, ASR e PPL sono stati valutati da SynGhost. Le istanze e i risultati sono disponibili su ./Code/LLMAttack.ipynb.