
معيار دورة حياة لهجمات استخراج نماذج اللغة الكبيرة ذات الصندوق الأسود، والدفاعات، والهجمات التكيفية.
يوفر هذا المستودع معيارًا موحدًا لهجمات استخراج النماذج، والدفاعات، والهجمات التكيفية، والتقييم. الواجهة العامة منظمة حول عدد صغير من الأوامر المحمولة. تُعد وحدات Python الخاصة بكل طريقة ونصوص التشغيل القديمة تفاصيل تنفيذية وليست نقاط دخول موجهة للمستخدم.
تتحقق نقاط الدخول المحمولة الأربع أدناه من وسائطها العامة ثم توزع المهام إلى تنفيذات الطرق. تُستبعد أغلفة موارد Slurm عمدًا. تظل البيانات الوصفية المملوكة للطرق مرجعًا موثوقًا لسلوك الاستئناف ومصدر المخرجات.
هل تعمل الدفاعات ضد استخراج نماذج LLM عبر الهجمات المختلفة؟ معيار دورة حياة لاستخراج النماذج ذات الصندوق الأسود
Shuze Liu (جامعة ولاية فلوريدا)، Kaixiang Zhao (جامعة بريغهام يونغ)، Runyang Xu (جامعة ميشيغان، آن أربور)، Jingzhi Chen (جامعة ولاية نيويورك في بافالو)، Nathan Wu (جامعة ويك فورست)، Yu Wang (جامعة جورجيا)، و Yushun Dong (جامعة ولاية فلوريدا).
مصدر الورقة: https://github.com/sliu11-byte/MEA_benchmark_arXiv
يوفر هذا المستودع التنفيذات وواجهة إعادة الإنتاج الخاصة بالورقة. تُستضاف مجموعات الاستعلامات تحت مشروع Hugging Face الخاص بالمؤلفين: https://huggingface.co/datasets/watermarkproject/lord-mea-benchmark
attacks/ attack implementations and shared attack pipeline defenses/ defense implementations and detector adapters countermeasures/ adaptive-attack pipeline evaluation/ shared tasks, rollout code, and metrics infra/ portable model-serving helpers runs/ canonical public entry points
## واجهة الاستخدام العامة القياسية
يكشف المعيار عن أربعة أوامر من المستوى الأعلى:
| التجربة | نقطة الدخول | وسائط التجربة المطلوبة |
|---|---|---|
| الهجوم | `runs/run_attack.sh` | `--attack`، `--budget` |
| الدفاع | `runs/run_defense.sh` | الاستخراج المُدافَع عنه: `--defense`، `--attack`، `--budget`؛ الدفاع القائم على النتائج: `--defense`، `--attack-run` |
| الهجوم التكيّفي | `runs/run_adaptive_attack.sh` | `--adaptive-attack`، `--defense`، `--attack`، `--budget` |
| التقييم | `runs/run_evaluation.sh` | `--manifest` |
جميع الأوامر الأربعة:
- تعمل كأوامر shell عادية دون Slurm؛
- تقبل `--help` و `--dry-run`؛
- تتحقق من صحة التجربة المطلوبة قبل البدء؛
- تُنشئ وتكتشف وتتحقق من صحة جميع المخرجات الأساسية المطلوبة وتعيد استخدامها تلقائيًا؛
- تستخدم الإعدادات الافتراضية الحتمية للمعيار تحت `--profile paper`؛
- تحافظ على سلوك الاستئناف وإعادة استخدام المخرجات الموجود لكل طريقة؛
- تكتب أو تحافظ على بيانات وصفية قابلة للقراءة آليًا لتشغيل البرنامج ومصدر المدخلات؛
- تتجنب تضمين أسماء المستخدمين أو حسابات العناقيد أو عناوين البريد الإلكتروني أو المسارات الخاصة بالموقع.
تنسّق أدوات التشغيل منطق التجربة في عملية shell الحالية. وهي لا
تُرسل مهام العنقود ولا تختار قسم المجدول. يتحمل المستدعي مسؤولية
تخصيص ما يكفي من وحدات المعالجة المركزية والذاكرة ووحدات معالجة الرسومات قبل استدعاء أداة التشغيل. يمكن للمستخدم
توفير نقاط نهاية معلّم وطالب متوافقة مع OpenAI قيد التشغيل بالفعل؛ كما يمكن لموزّع
الهجوم تشغيل خدمات vLLM المحلية الخاصة بالطريقة الموجودة.
الأوامر الموضحة أدناه هي واجهة الاستنساخ العامة الكاملة. لا
ينبغي أن يحتاج القارئ إلى إعداد النصوص أو نقاط التحقق الأولية أو
خطوط الأساس التكيّفية أو مخرجات المعلّم المحجوزة أو حزم نقاط التحقق يدويًا.
تلك تبعيات داخلية تملكها أدوات التشغيل. يقتصر الإعداد اليدوي على
الموارد أو بيانات الاعتماد التي لا يمكن استنتاجها، مثل تخصيص وحدات معالجة الرسومات، والوصول إلى نماذج Hugging Face المقيّدة، ونقاط نهاية النماذج الخارجية الاختيارية.
## الطرق المدعومة
### الهجمات
يحتوي سجل الهجمات على ست طرق:```text
seqkd
lord
soda
qedks
model_leeching
gad
يستخدم بروتوكول الورقة ميزانيات هجوم 100 و1000 و10000. تحتوي مجموعة بيانات الاستعلام المنشورة أيضًا على مجموعات من 50,000 و100,000 سجل للمجموعات الفرعية الحتمية وبناء البيانات المحجوزة، لكن هذه لا يُعلن عنها كميزانيات هجوم أساسية.
تُفصل الدفاعات حسب العناصر التي تتطلبها.
دفاعات الاستخراج المحمية تعدّل الاستجابات أو التدريب أو عملية الاستخراج، وبالتالي تشغّل هجومًا محددًا تحت الدفاع:```text ads doge trace_rewriting adfp ginsew radioactivity
**دفاعات وكاشفات مبنية على النتائج** تستهلك الآثار من عملية هجوم مكتملة:```text
duffin
mmd
prada
seat
MMD وPRADA وSEAT تستهلك بشكل أساسي حركة استعلامات الهجوم. يستهلك DuFFin عناصر الهجوم المكتملة التي يتطلبها كاشفه. يحدد سجل الدفاع، وليس غلاف الصدفة، متطلبات العناصر الدقيقة لكل طريقة.
يحتوي سجل الهجوم التكيفي على:```text dipper translation
`translation` تشير إلى الهجوم التكيفي القائم على الترجمة العكسية الخاص بالمعيار المرجعي. يرفض السجل تركيبات التكيّف بين الهجوم والدفاع التي لم تُنفَّذ أو التي ليست جزءًا من بروتوكول المعيار المرجعي.
## الإعداد
استخدم Python 3.10 وبيئة CUDA/PyTorch متوافقة مع الإصدارات المسجّلة في الورقة البحثية. بيئة المعيار المرجعي الموحّدة هي:```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
نفّذ الأوامر أدناه من جذر المستودع. تحدد السكربتات تنفيذات أساليبها نسبةً إلى ذلك الجذر وتكتب جميع المخرجات الافتراضية هناك.
يغطي ملف المتطلبات الوحيد على المستوى الأعلى الهجمات والدفاعات والهجمات التكيفية وخدمة vLLM المحلية والتقييم. يستخدم فهرس حزم PyTorch CUDA 12.8 المسجّل في بيئة الورقة البحثية. على جهاز يحتوي على حزمة CUDA مختلفة، ثبّت إصدار PyTorch المطابق أولاً ثم ثبّت بقية المتطلبات. فعّل البيئة المطلوبة قبل استدعاء أي مشغّل؛ فالسكربتات المحمولة لا تحمّل وحدات البيئة ولا تفعّل Conda تلقائيًا.
تحقق من التثبيت قبل التشغيل الكامل:```bash
python3 attacks/scripts/check_attack_env.py
--require-trl --require-vllm --strict-versions
نماذج Llama المستخدمة في الهجمات، والهجمات التكيفية، وتقييمها
مقيّدة على Hugging Face. اطلب الوصول إلى مستودعي نموذج Llama، ثم
قم بالمصادقة مرة واحدة قبل تشغيل المعيار:```bash
hf auth login
على جهاز غير تفاعلي، قم بتعيين HF_TOKEN بدلاً من ذلك. تتم قراءة الرمز المميز بواسطة
مكتبات Hugging Face ويجب ألا يُكتب أبداً في ملف بيان أو نص برمجي أو
مستودع منشور. مجموعة بيانات مجمع الاستعلامات نفسها عامة.
| التجربة | الدور | معرّف نموذج Hugging Face |
|---|---|---|
| الهجمات النظيفة | الضحية/المعلّم | meta-llama/Llama-3.3-70B-Instruct |
| الهجمات النظيفة | البديل/الطالب | meta-llama/Llama-3.1-8B-Instruct |
| الدفاعات | الضحية/المعلّم | Qwen/Qwen2.5-72B-Instruct |
| الدفاعات | البديل/الطالب الأساسي | Qwen/Qwen2.5-7B |
| الهجمات التكيفية | الضحية/المعلّم | meta-llama/Llama-3.3-70B-Instruct |
| الهجمات التكيفية | البديل/الطالب | meta-llama/Llama-3.1-8B-Instruct |
| هجوم DIPPER التكيفي | معيد صياغة الاستجابة | kalpeshk2011/dipper-paraphraser-xxl |
| هجوم DIPPER التكيفي | المُرمِّز | google/t5-v1_1-xxl |
| هجوم الترجمة العكسية التكيفي | نموذج الترجمة | facebook/seamless-m4t-v2-large |
يمكن لمشغّل الهجوم تقديم نماذجه الكبيرة من خلال نقاط نهاية vLLM المحلية المتوافقة مع OpenAI. الإعدادات الافتراضية المحمولة هي:```text teacher endpoint: http://127.0.0.1:8000/v1 student endpoint: http://127.0.0.1:8001/v1
بالنسبة إلى `runs/run_attack.sh`، يحدد وضع الخدمة من يملك عملية الخادم:
| الوضع | دورة حياة الخادم |
|---|---|
| `local` (الافتراضي) | يبدأ السكربت تشغيل vLLM في التخصيص الحالي، وينتظر حتى يصبح جاهزًا، ويوقف فقط العملية التي بدأها. |
| `external` | يبدأ المستخدم نقطة نهاية متوافقة مع OpenAI قبل تشغيل السكربت. يتصل السكربت بها ولا يوقفها أبدًا. |
تستخدم نقاط دخول الدفاع والهجوم التكيفي مشغلات خاصة بكل طريقة؛
معرّفات النماذج المطلوبة مذكورة أعلاه. يبقى تخصيص GPU والتشغيل الموزع
وجدولة العنقود مسؤولية المستدعي. يتم تحميل الإعدادات الافتراضية لأخذ العينات والتدريب
والتقييم من ملف تعريف الورقة البحثية بدلًا من
تكرارها في سكربتات shell الفردية.
### مواقع المخرجات
تفسر جميع أوامر التشغيل `--output-root` كجذر مشترك للمخرجات وتضيف
دليل نوع التجربة الخاص بها تلقائيًا: