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
تعلم الآلةالأوراق والأبحاثالتعلم والتعليمأمن الذكاء الاصطناعيالهجوم العدائي
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 تم إصدار الكود!

نظرة عامة

Batch prompting هي استراتيجية استدلال عملية تقوم بتجميع عدة استعلامات في استدعاء واحد. نوضح أن نجاحها من حيث الفائدة لا يمتد إلى السلامة: فالسؤال الضار الذي يُرفض بشكل موثوق عند تقديمه منفردًا يمكن أن يستدعي استجابة ضارة عند تضمينه في دفعة من الأسئلة الحميدة.

يوفر هذا المستودع الكود الرسمي من أجل:

  1. توليد بيانات هجوم batch-prompt
  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

مطلوب GPU لاستدلال النماذج المحلية ولنماذج التحكيم الثلاثة. تم الاختبار باستخدام Python 3.10 + PyTorch 2.4 + transformers==5.2.

ملاحظة: يحتوي src/evaluate/llamaguard4/ على نسخة مضمّنة من transformers الخاصة بـ LlamaGuard-4 (Llama4ForConditionalGeneration). تُضاف إلى sys.path فقط أثناء تحميل LlamaGuard.

  1. تسجيل النماذج / مفاتيح API

حرّر configs/models.yaml بمسارات نقاط تفتيش HuggingFace المحلية (المولّدات + المحكّمين)، واضبط مفاتيح API في configs/api.yaml (أو عبر متغيرات البيئة 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

توليد بيانات Batch-Prompt

الافتراضي: --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>/... بصيغة JSONL مع أزواج {prompt, response}.

تقييم نجاح الهجوم

يُقيَّم كل رد بواسطة 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].

تنزيل الأداة
FlagDefaultDescription
--harmful_datasetJBBJBB أو StrongREJECT
--min_n / --max_n1 / 10نطاق شامل لحجم الدفعة N
--num_samples313عدد المطالبات الضارة
--seed42بذرة RNG
--output_dir./data/batch_promptجذر المخرجات