
Код для статьи «Systematic Evaluation of Adversarial Jailbreaking Attacks and Defenses Across Seven Large Language Models»
Код, промпты и результаты для:
Systematic Evaluation of Adversarial Jailbreaking Attacks and Defenses Across Seven Large Language Models Md. Robiul Islam Niloy, Abu Sayed Md. Mostafizur Rahaman. Md. Robiul Islam Niloy: кафедра компьютерных наук и инженерии, Университет BRAC, Бангладеш. Abu Sayed Md. Mostafizur Rahaman: кафедра компьютерных наук и инженерии, Университет Джахангирнагар, Бангладеш. Рукопись готовится для IEEE Transactions on Information Forensics and Security (ещё не подана).
Статус: результаты предварительные. Основной судья — это LLM-рубрика, которая ещё не была валидирована на человеческих метках. У судьи на основе правил есть известные дефекты (см. Известные проблемы).
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
Ответы хранятся в усечённом виде до 500 символов. Листы для ручной проверки, их ключи и полный вывод судьи (который повторяет текст ответов) не включены.
Загружены из библиотеки Ollama:
| Модель | Тег Ollama | Параметры |
|---|---|---|
| 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 |
| Судья по рубрикам phi4 | phi4:14b | 14B |
Llama Guard 3 запускалась во время разработки, но её вывод оказался непригодным, поэтому она не входит ни в один из представленных результатов.
«Вред» означает, что содержательный судья пометил ответ как HARMFUL или PARTIAL. Для сравнения показан только HARMFUL.
| Модель | Доля вреда (%) | Только 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 |
| Объединённо | 29.1 | 2.6 |
По семействам атак (объединённо): обфускация 62.3 (только HARMFUL 7.1), гипотетическое обрамление 53.4, ролевая игра 14.0, переопределение 8.0, прямая 7.7.
Обфускация — самое высокое объединённое семейство. Гипотетическое обрамление — самое высокое семейство для трёх моделей (Mistral-7B, Llama-3.2-3B, Qwen2.5-7B); обфускация является наивысшей или делит первое место для четырёх.
Размер модели: ρ Спирмена = −0.64, p = 0.12, n = 7 (незначимо).
Попарные тесты Манна-Уитни (без поправки): 14 из 21 пар различаются при p < 0.05. Mistral-7B значимо отличается от Llama-3.2-3B и Qwen2.5-7B (p < 0.001).
Общий ASR под судьёй на основе правил (jailbreak_success в CSV-файлах). Эти числа ненадёжны по причинам, указанным в разделе Известные проблемы.
| Модель | ASR на основе правил (%) |
|---|---|
| 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 |
Под судьёй на основе правил Llama-3.1-8B выглядит наиболее уязвимой, а Llama-3-8B и Llama-3.1-8B выглядят сильно различающимися. Под содержательным судьёй они не различаются (17.2% против 18.4%, p = 0.73). В статье разрыв по судье на основе правил рассматривается как артефакт судьи.
Согласие между двумя судьями: 84%, κ = 0.60.
Оценено только судьёй на основе правил. Снижения указаны относительно соответствующих прогонов без защиты на тех же 20 запросах.
| Защита | Mistral-7B (базовый уровень 50%) | Llama-3.1-8B (базовый уровень 45%) |
|---|---|---|
| Чёрный список ключевых слов | 35% (−15 п.п.) | 25% (−20 п.п.) |
| Самонапоминание | 10% (−40 п.п.) | 5% (−40 п.п.) |
| Перефразирование | 60% (+10 п.п.; 12 против 10 из 20 запросов) | 5% (−40 п.п.) |
| Фильтр перплексии | 50% (0 п.п.) | 45% (0 п.п.) |
Безвредные запросы (10 на модель): фильтры ключевых слов, перефразирования и перплексии заблокировали 0 из 10. Доля безвредных отказов при самонапоминании не измерялась.
Скрипты читают и записывают папку проекта. Установите BASE в начале каждого скрипта на вашу копию этого репозитория или сохраните приведённую выше структуру и запускайте из корня репозитория.
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
Основной запуск и судья сохраняют прогресс и могут быть возобновлены. Ожидайте, что основной запуск займёт несколько часов на современном потребительском GPU.
Ссылайтесь на рукопись после её принятия (ссылка будет добавлена), а также на связанные препринты: