
إطار عمل مفتوح لاختبار الاختراق الأحمر القائم على التعلم المعزز لحقن الأوامر، مع مدرب مشترك، وتعلم منهجي، ومعايير مثل AgentDojo وInjecAgent وPIArena.
إطار عمل مفتوح للفريق الأحمر لهجمات حقن الأوامر القائم على التعلم المعزز
💻 الكود · 🤗 النماذج · 📜 الأوراق البحثية
PIForge هو قاعدة الكود المشتركة لكل من PISmith و**Climbing the Hill**. يعالج PISmith مشكلة المكافأة المتناثرة في الفريق الأحمر لهجمات حقن الأوامر، مما يساعد مهاجمي التعلم المعزز على الاستكشاف والتعلم من الهجمات الناجحة النادرة. وبناءً على PISmith، يستخدم Climbing the Hill التعلم المنهجي لمعالجة مشكلة البداية الباردة عند تنفيذ الفريق الأحمر ضد أهداف متقدمة أكثر متانة.
| المكوّن | الموقع | الغرض |
|---|---|---|
| المعايير | benchmarks/ | PIArena وInjecAgent وAgentDojo وAgentDyn وIPI Arena. |
| نواة التدريب | train.py، core/، configs/ | مدرّب التعلم المعزز المشترك وإعدادات المعايير. |
| نقاط الدخول | scripts/، eval/ | سكربت تدريب واحد، وسكربت منهج واحد، وسكربت تقييم واحد. |
شغّل الأوامر من جذر المستودع. يتطلب التدريب Python 3.10 ووحدات معالجة رسومات.
git clone https://github.com/albert-y1n/PIForge.git
cd PIForge
conda create -n piforge python=3.10 -y
conda activate piforge
pip install -r requirements.txt
تتشارك نقاط الدخول الثلاث واجهة صغيرة:
bash scripts/train.sh <benchmark> <target> [train_gpus] [train.py overrides...]
bash scripts/train_curriculum.sh [curriculum]
bash scripts/eval.sh <benchmark> <attacker path or HF model ID> <target> [num_samples] [eval.py overrides...]
استخدم متغيرات البيئة مثل ATTACKER_MODEL وTRAIN_SUITES وOUTPUT_DIR وLEARNING_RATE وNUM_TRAIN_EPOCHS لتغيير التشغيل. يطبع DRY_RUN=1 الأوامر دون تشغيل النماذج.
ثبّت AgentDyn لمجموعة github الخاصة بـ AgentDyn، وهي مجموعة التدريب الافتراضية لوصفات AgentDojo/AgentDyn أدناه:
git clone https://github.com/SaFo-Lab/AgentDyn.git
pip install -e AgentDyn --no-deps
export OPENAI_API_KEY="your-openai-api-key"
درّب باستخدام PISmith ضد GPT-4o-mini أو GPT-5-nano:
bash scripts/train.sh agentdyn gpt4o-mini
bash scripts/train.sh agentdyn gpt5-nano
درّب نحو GPT-5.6-Luna أو GPT-5.6-Terra باستخدام التعلم المعزز المنهجي. تبدأ كل مرحلة من نقطة تفتيش المهاجم الخاصة بالمرحلة السابقة:
bash scripts/train_curriculum.sh nano-luna
bash scripts/train_curriculum.sh nano-luna-terra
تواصل نقطة الدخول نفسها للهدف الواحد التدريب من أي نموذج مهاجم أو نقطة تفتيش محفوظة:
ATTACKER_MODEL=checkpoints/agentdyn_curriculum/nano-luna-terra/stage_3_gpt-5.6-terra/checkpoint-XXX \
OUTPUT_DIR=checkpoints/muse_spark \
bash scripts/train.sh agentdyn muse-spark-1.2
قيّم نموذج Hugging Face المُصدَر مباشرةً.
bash scripts/eval.sh agentdyn AlbertYin/agentdojo_attacker_qwen3_4b_5_nano gpt5-nano 10
bash scripts/eval.sh agentdyn AlbertYin/agentdojo_attacker_qwen3_4b_5.6_terra gpt-5.6-terra 10
بالنسبة لمجموعات AgentDojo، اختر agentdojo واضبط TRAIN_SUITES أو EVAL_SUITES على workspace أو banking أو travel أو slack:
TRAIN_SUITES=workspace bash scripts/train.sh agentdojo gpt4o-mini
EVAL_SUITES=workspace bash scripts/eval.sh agentdojo AlbertYin/agentdojo_attacker_qwen3_4b_4o_mini gpt4o-mini 10
جهّز هدف Meta-SecAlign المحلي مرة واحدة باستخدام python merge_meta_secalign.py. ثم درّب وقيّم باستخدام مجموعة بيانات InjecAgent:
bash scripts/train.sh injecagent secalign
bash scripts/eval.sh injecagent AlbertYin/injecagent_attacker_qwen3_4b_secalign secalign 10
يشغّل السكربت الهدف المحلي على GPU 0 ويستخدم GPUs 1,2,3 للتدريب افتراضيًا. اضبط TARGET_GPU أو TRAIN_GPUS أو TARGET_URL لتغيير هذا الإعداد.
ينطبق إعداد Meta-SecAlign نفسه على دفاع secalign. يستخدم PIArena مجموعة بيانات المعيار الخاصة به:
bash scripts/train.sh piarena secalign
bash scripts/train.sh piarena none
bash scripts/eval.sh piarena AlbertYin/piarena_attacker_qwen3_4b_secalign secalign 10
يمكن اختيار دفاعات أخرى باسم إعدادها، مثل promptguard أو piguard. اضبط TARGET_GPU أو TRAIN_GPUS أو TARGET_URL لاستخدام وحدات معالجة رسومات مختلفة أو خادم هدف موجود.
نُصدر مهاجمينا المدرّبين في مجموعة PIForge على Hugging Face.
يُصدَر PIForge تحت ترخيص MIT.