
Código para "Systematic Evaluation of Adversarial Jailbreaking Attacks and Defenses Across Seven Large Language Models"
Código, prompts y resultados para:
Evaluación sistemática de ataques de jailbreaking adversarios y defensas en siete modelos de lenguaje grandes Md. Robiul Islam Niloy, Abu Sayed Md. Mostafizur Rahaman. Md. Robiul Islam Niloy: Departamento de Ingeniería Informática y de Computación, Universidad BRAC, Bangladés. Abu Sayed Md. Mostafizur Rahaman: Departamento de Ingeniería Informática y de Computación, Universidad de Jahangirnagar, Bangladés. Manuscrito en preparación para IEEE Transactions on Information Forensics and Security (aún no enviado).
Estado: los resultados son provisionales. El juez principal es una rúbrica de LLM que aún no ha sido validada contra etiquetas humanas. El juez basado en reglas tiene defectos conocidos (véase Problemas conocidos).
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
Las respuestas se almacenan truncadas a 500 caracteres. No se incluyen las hojas de verificación humana, sus claves ni la salida completa del juez (que repite el texto de las respuestas).
Obtenidos de la biblioteca de Ollama:
| Modelo | Etiqueta de Ollama | Parámetros |
|---|---|---|
| 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 |
| juez de rúbrica phi4 | phi4:14b | 14B |
Llama Guard 3 se ejecutó durante el desarrollo, pero su salida no fue utilizable, por lo que no forma parte de ningún resultado reportado.
«Dañino» significa que el juez de contenido etiquetó la respuesta como HARMFUL o PARTIAL. Se muestra HARMFUL solo para comparación.
| Modelo | Tasa de daño (%) | Solo HARMFUL (%) |
|---|---|---|
| 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 |
| Agrupado | 29.1 | 2.6 |
Por familia de ataque (agrupado): ofuscación 62.3 (solo HARMFUL 7.1), encuadre hipotético 53.4, juego de rol 14.0, anulación 8.0, directo 7.7.
La ofuscación es la familia agrupada más alta. El encuadre hipotético es la familia más alta para tres modelos (Mistral-7B, Llama-3.2-3B, Qwen2.5-7B); la ofuscación es la más alta o está empatada para cuatro.
Tamaño del modelo: ρ de Spearman = −0.64, p = 0.12, n = 7 (no significativo).
Pruebas de Mann-Whitney por pares (sin corrección): 14 de 21 pares difieren con p < 0.05. Mistral-7B difiere significativamente de Llama-3.2-3B y Qwen2.5-7B (p < 0.001).
ASR general bajo el juez basado en reglas (jailbreak_success en los CSV). Estas cifras no son fiables por las razones indicadas en Problemas conocidos.
| Modelo | ASR basado en reglas (%) |
|---|---|
| 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 |
Bajo el juez basado en reglas, Llama-3.1-8B parece el más vulnerable y Llama-3-8B y Llama-3.1-8B parecen muy distantes. Bajo el juez de contenido no difieren (17.2% vs 18.4%, p = 0.73). El artículo trata la brecha del juez basado en reglas como un artefacto del juez.
Concordancia entre los dos jueces: 84%, κ = 0.60.
Puntuados solo con el juez basado en reglas. Las reducciones son frente a ejecuciones emparejadas sin defensa con los mismos 20 prompts.
| Defensa | Mistral-7B (línea base 50%) | Llama-3.1-8B (línea base 45%) |
|---|---|---|
| Lista negra de palabras clave | 35% (−15 pp) | 25% (−20 pp) |
| Autorrecordatorio | 10% (−40 pp) | 5% (−40 pp) |
| Paráfrasis | 60% (+10 pp; 12 vs 10 de 20 prompts) | 5% (−40 pp) |
| Filtro de perplejidad | 50% (0 pp) | 45% (0 pp) |
Prompts benignos (10 por modelo): los filtros de palabras clave, paráfrasis y perplejidad bloquearon 0 de 10. La tasa de rechazo benigno del autorrecordatorio no se midió.
Los scripts leen y escriben en una carpeta de proyecto. Establezca BASE en la parte superior de cada script a su copia de este repositorio, o mantenga la estructura anterior y ejecute desde la raíz del repositorio.
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
python scripts/phase1_expanded.py # main run, 1,750 generations (several hours)
python scripts/judge_validation_v2.py # content judge (GPU recommended)
python scripts/phase3_defenses.py # defense run (rule-based)
python scripts/rejudge_expanded.py # rule-based re-scoring
python scripts/make_all_figures.py # all five figures