
Banco de pruebas y biblioteca para evaluar ataques de extracción de modelos y defensas de propiedad (marcas de agua, perturbación de salida, detección de consultas) en redes neuronales de grafos bajo un único protocolo de caja negra.
Un benchmark y una biblioteca unificados para evaluar ataques de extracción de modelos y defensas de propiedad sobre redes neuronales de grafos bajo un único protocolo de caja negra reproducible.
Por qué GraphIP-Bench · Aspectos destacados · Inicio rápido · Preguntas de investigación · Estructura · Citación
Las redes neuronales de grafos desplegadas como servicios en la nube pueden ser robadas mediante ataques de extracción de modelos: un adversario envía consultas cuidadosamente elegidas, registra las etiquetas o puntuaciones de confianza que devuelve el endpoint y entrena un sustituto local que reproduce el comportamiento del objetivo. Un robo exitoso filtra la propiedad intelectual del dueño, socava los ingresos por pago por consulta y permite a los competidores recrear funcionalidades propietarias a bajo coste.
Una línea creciente de defensas de propiedad —marcas de agua, huellas digitales, perturbación de la salida, detección de patrones de consulta— intenta prevenir o rastrear dicho robo. Pero la práctica experimental en este área está fragmentada: los estudios usan particiones privadas, presupuestos incompatibles y métricas inconsistentes; los pocos bancos de pruebas existentes se centran en robustez o privacidad y excluyen la extracción de modelos junto con la verificación de propiedad.
GraphIP-Bench aborda esta brecha. Estandariza la evaluación de dos pistas complementarias —la pista de extracción (un adversario entrena un sustituto que imita una GNN desplegada) y la pista de propiedad (el dueño del modelo verifica una marca de agua o huella digital tras la extracción)— bajo un único protocolo de caja negra con particiones, consultas y presupuestos compartidos. A continuación añadimos una pista conjunta de ataque y defensa que ejecuta cada ataque de extracción sobre cada objetivo defendido y mide la supervivencia de la marca de agua en el sustituto extraído —el escenario que determina realmente si una defensa es útil.
| Componente | Qué te ofrece |
|---|---|
| 12 ataques | Seis líneas base de estilo MEA (MEA0–MEA5), adversarial (AdvMEA), basado en centralidad (CEGA), consciente de la estructura (Realistic) y tres variantes sin datos (DFEA_I/II/III) |
| 12 defensas | 5 de trazabilidad de propiedad (BackdoorWM, RandomWM, SurviveWM, ImperceptibleWM, Integrity) + 7 de limitación de información (OP_low, OP_high, PR_2bit, PR_top1, PRADA, AdaptMisinfo, GradRedir) |
| 10 conjuntos de datos | Citación homofílica (Cora, CiteSeer, PubMed), coautoría/producto (CoauthorCS, CoauthorPhysics, Computers, Photo), a gran escala (OGBN-Arxiv), heterofílicos (RomanEmpire, AmazonRatings) |
| 3 backbones × 3 tareas | GCN, GAT, GraphSAGE en clasificación de nodos, predicción de enlaces, clasificación de grafos |
| Pista conjunta | Fidelidad del sustituto y supervivencia de la marca de agua en el sustituto extraído, todo bajo un mismo protocolo |
| Reproducibilidad | Particiones públicas, conjuntos de consultas compartidos, semillas fijas, salidas JSON-Lines, scripts de agregación listos para usar |
Un protocolo, dos ladosCada ataque se evalúa contra cada defensa bajo las mismas particiones, presupuestos y supuestos de extremo. La fidelidad, la verificación de propiedad, la utilidad y el coste computacional se reportan en una suite de métricas compartida. |
Supervivencia de la marca de agua, no solo su incrustaciónLa pista conjunta mide si una marca de agua aún se verifica después de que el modelo se extrae realmente — exponiendo la brecha que las evaluaciones de un solo modelo pasan por alto. |
Grafos heterofílicos y a gran escalaMás allá de los siete grafos homofílicos del protocolo central, añadimos OGBN-Arxiv (169K nodos, 40 clases) y los heterofílicos RomanEmpire / AmazonRatings para poner a prueba el comportamiento de ataques y defensas. |
Reproducible por construcciónSemillas fijas, conjuntos de consultas compartidos y registros de salida JSON-Lines por celda (conjunto de datos, ataque, defensa, régimen, presupuesto, semilla). Una ejecución con una sola semilla es directamente comparable con la celda correspondiente del artículo. |
| Señal | Escala en el benchmark |
|---|---|
| Ataques de extracción | 12 |
| Defensas de propiedad / limitación de información | 12 |
| Conjuntos de datos de grafos | 10 |
| Backbones GNN | 3 (GCN, GAT, GraphSAGE) |
| Tareas de aprendizaje en grafos | 3 (nodo / enlace / grafo) |
| Regímenes de disponibilidad de datos | 4 (ambos, solo características, solo estructura, sin datos) |
| Presupuestos de consulta estandarizados | 5 (0.05× — 1.00× del tamaño de test) |
| Semillas por celda | 3 |
| Pistas de evaluación | 3 (extracción, propiedad, conjunta) |
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
Ejecuta una celda de la pista de extracción:
python scripts/run_rq1_single.py \
--dataset Cora \
--attack MEA0 \
--regime both \
--budget 0.25 \
--seed 0 \
--gpu \
--output-dir outputs/RQ1
Ejecuta la pista conjunta de ataque y defensa sobre un único conjunto de datos:
python examples/run_joint_evaluation.py \
--dataset Cora \
--seed 0 \
--gpu
Cada ejecución escribe un registro JSON-Lines por cada tupla (ataque, defensa, régimen, presupuesto, semilla) en outputs/. Los registros se pueden fusionar y analizar con los helpers de scripts/ (p. ej., merge_rq1_rq5_faithful_results.py).
GraphIP-Bench es compatible con Linux (recomendado) y Python 3.10+. Fijamos las versiones de PyTorch / DGL / PyG porque los kernels graphbolt de DGL 2.1.0 solo se distribuyen como bibliotecas compartidas precompiladas para PyTorch 2.0–2.2 en CUDA 12.1.