
Un benchmark del ciclo di vita per attacchi di estrazione LLM black-box, difese e attacchi adattivi.
Questo repository fornisce un benchmark unificato per gli attacchi di estrazione del modello, le difese, gli attacchi adattivi e la valutazione. L'interfaccia pubblica è organizzata attorno a un piccolo numero di comandi portabili. I moduli Python specifici per metodo e gli script di esecuzione legacy sono dettagli implementativi piuttosto che punti di ingresso rivolti all'utente.
I quattro punti di ingresso portabili riportati di seguito validano i loro argomenti pubblici e poi effettuano il dispatch alle implementazioni dei metodi. I wrapper di risorse Slurm sono intenzionalmente esclusi. I manifest di proprietà dei metodi rimangono autoritativi per il comportamento di ripresa e la provenienza degli artefatti.
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), e Yushun Dong (Florida State University).
Sorgente del paper: https://github.com/sliu11-byte/MEA_benchmark_arXiv
Questo repository fornisce le implementazioni e l'interfaccia di riproduzione per il paper. I pool di query sono ospitati nel progetto Hugging Face degli autori: 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
## Interfaccia Pubblica Canonica
Il benchmark espone quattro comandi di livello superiore:
| Esperimento | Punto di ingresso | Argomenti richiesti per l'esperimento |
|---|---|---|
| Attacco | `runs/run_attack.sh` | `--attack`, `--budget` |
| Difesa | `runs/run_defense.sh` | estrazione difesa: `--defense`, `--attack`, `--budget`; difesa basata sui risultati: `--defense`, `--attack-run` |
| Attacco adattivo | `runs/run_adaptive_attack.sh` | `--adaptive-attack`, `--defense`, `--attack`, `--budget` |
| Valutazione | `runs/run_evaluation.sh` | `--manifest` |
Tutti e quattro i comandi:
- funzionano come normali comandi shell senza Slurm;
- accettano `--help` e `--dry-run`;
- validano l'esperimento richiesto prima di iniziare;
- creano, scoprono, validano e riutilizzano automaticamente tutti gli artefatti prerequisiti;
- utilizzano i valori predefiniti deterministici del benchmark sotto `--profile paper`;
- preservano il comportamento esistente di ripresa e riutilizzo degli artefatti di ciascun metodo;
- scrivono o preservano metadati di esecuzione leggibili dalla macchina e provenienza degli input;
- evitano nomi utente, account di cluster, indirizzi email o percorsi specifici del sito incorporati.
I runner coordinano la logica dell'esperimento nel processo shell corrente. Non
inviano job al cluster né scelgono una partizione dello scheduler. Il chiamante è responsabile
di allocare CPU, memoria e GPU sufficienti prima di invocare un runner. Un utente
può fornire endpoint teacher e student già in esecuzione compatibili con OpenAI; il
dispatcher degli attacchi può anche avviare i suoi servizi vLLM locali al metodo già esistenti.
I comandi mostrati di seguito costituiscono l'interfaccia pubblica completa di riproduzione. Un
lettore non dovrebbe aver bisogno di preparare manualmente trascrizioni, checkpoint di warmup, baseline adattive, output teacher held-out o bundle di checkpoint.
Queste sono dipendenze interne di proprietà dei runner. La configurazione manuale è
limitata a risorse o credenziali che non possono essere inferite, come l'allocazione GPU, l'accesso a modelli Hugging Face con gating e endpoint opzionali di modelli esterni.
## Metodi Supportati
### Attacchi
Il registro degli attacchi contiene sei metodi:```text
seqkd
lord
soda
qedks
model_leeching
gad
Il protocollo del paper utilizza budget di attacco 100, 1000 e 10000. Il dataset di query pubblicato contiene anche pool da 50.000 e 100.000 record per sottoinsiemi deterministici e costruzione held-out, ma questi non sono pubblicizzati come budget di attacco primari.
Le difese sono separate in base agli artefatti che richiedono.
Le difese di estrazione protetta modificano le risposte, l'addestramento o il processo di estrazione e quindi eseguono un attacco selezionato sotto la difesa:```text ads doge trace_rewriting adfp ginsew radioactivity
**Difese e rilevatori basati sui risultati** consumano artefatti da un'esecuzione di attacco completata:```text
duffin
mmd
prada
seat
MMD, PRADA e SEAT consumano principalmente il traffico di query di attacco. DuFFin consuma gli artefatti di attacco completati richiesti dal suo rilevatore. Il registro delle difese, non il wrapper della shell, definisce i requisiti esatti degli artefatti per ciascun metodo.
Il registro degli attacchi adattivi contiene:```text dipper translation
`translation` indica l'attacco adattivo di back-translation del benchmark. Il
registro rifiuta le combinazioni attacco-difesa-adattamento che non sono
implementate o non fanno parte del protocollo del benchmark.
## Setup
Usa Python 3.10 e un ambiente CUDA/PyTorch compatibile con le versioni
registrate nel paper. L'ambiente unificato del benchmark è:```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Esegui i comandi seguenti dalla radice del repository. Gli script individuano le loro implementazioni dei metodi relative a quella radice e scrivono tutti gli artefatti predefiniti lì.
Il singolo file dei requisiti di primo livello copre attacchi, difese, attacchi adattivi, servizio vLLM locale e valutazione. Utilizza l'indice dei wheel PyTorch CUDA 12.8 registrato dall'ambiente del paper. Su una macchina con uno stack CUDA diverso, installa prima la build PyTorch corrispondente e poi installa i restanti requisiti. Attiva l'ambiente desiderato prima di invocare un runner; gli script portabili non caricano automaticamente i moduli d'ambiente né attivano Conda.
Verifica l'installazione prima di un'esecuzione completa:```bash
python3 attacks/scripts/check_attack_env.py
--require-trl --require-vllm --strict-versions
I modelli Llama utilizzati dagli attacchi, dagli attacchi adattivi e dalla loro valutazione sono
soggetti ad autorizzazione su Hugging Face. Richiedi l'accesso a entrambi i repository dei modelli Llama, quindi
autenticati una volta prima di eseguire il benchmark:```bash
hf auth login
Su una macchina non interattiva, impostare invece HF_TOKEN. Il token viene letto dalle
librerie di Hugging Face e non deve mai essere scritto in un manifest, script o
repository pubblicato. Il dataset query-pool stesso è pubblico.
| Esperimento | Ruolo | ID modello Hugging Face |
|---|---|---|
| Attacchi puliti | vittima/teacher | meta-llama/Llama-3.3-70B-Instruct |
| Attacchi puliti | surrogato/student | meta-llama/Llama-3.1-8B-Instruct |
| Difese | vittima/teacher | Qwen/Qwen2.5-72B-Instruct |
| Difese | surrogato/student di base | Qwen/Qwen2.5-7B |
| Attacchi adattivi | vittima/teacher | meta-llama/Llama-3.3-70B-Instruct |
| Attacchi adattivi | surrogato/student | meta-llama/Llama-3.1-8B-Instruct |
| Attacco adattivo DIPPER | riscrittore di risposte | kalpeshk2011/dipper-paraphraser-xxl |
| Attacco adattivo DIPPER | tokenizer | google/t5-v1_1-xxl |
| Attacco adattivo di back-translation | modello di traduzione | facebook/seamless-m4t-v2-large |