Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
batch_jailbreak — このリポジトリには、論文「[Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting]」の公式実装が含まれています。 | Kitploit
ツール/GitHubGitHub/96kihyun/batch_jailbreak
機械学習論文と研究学習と教育AIセキュリティ敵対的攻撃
GitHub96kihyun/batch_jailbreak

batch_jailbreak

このリポジトリには、論文「[Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting]」の公式実装が含まれています。

リポジトリを見る
5日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

Safety in Batches? Understanding and Mitigating Safety Failures in Batch Prompting の公式リポジトリ

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

韓国科学技術院 (KAIST)

arXiv

ニュース

  • 2026.09 本論文が AACL-IJCNLP 2026 (Main) に採択されました! 🎉
  • 2026.08 論文が arXiv で公開されました!
  • 2026.08 コードを公開しました!

概要

バッチプロンプティングは、複数のクエリを1回の呼び出しにまとめる実用的な推論戦略です。本論文では、その有用性における成功が安全性には及ばないことを示します。すなわち、単独では確実に拒否される有害な質問が、無害な質問のバッチに埋め込まれると有害な応答を引き出してしまうのです。

このリポジトリは、以下の公式コードを提供します:

  1. バッチプロンプト攻撃データの生成
  2. オープンソースモデル (Phi / Llama / Qwen) および商用API (GPT / Gemini / Claude) での推論実行
  3. LlamaGuard-4、WildGuard、Beaver-Dam のアンサンブルによる攻撃成功率の評価

準備

  1. このリポジトリをクローンします。
root@kitploit:~
git clone https://github.com/96kihyun/batch_jailbreak.git
cd batch_jailbreak
  1. 環境構築
root@kitploit:~
conda create -n batch python=3.10 -y
conda activate batch
pip install -r requirements.txt

ローカルモデルの推論および3つの判定モデルにはGPUが必要です。Python 3.10 + PyTorch 2.4 + transformers==5.2 でテスト済みです。

注意: src/evaluate/llamaguard4/ には LlamaGuard-4 用の transformers のベンダーコピー (Llama4ForConditionalGeneration) が同梱されています。これは LlamaGuard のロード中にのみ sys.path に追加されます。

  1. モデル / APIキーの登録

configs/models.yaml にローカルの HuggingFace チェックポイントパス (生成器 + 判定器) を編集し、configs/api.yaml に APIキーを設定します (または環境変数 OPENAI_API_KEY / GEMINI_API_KEY / ANTHROPIC_API_KEY / HF_TOKEN 経由)。

必要なデータとモデル

  • 無害なフィラー: data/context_dataset/gsm8k.jsonl (各行に "question" キーを持つ)
  • 有害データセット (自動ダウンロード): JailbreakBench/JBB-Behaviors、walledai/StrongREJECT
  • 生成器: Phi-4 / Llama-3.1-8B-Instruct / Qwen3-8B
  • 判定器: Llama-Guard-4-12B、PKU-Alignment/beaver-dam-7b、allenai/wildguard

バッチプロンプトデータの生成

デフォルト: --harmful_dataset JBB、バッチサイズ n = 1..10、313サンプル。無害なスロットは GSM8K (single_math) から埋められます。

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

出力は data/batch_prompt/single_math/{n}/pos_{k}.jsonl 以下に書き込まれます。

便利なフラグ

推論の実行

オープンソースモデル (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

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

出力は result/inference/<model>/... 以下に {prompt, response} ペアを含む JSONL として保存されます。

攻撃成功率の評価

各応答は LlamaGuard-4、WildGuard、Beaver-Dam によってスコアリングされ、多数決で統合されます:

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

推論と同じループ内で評価を実行することもできます:

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

クイックスタート (スモークラン)

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

引用

本研究がお役に立ちましたら、論文の引用をご検討ください。

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

お問い合わせ

論文やコードに関するご質問は、[email protected] までメールでお問い合わせください。

ツールをダウンロード
フラグデフォルト説明
--harmful_datasetJBBJBB または StrongREJECT
--min_n / --max_n1 / 10バッチサイズ N の範囲 (両端を含む)
--num_samples313有害プロンプトの数
--seed42乱数シード
--output_dir./data/batch_prompt出力ルート