
Benchmark e biblioteca para avaliar ataques de extração de modelos e defesas de propriedade (marcação de água, perturbação de saída, deteção de consultas) em redes neuronais de grafos sob um único protocolo de caixa negra.
Um benchmark e biblioteca unificados para avaliar ataques de extração de modelos e defesas de propriedade em redes neurais em grafos sob um único protocolo de caixa-preta reproduzível.
Por que GraphIP-Bench · Destaques · Início Rápido · Questões de Pesquisa · Estrutura · Citação
Redes neurais em grafos implantadas como serviços em nuvem podem ser roubadas por meio de ataques de extração de modelos: um adversário envia consultas cuidadosamente escolhidas, registra os rótulos ou pontuações de confiança que o endpoint retorna e treina um substituto local que reproduz o comportamento do alvo. Um roubo bem-sucedido vaza a propriedade intelectual do proprietário, prejudica a receita de pagamento por consulta e permite que concorrentes recriem funcionalidades proprietárias a baixo custo.
Uma linha crescente de defesas de propriedade — marca d'água, fingerprinting, perturbação de saída, detecção de padrões de consulta — tenta prevenir ou rastrear esse roubo. Mas a prática experimental nessa área é fragmentada: os estudos usam divisões privadas, orçamentos incompatíveis e métricas inconsistentes; os poucos testbeds existentes focam em robustez ou privacidade e excluem a extração de modelos juntamente com a verificação de propriedade.
GraphIP-Bench aborda essa lacuna. Ele padroniza a avaliação de duas trilhas complementares — a trilha de extração (um adversário treina um substituto que imita uma GNN implantada) e a trilha de propriedade (o proprietário do modelo verifica uma marca d'água ou fingerprint após a extração) — sob um único protocolo de caixa-preta com divisões, consultas e orçamentos compartilhados. Em seguida, adicionamos uma trilha conjunta de ataque e defesa que executa cada ataque de extração em cada alvo defendido e mede a sobrevivência da marca d'água no substituto extraído — o cenário que de fato determina se uma defesa é útil.
| Componente | O que ele oferece |
|---|---|
| 12 ataques | Seis baselines no estilo MEA (MEA0–MEA5), adversarial (AdvMEA), orientado por centralidade (CEGA), sensível à estrutura (Realistic) e três variantes sem dados (DFEA_I/II/III) |
| 12 defesas | 5 de rastreamento de propriedade (BackdoorWM, RandomWM, SurviveWM, ImperceptibleWM, Integrity) + 7 de limitação de informação (OP_low, OP_high, PR_2bit, PR_top1, PRADA, AdaptMisinfo, GradRedir) |
| 10 conjuntos de dados | Citação homofílica (Cora, CiteSeer, PubMed), coautoria/produto (CoauthorCS, CoauthorPhysics, Computers, Photo), em larga escala (OGBN-Arxiv), heterofílicos (RomanEmpire, AmazonRatings) |
| 3 backbones × 3 tarefas | GCN, GAT, GraphSAGE em classificação de nós, predição de links, classificação de grafos |
| Trilha conjunta | Fidelidade do substituto e sobrevivência da marca d'água no substituto extraído, tudo sob um único protocolo |
| Reprodutibilidade | Splits públicos, conjuntos de consultas compartilhados, sementes fixas, saídas JSON-Lines, scripts de agregação prontos |
Um protocolo, dois ladosCada ataque é avaliado contra cada defesa sob os mesmos splits, orçamentos e suposições de endpoint. Fidelidade, verificação de propriedade, utilidade e custo computacional são reportados em uma suíte de métricas compartilhada. |
Sobrevivência da marca d'água, não apenas incorporaçãoA trilha conjunta mede se uma marca d'água ainda é verificável após o modelo ser efetivamente extraído — expondo a lacuna que avaliações de modelo único deixam passar. |
Grafos heterofílicos e em larga escalaAlém dos sete grafos homofílicos do protocolo central, adicionamos OGBN-Arxiv (169K nós, 40 classes) e os heterofílicos RomanEmpire / AmazonRatings para testar sob estresse o comportamento de ataque e defesa. |
Reprodutível por construçãoSementes fixas, conjuntos de consultas compartilhados e registros de saída JSON-Lines por célula (conjunto de dados, ataque, defesa, regime, orçamento, semente). Uma execução com semente única é diretamente comparável à célula correspondente no artigo. |
| Sinal | Escala no benchmark |
|---|---|
| Ataques de extração | 12 |
| Defesas de propriedade / limitação de informação | 12 |
| Conjuntos de dados de grafos | 10 |
| Backbones de GNN | 3 (GCN, GAT, GraphSAGE) |
| Tarefas de aprendizado em grafos | 3 (nó / link / grafo) |
| Regimes de disponibilidade de dados | 4 (ambos, apenas features, apenas estrutura, sem dados) |
| Orçamentos de consulta padronizados | 5 (0,05× — 1,00× do tamanho do teste) |
| Sementes por célula | 3 |
| Trilhas de avaliação | 3 (extração, propriedade, 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
Execute uma célula da trilha de extração:
python scripts/run_rq1_single.py \
--dataset Cora \
--attack MEA0 \
--regime both \
--budget 0.25 \
--seed 0 \
--gpu \
--output-dir outputs/RQ1
Execute a trilha conjunta de ataque e defesa em um único conjunto de dados:
python examples/run_joint_evaluation.py \
--dataset Cora \
--seed 0 \
--gpu
Cada execução grava um registro JSON-Lines por tupla (attack, defense, regime, budget, seed) em outputs/. Os registros podem ser mesclados e analisados com os helpers em scripts/ (por exemplo, merge_rq1_rq5_faithful_results.py).
O GraphIP-Bench oferece suporte a Linux (recomendado) com Python 3.10+. Fixamos as versões de PyTorch / DGL / PyG porque os kernels graphbolt do DGL 2.1.0 só são distribuídos como bibliotecas compartilhadas pré-compiladas para PyTorch 2.0–2.2 em 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