
ब्लैक-बॉक्स LLM एक्सट्रैक्शन हमलों, रक्षाओं और अनुकूली हमलों के लिए एक जीवनचक्र बेंचमार्क।
यह रिपॉज़िटरी मॉडल एक्सट्रैक्शन हमलों, रक्षा, अनुकूली हमलों, और मूल्यांकन के लिए एक एकीकृत बेंचमार्क प्रदान करती है। सार्वजनिक इंटरफ़ेस को कुछ पोर्टेबल कमांड्स के आसपास व्यवस्थित किया गया है। विधि-विशिष्ट Python मॉड्यूल और लीगेसी रन स्क्रिप्ट्स उपयोगकर्ता-केंद्रित एंट्री पॉइंट्स के बजाय कार्यान्वयन विवरण हैं।
नीचे दिए गए चार पोर्टेबल एंट्री पॉइंट्स अपने सार्वजनिक आर्गुमेंट्स को मान्य करते हैं और फिर विधि कार्यान्वयनों को डिस्पैच करते हैं। Slurm रिसोर्स रैपर्स को जानबूझकर बाहर रखा गया है। विधि-स्वामित्व वाले मैनिफेस्ट्स रिज़्यूम व्यवहार और आर्टिफैक्ट प्रोवेनेंस के लिए आधिकारिक बने हुए हैं।
Do Defenses Against LLM Extraction Work Across Attacks? A Lifecycle Benchmark of Black-Box Model Extraction
Shuze Liu (Florida State University), Kaixiang Zhao (Brigham Young University), Runyang Xu (University of Michigan, Ann Arbor), Jingzhi Chen (State University of New York at Buffalo), Nathan Wu (Wake Forest University), Yu Wang (University of Georgia), और Yushun Dong (Florida State University)।
पेपर स्रोत: 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` |
सभी चार कमांड:
- Slurm के बिना सामान्य शेल कमांड के रूप में काम करते हैं;
- `--help` और `--dry-run` स्वीकार करते हैं;
- शुरू करने से पहले अनुरोधित प्रयोग को मान्य करते हैं;
- स्वचालित रूप से सभी पूर्वापेक्षा आर्टिफैक्ट बनाते, खोजते, मान्य करते और पुनः उपयोग करते हैं;
- `--profile paper` के अंतर्गत नियतात्मक बेंचमार्क डिफ़ॉल्ट का उपयोग करते हैं;
- प्रत्येक विधि के मौजूदा रिज़्यूम और आर्टिफैक्ट-पुनःउपयोग व्यवहार को संरक्षित करते हैं;
- मशीन-पठनीय रन मेटाडेटा और इनपुट प्रोवेनेंस लिखते या संरक्षित करते हैं;
- एम्बेडेड उपयोगकर्ता नाम, क्लस्टर खातों, ईमेल पतों, या साइट-विशिष्ट पथों से बचते हैं।
रनर वर्तमान शेल प्रक्रिया में प्रयोग तर्क का समन्वय करते हैं। वे क्लस्टर
जॉब सबमिट नहीं करते या शेड्यूलर पार्टीशन नहीं चुनते। रनर को आमंत्रित करने
से पहले पर्याप्त CPU, मेमोरी, और GPU आवंटित करने की ज़िम्मेदारी कॉलर की है।
एक उपयोगकर्ता पहले से चल रहे OpenAI-संगत शिक्षक और छात्र एंडपॉइंट प्रदान
कर सकता है; आक्रमण डिस्पैचर अपनी मौजूदा विधि-स्थानीय vLLM सेवाएँ भी शुरू
कर सकता है।
नीचे दिखाए गए कमांड पूर्ण सार्वजनिक पुनरुत्पादन इंटरफ़ेस हैं। एक पाठक को
ट्रांसक्रिप्ट, वार्मअप चेकपॉइंट, अनुकूली बेसलाइन, होल्ड-आउट शिक्षक आउटपुट,
या चेकपॉइंट बंडल मैन्युअल रूप से तैयार करने की आवश्यकता नहीं होनी चाहिए।
वे रनर के स्वामित्व वाली आंतरिक निर्भरताएँ हैं। मैन्युअल कॉन्फ़िगरेशन उन
संसाधनों या क्रेडेंशियल्स तक सीमित है जिनका अनुमान नहीं लगाया जा सकता, जैसे
GPU आवंटन, गेटेड 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 मुख्य रूप से attack query traffic का उपभोग करते हैं। DuFFin अपने detector द्वारा आवश्यक completed attack artifacts का उपभोग करता है। defense registry, न कि shell wrapper, प्रत्येक method के लिए सटीक artifact requirements को परिभाषित करता है।
adaptive-attack registry में शामिल हैं:```text dipper translation
`translation` बेंचमार्क के बैक-ट्रांसलेशन अनुकूली हमले को दर्शाता है। रजिस्ट्री उन हमला-रक्षा-अनुकूलन संयोजनों को अस्वीकार करती है जो कार्यान्वित नहीं हैं या बेंचमार्क प्रोटोकॉल का हिस्सा नहीं हैं।
## सेटअप
Python 3.10 और पेपर में दर्ज संस्करणों के साथ संगत CUDA/PyTorch वातावरण का उपयोग करें। एकीकृत बेंचमार्क वातावरण है:```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
रिपॉज़िटरी रूट से नीचे दिए गए कमांड चलाएँ। स्क्रिप्ट्स अपने मेथड इम्प्लीमेंटेशन्स को उसी रूट के सापेक्ष ढूँढती हैं और सभी डिफ़ॉल्ट आर्टिफैक्ट्स वहीं लिखती हैं।
एकल टॉप-लेवल requirements फ़ाइल attacks, defenses, adaptive attacks, local vLLM serving, और evaluation को कवर करती है। यह पेपर एनवायरनमेंट द्वारा रिकॉर्ड किए गए CUDA 12.8 PyTorch wheel index का उपयोग करती है। भिन्न CUDA स्टैक वाली मशीन पर, पहले मेल खाता PyTorch बिल्ड इंस्टॉल करें और फिर शेष requirements इंस्टॉल करें। किसी रनर को इनवोक करने से पहले वांछित एनवायरनमेंट सक्रिय करें; पोर्टेबल स्क्रिप्ट्स एनवायरनमेंट मॉड्यूल लोड नहीं करतीं या Conda को स्वतः सक्रिय नहीं करतीं।
पूर्ण रन से पहले इंस्टॉलेशन सत्यापित करें:```bash
python3 attacks/scripts/check_attack_env.py
--require-trl --require-vllm --strict-versions
हमलों में उपयोग किए जाने वाले Llama मॉडल, अनुकूली हमले, और उनका मूल्यांकन
Hugging Face पर gated हैं। दोनों Llama मॉडल रिपॉज़िटरी तक पहुँच का अनुरोध करें, फिर
बेंचमार्क चलाने से पहले एक बार प्रमाणित करें:```bash
hf auth login
एक गैर-इंटरैक्टिव मशीन पर, इसके बजाय HF_TOKEN सेट करें। टोकन को
Hugging Face लाइब्रेरीज़ द्वारा पढ़ा जाता है और इसे कभी भी किसी मैनिफ़ेस्ट, स्क्रिप्ट, या
प्रकाशित रिपॉज़िटरी में नहीं लिखा जाना चाहिए। क्वेरी-पूल डेटासेट स्वयं सार्वजनिक है।
| प्रयोग | भूमिका | Hugging Face मॉडल ID |
|---|---|---|
| क्लीन अटैक | विक्टिम/टीचर | 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 |
अटैक रनर अपने बड़े मॉडल्स को लोकल OpenAI-संगत vLLM एंडपॉइंट्स के माध्यम से सर्व कर सकता है। पोर्टेबल डिफ़ॉल्ट्स हैं:```text teacher endpoint: http://127.0.0.1:8000/v1 student endpoint: http://127.0.0.1:8001/v1
`runs/run_attack.sh` के लिए, serving mode यह निर्धारित करता है कि server process का स्वामित्व किसके पास है:
| Mode | Server lifecycle |
|---|---|
| `local` (default) | स्क्रिप्ट वर्तमान allocation में vLLM शुरू करती है, उसके healthy होने की प्रतीक्षा करती है, और केवल उसी process को रोकती है जिसे उसने शुरू किया था। |
| `external` | उपयोगकर्ता स्क्रिप्ट चलाने से पहले एक OpenAI-compatible endpoint शुरू करता है। स्क्रिप्ट उससे कनेक्ट होती है और उसे कभी नहीं रोकती। |