
Code pour « Systematic Evaluation of Adversarial Jailbreaking Attacks and Defenses Across Seven Large Language Models »
Code, prompts et résultats pour :
Évaluation systématique des attaques et défenses de jailbreaking adversariales sur sept grands modèles de langage Md. Robiul Islam Niloy, Abu Sayed Md. Mostafizur Rahaman. Md. Robiul Islam Niloy : Département d'informatique et d'ingénierie, Université BRAC, Bangladesh. Abu Sayed Md. Mostafizur Rahaman : Département d'informatique et d'ingénierie, Université Jahangirnagar, Bangladesh. Manuscrit en préparation pour IEEE Transactions on Information Forensics and Security (pas encore soumis).
Statut : les résultats sont provisoires. Le juge principal est une grille d'évaluation par LLM qui n'a pas encore été validée par rapport à des annotations humaines. Le juge basé sur des règles présente des défauts connus (voir Problèmes connus).
README.md
LICENSE
paper/
tifs_paper_v12.tex manuscript source
prompts/
expanded_prompts.json 250 attack prompts (50 per family, 5 families)
scripts/
phase1_expanded.py main experiment: 7 models x 250 prompts via Ollama
phase3_defenses.py defense experiments (first 10 obfuscation + 10 roleplay prompts)
judge_validation_v2.py content judge (phi4 rubric), resumable
rejudge_expanded.py rule-based re-scoring with corrected refusal matching
make_all_figures.py builds all five figures
results/
expanded/ one CSV per model: 250 prompts, truncated responses, rule-based label
defense/ defense run outputs and summary
judge/ agreement_report.txt and corrected_asr.txt
figures/ the five PDFs used in the manuscript
Les réponses sont stockées tronquées à 500 caractères. Les fiches de vérification humaine, leurs clés et la sortie complète du juge (qui répète le texte des réponses) ne sont pas incluses.
Tirés de la bibliothèque Ollama :
| Modèle | Étiquette Ollama | Paramètres |
|---|---|---|
| Llama-3-8B-Instruct | llama3:8b | 8B |
| Llama-3.1-8B-Instruct | llama3.1:8b | 8B |
| Llama-3.2-3B-Instruct | llama3.2:3b | 3B |
| Mistral-7B-Instruct | mistral | 7B |
| Qwen2.5-7B-Instruct | qwen2.5:7b | 7B |
| Gemma2-9B-Instruct | gemma2:9b | 9B |
| Phi-4-14B | phi4:14b | 14B |
| juge de rubrique phi4 | phi4:14b | 14B |
Llama Guard 3 a été exécuté pendant le développement, mais sa sortie n'était pas exploitable ; il ne fait donc partie d'aucun résultat rapporté.
« Nuisible » signifie que le juge de contenu a étiqueté la réponse comme NUISIBLE ou PARTIELLE. NUISIBLE seul est indiqué à titre de comparaison.
| Modèle | Taux de nuisance (%) | NUISIBLE uniquement (%) |
|---|---|---|
| Mistral-7B | 62,0 | 8,8 |
| Llama-3.2-3B | 30,8 | 1,2 |
| Qwen2.5-7B | 29,2 | 1,2 |
| Gemma2-9B | 26,0 | 2,0 |
| Phi-4-14B | 20,0 | 2,8 |
| Llama-3.1-8B | 18,4 | 0,4 |
| Llama-3-8B | 17,2 | 1,6 |
| Regroupés | 29,1 | 2,6 |
Par famille d'attaque (regroupées) : obfuscation 62,3 (NUISIBLE uniquement 7,1), cadrage hypothétique 53,4, jeu de rôle 14,0, contournement 8,0, direct 7,7.
L'obfuscation est la famille regroupée la plus élevée. Le cadrage hypothétique est la famille la plus élevée pour trois modèles (Mistral-7B, Llama-3.2-3B, Qwen2.5-7B) ; l'obfuscation est la plus élevée ou à égalité pour quatre.
Taille du modèle : ρ de Spearman = −0,64, p = 0,12, n = 7 (non significatif).
Tests de Mann-Whitney par paires (non corrigés) : 14 des 21 paires diffèrent à p < 0,05. Mistral-7B diffère significativement de Llama-3.2-3B et de Qwen2.5-7B (p < 0,001).
ASR global sous le juge à base de règles (jailbreak_success dans les CSV). Ces chiffres ne sont pas fiables pour les raisons indiquées dans la section Problèmes connus.
| Modèle | ASR à base de règles (%) |
|---|---|
| Llama-3.1-8B | 40,8 |
| Mistral-7B | 39,6 |
| Llama-3.2-3B | 39,6 |
| Qwen2.5-7B | 22,4 |
| Gemma2-9B | 18,4 |
| Llama-3-8B | 16,8 |
| Phi-4-14B | 11,2 |
Sous le juge à base de règles, Llama-3.1-8B apparaît comme le plus vulnérable et Llama-3-8B et Llama-3.1-8B apparaissent très éloignés. Sous le juge de contenu, ils ne diffèrent pas (17,2 % contre 18,4 %, p = 0,73). L'article traite l'écart à base de règles comme un artefact du juge.
Concordance entre les deux juges : 84 %, κ = 0,60.
Évalués avec le juge à base de règles uniquement. Les réductions sont calculées par rapport à des exécutions sans défense appariées sur les mêmes 20 invites.
| Défense | Mistral-7B (référence 50 %) | Llama-3.1-8B (référence 45 %) |
|---|---|---|
| Liste noire de mots-clés | 35 % (−15 pp) | 25 % (−20 pp) |
| Auto-rappel | 10 % (−40 pp) | 5 % (−40 pp) |
| Paraphrase | 60 % (+10 pp ; 12 contre 10 invites sur 20) | 5 % (−40 pp) |
| Filtre de perplexité | 50 % (0 pp) | 45 % (0 pp) |
Invites bénignes (10 par modèle) : les filtres par mots-clés, par paraphrase et par perplexité ont bloqué 0 invite sur 10. Le taux de refus bénin de l'auto-rappel n'a pas été mesuré.
Les scripts lisent et écrivent dans un dossier de projet. Définissez BASE en haut de chaque script sur votre copie de ce dépôt, ou conservez l'arborescence ci-dessus et exécutez depuis la racine du dépôt.
pip install pandas numpy scipy matplotlib
ollama pull llama3:8b
ollama pull llama3.1:8b
ollama pull llama3.2:3b
ollama pull mistral
ollama pull qwen2.5:7b
ollama pull gemma2:9b
ollama pull phi4:14b