
Benchmark et bibliothèque pour évaluer les attaques d'extraction de modèles et les défenses de propriété (watermarking, perturbation de sortie, détection de requêtes) sur les réseaux de neurones sur graphes sous un protocole en boîte noire unique.
Un benchmark et une bibliothèque unifiés pour évaluer les attaques par extraction de modèle et les défenses de propriété sur les réseaux de neurones sur graphe selon un protocole boîte noire reproductible unique.
Pourquoi GraphIP-Bench · Points forts · Démarrage rapide · Questions de recherche · Arborescence · Citation
Les réseaux de neurones sur graphe déployés en tant que services cloud peuvent être volés au moyen d'attaques par extraction de modèle : un adversaire soumet des requêtes soigneusement choisies, enregistre les étiquettes ou les scores de confiance renvoyés par le point de terminaison, puis entraîne un substitut local qui reproduit le comportement de la cible. Un vol réussi divulgue la propriété intellectuelle du propriétaire, compromet les revenus liés au paiement à la requête et permet aux concurrents de recréer des fonctionnalités propriétaires à moindre coût.
Une lignée croissante de défenses de propriété — filigrane, empreinte numérique, perturbation de la sortie, détection de motifs de requêtes — tente de prévenir ou de tracer de tels vols. Mais la pratique expérimentale dans ce domaine est fragmentée : les études utilisent des découpages privés, des budgets incompatibles et des métriques incohérentes ; les rares bancs d'essai existants se concentrent sur la robustesse ou la confidentialité et excluent l'extraction de modèle ainsi que la vérification de propriété.
GraphIP-Bench comble cette lacune. Il standardise l'évaluation de deux axes complémentaires — l'axe d'extraction (un adversaire entraîne un substitut qui imite un GNN déployé) et l'axe de propriété (le propriétaire du modèle vérifie un filigrane ou une empreinte après extraction) — selon un protocole boîte noire unique avec des découpages, des requêtes et des budgets partagés. Nous ajoutons ensuite un axe conjoint attaque-et-défense qui exécute chaque attaque d'extraction sur chaque cible défendue et mesure la survie du filigrane sur le substitut extrait — le cadre qui détermine réellement si une défense est utile.
| Composant | Ce qu'il vous apporte |
|---|---|
| 12 attaques | Six baselines de style MEA (MEA0–MEA5), adversarial (AdvMEA), pilotée par la centralité (CEGA), sensible à la structure (Realistic), et trois variantes sans données (DFEA_I/II/III) |
| 12 défenses | 5 de traçage de propriété (BackdoorWM, RandomWM, SurviveWM, ImperceptibleWM, Integrity) + 7 de limitation d'information (OP_low, OP_high, PR_2bit, PR_top1, PRADA, AdaptMisinfo, GradRedir) |
| 10 jeux de données | Citation homophile (Cora, CiteSeer, PubMed), coauteur/produit (CoauthorCS, CoauthorPhysics, Computers, Photo), à grande échelle (OGBN-Arxiv), hétérophile (RomanEmpire, AmazonRatings) |
| 3 backbones × 3 tâches | GCN, GAT, GraphSAGE sur la classification de nœuds, la prédiction de liens, la classification de graphes |
| Piste conjointe | Fidélité du substitut et survie du filigrane sur le substitut extrait, le tout sous un seul protocole |
| Reproductibilité | Splits publics, ensembles de requêtes partagés, graines fixes, sorties JSON-Lines, scripts d'agrégation prêts à l'emploi |
Un protocole, deux facesChaque attaque est évaluée contre chaque défense avec les mêmes splits, budgets et hypothèses de point de terminaison. La fidélité, la vérification de propriété, l'utilité et le coût de calcul sont rapportés sur une suite de métriques partagée. |
Survie du filigrane, pas seulement son intégrationLa piste conjointe mesure si un filigrane se vérifie encore après l'extraction effective du modèle — révélant l'écart que les évaluations sur modèle unique manquent. |
Graphes hétérophiles et à grande échelleAu-delà des sept graphes homophiles du protocole de base, nous ajoutons OGBN-Arxiv (169K nœuds, 40 classes) et les graphes hétérophiles RomanEmpire / AmazonRatings pour éprouver le comportement des attaques et des défenses. |
Reproductible par constructionGraines fixes, ensembles de requêtes partagés et enregistrements de sortie JSON-Lines par cellule (jeu de données, attaque, défense, régime, budget, graine). Une exécution à graine unique est directement comparable à la cellule correspondante de l'article. |
| Signal | Échelle dans le benchmark |
|---|---|
| Attaques d'extraction | 12 |
| Défenses de propriété / limitation d'information | 12 |
| Jeux de données de graphes | 10 |
| Backbones GNN | 3 (GCN, GAT, GraphSAGE) |
| Tâches d'apprentissage sur graphes | 3 (nœud / lien / graphe) |
| Régimes de disponibilité des données | 4 (les deux, caractéristiques seules, structure seule, sans données) |
| Budgets de requêtes standardisés | 5 (0,05× — 1,00× taille du test) |
| Graines par cellule | 3 |
| Pistes d'évaluation | 3 (extraction, propriété, conjointe) |
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
Exécuter une cellule de la piste d'extraction :
python scripts/run_rq1_single.py \
--dataset Cora \
--attack MEA0 \
--regime both \
--budget 0.25 \
--seed 0 \
--gpu \
--output-dir outputs/RQ1
Exécutez la piste conjointe attaque-et-défense sur un seul jeu de données :
python examples/run_joint_evaluation.py \
--dataset Cora \
--seed 0 \
--gpu
Chaque exécution écrit un enregistrement JSON-Lines par tuple (attaque, défense, régime, budget, graine) dans outputs/. Les enregistrements peuvent être fusionnés et analysés avec les utilitaires de scripts/ (par exemple merge_rq1_rq5_faithful_results.py).
GraphIP-Bench prend en charge Linux (recommandé) avec Python 3.10+. Nous épinglons les versions de PyTorch / DGL / PyG car les noyaux graphbolt de DGL 2.1.0 ne sont fournis qu'en bibliothèques partagées précompilées pour PyTorch 2.0–2.2 sous CUDA 12.1.