Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
batch_jailbreak — Ce dépôt contient l'implémentation officielle de l'article « [Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting] » | Kitploit
Outils/GitHubGitHub/96kihyun/batch_jailbreak
Apprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IAAttaque Adversariale
GitHub96kihyun/batch_jailbreak

batch_jailbreak

Ce dépôt contient l'implémentation officielle de l'article « [Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting] »

Voir le dépôt
il y a 5 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Dépôt officiel pour Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting

Kihyun Kim, Hee-Seon Kim, Wonjun Lee, Changick Kim

Korea Advanced Institute of Science and Technology (KAIST)

arXiv

Actualités

  • 2026.09 Notre article a été accepté à AACL-IJCNLP 2026 (Main) ! 🎉
  • 2026.08 L'article est disponible sur arXiv !
  • 2026.08 Le code est publié !

Aperçu

Le batch prompting est une stratégie d'inférence pratique qui regroupe plusieurs requêtes en un seul appel. Nous montrons que son succès en termes d'utilité ne s'étend pas à la sécurité : une question nuisible qui est systématiquement refusée de manière isolée peut susciter une réponse nuisible lorsqu'elle est intégrée dans un lot de questions bénignes.

Ce dépôt fournit le code officiel pour :

  1. Générer des données d'attaque par batch-prompt
  2. Exécuter l'inférence sur des modèles open-source (Phi / Llama / Qwen) et des API commerciales (GPT / Gemini / Claude)
  3. Évaluer le succès de l'attaque avec un ensemble de LlamaGuard-4, WildGuard et Beaver-Dam

Préparation

  1. Clonez ce dépôt.
root@kitploit:~
git clone https://github.com/96kihyun/batch_jailbreak.git
cd batch_jailbreak
  1. Configuration de l'environnement
root@kitploit:~
conda create -n batch python=3.10 -y
conda activate batch
pip install -r requirements.txt

Un GPU est requis pour l'inférence des modèles locaux et pour les trois modèles juges. Testé avec Python 3.10 + PyTorch 2.4 + transformers==5.2.

Remarque : src/evaluate/llamaguard4/ fournit une copie vendored de transformers pour LlamaGuard-4 (Llama4ForConditionalGeneration). Elle est ajoutée à sys.path uniquement pendant le chargement de LlamaGuard.

  1. Enregistrer les modèles / clés API

Modifiez configs/models.yaml avec les chemins locaux des checkpoints HuggingFace (générateurs + juges), et définissez les clés API dans configs/api.yaml (ou via les variables d'environnement OPENAI_API_KEY / GEMINI_API_KEY / ANTHROPIC_API_KEY / HF_TOKEN).

Données et modèles requis

  • Remplissage bénin : data/context_dataset/gsm8k.jsonl (chaque ligne possède une clé "question")
  • Jeux de données nuisibles (téléchargés automatiquement) : JailbreakBench/JBB-Behaviors, walledai/StrongREJECT
  • Générateurs : Phi-4 / Llama-3.1-8B-Instruct / Qwen3-8B
  • Juges : Llama-Guard-4-12B, PKU-Alignment/beaver-dam-7b, allenai/wildguard

Génération des données de batch-prompt

Par défaut : --harmful_dataset JBB, taille de lot n = 1..10, 313 échantillons. Les emplacements bénins sont remplis à partir de GSM8K (single_math).

root@kitploit:~
python -m src.utils.generate_batch_question_prompt

Les sorties sont écrites sous data/batch_prompt/single_math/{n}/pos_{k}.jsonl.

Options utiles

Exécution de l'inférence

Modèles open-source (Phi / Llama / Qwen)

root@kitploit:~
python scripts/inference/run_inference_batch_prompt.py \
  --model_name qwen \
  --case single_math --n 9 --pos 2 \
  --harmful_dataset JBB

Balayage par lots sur (model, case, batch_size, pos) :

root@kitploit:~
bash scripts/inference/run_inference_batch_prompt_eval.sh \
  --dataset jbb --gpu_id 0 \
  --models phi qwen --cases single_math \
  --batch_sizes 12 --pos_values 1 2

API commerciales (GPT / Gemini / Claude)

root@kitploit:~
python scripts/inference/run_inference_api.py \
  --api gpt \
  --input_file data/batch_prompt_jbb/single_math/12/pos_2.jsonl \
  --model_name gpt --output_subdir batch_prompt_jbb/single_math/12/pos_2 \
  --harmful_dataset JBB --extract_pos 2

Les sorties sont enregistrées sous result/inference/<model>/... au format JSONL avec des paires {prompt, response}.

Évaluation du succès de l'attaque

Chaque réponse est notée par LlamaGuard-4, WildGuard et Beaver-Dam, puis combinée par vote majoritaire :

root@kitploit:~
python scripts/eval/run_ensemble.py \
  --input_file result/inference/qwen/batch_prompt_jbb/single_math/12/qwen_single_math_n12_pos_2_response.jsonl \
  --output_dir result/evaluation/batch_prompt_jbb/qwen/single_math/12/pos_2

Vous pouvez également exécuter l'évaluation dans la même boucle que l'inférence :

root@kitploit:~
bash scripts/inference/run_inference_batch_prompt_eval.sh \
  --dataset jbb --gpu_id 0 \
  --models qwen --cases single_math \
  --batch_sizes 12 --pos_values 2 \
  --conda_env batch

Démarrage rapide (Smoke Run)

root@kitploit:~
# 1. data
python -m src.utils.generate_batch_question_prompt \
  --harmful_dataset JBB --min_n 12 --max_n 12 --num_samples 100

# 2. inference
python scripts/inference/run_inference_batch_prompt.py \
  --model_name llama --case single_math --n 12 --pos 2 --harmful_dataset JBB

# 3. evaluation
python scripts/eval/run_ensemble.py \
  --input_file result/inference/llama/batch_prompt/llama_single_math_n12_pos_2_response.jsonl

Citation

N'hésitez pas à citer notre article si notre travail vous aide dans vos recherches.

root@kitploit:~
@article{kim2026safety,
  title={Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting},
  author={Kim, Kihyun and Kim, HeeSeon and Lee, Wonjun and Kim, Changick},
  journal={arXiv preprint arXiv:2608.02681},
  year={2026}
}

Contact

Pour toute question concernant notre article ou notre code, veuillez envoyer un e-mail à [email protected].

Télécharger l’outil
OptionValeur par défautDescription
--harmful_datasetJBBJBB ou StrongREJECT
--min_n / --max_n1 / 10plage inclusive de la taille de lot N
--num_samples313nombre de prompts nuisibles
--seed42graine RNG
--output_dir./data/batch_promptracine de sortie