Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
batch_jailbreak — Questo repository contiene l'implementazione ufficiale dell'articolo "[Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting]" | Kitploit
Strumenti/GitHubGitHub/96kihyun/batch_jailbreak
Machine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IAAttacco Avversario
GitHub96kihyun/batch_jailbreak

batch_jailbreak

Questo repository contiene l'implementazione ufficiale dell'articolo "[Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting]"

Vedi Repository
5 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Repository ufficiale per 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

News

  • 2026.09 Il nostro paper è stato accettato a AACL-IJCNLP 2026 (Main)! 🎉
  • 2026.08 Il paper è disponibile su arXiv!
  • 2026.08 Il codice è stato rilasciato!

Panoramica

Il batch prompting è una strategia di inferenza pratica che raggruppa più query in un'unica chiamata. Mostriamo che il suo successo in termini di utilità non si estende alla sicurezza: una domanda dannosa che viene rifiutata in modo affidabile se isolata può elicitare una risposta dannosa quando è inserita in un batch di domande benigne.

Questo repository fornisce il codice ufficiale per:

  1. Generare dati di attacco con batch prompt
  2. Eseguire l'inferenza su modelli open-source (Phi / Llama / Qwen) e API commerciali (GPT / Gemini / Claude)
  3. Valutare il successo dell'attacco con un ensemble di LlamaGuard-4, WildGuard e Beaver-Dam

Preparazione

  1. Clona questo repository.
root@kitploit:~
git clone https://github.com/96kihyun/batch_jailbreak.git
cd batch_jailbreak
  1. Configurazione dell'ambiente
root@kitploit:~
conda create -n batch python=3.10 -y
conda activate batch
pip install -r requirements.txt

La GPU è necessaria per l'inferenza dei modelli locali e per i tre modelli giudici. Testato con Python 3.10 + PyTorch 2.4 + transformers==5.2.

Nota: src/evaluate/llamaguard4/ include una copia vendored di transformers per LlamaGuard-4 (Llama4ForConditionalGeneration). Viene aggiunta a sys.path solo durante il caricamento di LlamaGuard.

  1. Registra modelli / chiavi API

Modifica configs/models.yaml con i percorsi dei checkpoint HuggingFace locali (generatori + giudici), e imposta le chiavi API in configs/api.yaml (o tramite le variabili d'ambiente OPENAI_API_KEY / GEMINI_API_KEY / ANTHROPIC_API_KEY / HF_TOKEN).

Dati e modelli richiesti

  • Riempimento benigno: data/context_dataset/gsm8k.jsonl (ogni riga ha una chiave "question")
  • Dataset dannosi (scaricati automaticamente): JailbreakBench/JBB-Behaviors, walledai/StrongREJECT
  • Generatori: Phi-4 / Llama-3.1-8B-Instruct / Qwen3-8B
  • Giudici: Llama-Guard-4-12B, PKU-Alignment/beaver-dam-7b, allenai/wildguard

Generazione dei dati con batch prompt

Predefinito: --harmful_dataset JBB, batch size n = 1..10, 313 campioni. Gli slot benigni sono riempiti da GSM8K (single_math).

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

Gli output vengono scritti in data/batch_prompt/single_math/{n}/pos_{k}.jsonl.

Flag utili

Esecuzione dell'inferenza

Modelli 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

Sweep in batch su (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 commerciali (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

Gli output vengono salvati in result/inference/<model>/... come JSONL con coppie {prompt, response}.

Valutazione del successo dell'attacco

Ogni risposta viene valutata da LlamaGuard-4, WildGuard e Beaver-Dam, poi combinata tramite voto di maggioranza:

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

Puoi anche eseguire la valutazione nello stesso ciclo dell'inferenza:

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

Avvio rapido (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

Citazione

Ti invitiamo a citare il nostro paper se il nostro lavoro è utile alla tua ricerca.

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}
}

Contatti

Per qualsiasi domanda sul nostro paper o sul codice, scrivi a [email protected].

Scarica lo strumento
FlagPredefinitoDescrizione
--harmful_datasetJBBJBB o StrongREJECT
--min_n / --max_n1 / 10intervallo inclusivo della dimensione del batch N
--num_samples313numero di prompt dannosi
--seed42seed RNG
--output_dir./data/batch_promptdirectory di output principale