
Benchmark e libreria per valutare attacchi di estrazione del modello e difese della proprietà (watermarking, perturbazione dell'output, rilevamento delle query) su reti neurali a grafo sotto un unico protocollo black-box.
Un benchmark e una libreria unificati per valutare attacchi di estrazione del modello e difese della proprietà su reti neurali per grafi sotto un unico protocollo black-box riproducibile.
Perché GraphIP-Bench · Punti salienti · Avvio rapido · Domande di ricerca · Struttura · Citazione
Le reti neurali per grafi distribuite come servizi cloud possono essere rubate tramite attacchi di estrazione del modello: un avversario invia query accuratamente selezionate, registra le etichette o i punteggi di confidenza restituiti dall'endpoint e addestra un surrogato locale che riproduce il comportamento del modello bersaglio. Un furto riuscito divulga la proprietà intellettuale del titolare, compromette i ricavi basati sul pagamento per query e consente ai concorrenti di ricreare funzionalità proprietarie a basso costo.
Una linea crescente di difese della proprietà — watermarking, fingerprinting, perturbazione dell'output, rilevamento dei pattern di query — cerca di prevenire o tracciare tale furto. Ma la pratica sperimentale in questo ambito è frammentata: gli studi utilizzano split privati, budget incompatibili e metriche incoerenti; i pochi testbed esistenti si concentrano su robustezza o privacy ed escludono l'estrazione del modello insieme alla verifica della proprietà.
GraphIP-Bench colma questa lacuna. Standardizza la valutazione di due tracce complementari — la traccia di estrazione (un avversario addestra un surrogato che imita una GNN distribuita) e la traccia di proprietà (il titolare del modello verifica un watermark o un fingerprint dopo l'estrazione) — sotto un unico protocollo black-box con split, query e budget condivisi. Aggiungiamo poi una traccia congiunta di attacco e difesa che esegue ogni attacco di estrazione su ogni bersaglio difeso e misura la sopravvivenza del watermark sul surrogato estratto — la configurazione che determina effettivamente se una difesa è utile.
| Componente | Cosa ti offre |
|---|---|
| 12 attacchi | Sei baseline in stile MEA (MEA0–MEA5), adversarial (AdvMEA), guidato dalla centralità (CEGA), structure-aware (Realistic) e tre varianti data-free (DFEA_I/II/III) |
| 12 difese | 5 di tracciamento della proprietà (BackdoorWM, RandomWM, SurviveWM, ImperceptibleWM, Integrity) + 7 di limitazione dell'informazione (OP_low, OP_high, PR_2bit, PR_top1, PRADA, AdaptMisinfo, GradRedir) |
| 10 dataset | Citazioni omofile (Cora, CiteSeer, PubMed), coautori/prodotti (CoauthorCS, CoauthorPhysics, Computers, Photo), su larga scala (OGBN-Arxiv), eterofili (RomanEmpire, AmazonRatings) |
| 3 backbone × 3 task | GCN, GAT, GraphSAGE su classificazione dei nodi, predizione dei link, classificazione dei grafi |
| Track congiunto | Fedeltà del surrogato e sopravvivenza del watermark sul surrogato estratto, tutto sotto un unico protocollo |
| Riproducibilità | Split pubblici, set di query condivisi, seed fissi, output JSON-Lines, script di aggregazione pronti all'uso |
Un protocollo, due latiOgni attacco è valutato contro ogni difesa con gli stessi split, budget e ipotesi sugli endpoint. Fedeltà, verifica della proprietà, utilità e costo computazionale sono riportati su una suite di metriche condivisa. |
Sopravvivenza del watermark, non solo embeddingIl track congiunto misura se un watermark verifica ancora dopo che il modello è stato effettivamente estratto — esponendo il divario che le valutazioni su singolo modello trascurano. |
Grafi eterofili e su larga scalaOltre ai sette grafi omofili del protocollo principale, aggiungiamo OGBN-Arxiv (169K nodi, 40 classi) e i grafi eterofili RomanEmpire / AmazonRatings per stressare il comportamento di attacchi e difese. |
Riproducibile per costruzioneSeed fissi, set di query condivisi e record di output JSON-Lines per ogni cella (dataset, attacco, difesa, regime, budget, seed). Un'esecuzione con singolo seed è direttamente confrontabile con la cella corrispondente nel paper. |
| Segnale | Scala nel benchmark |
|---|---|
| Attacchi di estrazione | 12 |
| Difese di proprietà / limitazione dell'informazione | 12 |
| Dataset di grafi | 10 |
| Backbone GNN | 3 (GCN, GAT, GraphSAGE) |
| Task di graph learning | 3 (nodo / link / grafo) |
| Regimi di disponibilità dei dati | 4 (entrambi, solo feature, solo struttura, data-free) |
| Budget di query standardizzati | 5 (0.05× — 1.00× dimensione del test) |
| Seed per cella | 3 |
| Track di valutazione | 3 (estrazione, proprietà, congiunto) |
git clone https://github.com/LabRAI/GraphIP-Bench.git
cd GraphIP-Bench
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt
Esegui una cella del percorso di estrazione:
python scripts/run_rq1_single.py \
--dataset Cora \
--attack MEA0 \
--regime both \
--budget 0.25 \
--seed 0 \
--gpu \
--output-dir outputs/RQ1
Esegui la track congiunta di attacco e difesa su un singolo dataset:
python examples/run_joint_evaluation.py \
--dataset Cora \
--seed 0 \
--gpu
Ogni esecuzione scrive un record JSON-Lines per ogni tupla (attack, defense, regime, budget, seed) in outputs/. I record possono essere uniti e analizzati con gli helper in scripts/ (ad es. merge_rq1_rq5_faithful_results.py).
GraphIP-Bench supporta Linux (consigliato) con Python 3.10+. Fissiamo le versioni di PyTorch / DGL / PyG perché i kernel graphbolt di DGL 2.1.0 sono distribuiti come librerie condivise precompilate solo per PyTorch 2.0–2.2 su CUDA 12.1.
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt
python -m venv .venv && source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt