
Бенчмарк и библиотека для оценки атак извлечения моделей и методов защиты прав собственности (водяные знаки, возмущение выходных данных, обнаружение запросов) на графовых нейронных сетях в рамках единого протокола чёрного ящика.
Единый бенчмарк и библиотека для оценки атак извлечения моделей и защит прав собственности на графовых нейронных сетях в рамках единого воспроизводимого протокола чёрного ящика.
Зачем нужен GraphIP-Bench · Ключевые особенности · Быстрый старт · Исследовательские вопросы · Структура · Цитирование
Графовые нейронные сети, развёрнутые в виде облачных сервисов, можно украсть с помощью атак извлечения моделей: злоумышленник отправляет тщательно подобранные запросы, записывает метки или оценки уверенности, которые возвращает конечная точка, и обучает локальную суррогатную модель, воспроизводящую поведение целевой. Успешная кража раскрывает интеллектуальную собственность владельца, подрывает доход от оплаты за запрос и позволяет конкурентам воссоздать проприетарную функциональность с низкими затратами.
Растущее направление защит прав собственности — водяные знаки, фингерпринтинг, возмущение выходных данных, обнаружение шаблонов запросов — пытается предотвратить или отследить такую кражу. Но экспериментальная практика в этой области фрагментирована: исследования используют закрытые разбиения, несовместимые бюджеты и несогласованные метрики; немногочисленные существующие тестовые стенды сосредоточены на робастности или конфиденциальности и исключают извлечение моделей вместе с верификацией прав собственности.
GraphIP-Bench восполняет этот пробел. Он стандартизирует оценку двух взаимодополняющих треков — трека извлечения (злоумышленник обучает суррогатную модель, имитирующую развёрнутую GNN) и трека прав собственности (владелец модели проверяет водяной знак или фингерпринт после извлечения) — в рамках единого протокола чёрного ящика с общими разбиениями, запросами и бюджетами. Затем мы добавляем совместный трек атак и защит, который запускает каждую атаку извлечения на каждой защищённой цели и измеряет выживаемость водяного знака на извлечённой суррогатной модели — именно эта постановка определяет, полезна ли защита на практике.
| Компонент | Что это даёт |
|---|---|
| 12 атак | Шесть базовых методов в стиле MEA (MEA0–MEA5), состязательный (AdvMEA), основанный на центральности (CEGA), учитывающий структуру (Realistic) и три варианта без данных (DFEA_I/II/III) |
| 12 защит | 5 методов отслеживания владения (BackdoorWM, RandomWM, SurviveWM, ImperceptibleWM, Integrity) + 7 методов ограничения информации (OP_low, OP_high, PR_2bit, PR_top1, PRADA, AdaptMisinfo, GradRedir) |
| 10 наборов данных | Гомофильные цитирования (Cora, CiteSeer, PubMed), соавторство/товары (CoauthorCS, CoauthorPhysics, Computers, Photo), крупномасштабные (OGBN-Arxiv), гетерофильные (RomanEmpire, AmazonRatings) |
| 3 магистрали × 3 задачи | GCN, GAT, GraphSAGE для классификации узлов, предсказания связей, классификации графов |
| Совместный трек | Точность суррогата и выживание водяного знака на извлечённом суррогате — всё в рамках одного протокола |
| Воспроизводимость | Публичные разбиения, общие наборы запросов, фиксированные seed'ы, вывод в формате JSON-Lines, готовые скрипты агрегации |
Один протокол, две стороныКаждая атака оценивается против каждой защиты при одинаковых разбиениях, бюджетах и допущениях о конечных точках. Точность, проверка владения, полезность и вычислительные затраты сообщаются в едином наборе метрик. |
Выживание водяного знака, а не только его внедрениеСовместный трек измеряет, сохраняет ли водяной знак верификацию после фактического извлечения модели — выявляя разрыв, который упускают оценки на одной модели. |
Гетерофильные и крупномасштабные графыПомимо семи гомофильных графов базового протокола, мы добавляем OGBN-Arxiv (169 тыс. узлов, 40 классов) и гетерофильные RomanEmpire / AmazonRatings для стресс-тестирования поведения атак и защит. |
Воспроизводимость по построениюФиксированные seed'ы, общие наборы запросов и записи вывода в формате JSON-Lines для каждой ячейки (набор данных, атака, защита, режим, бюджет, seed). Запуск с одним seed'ом напрямую сопоставим с соответствующей ячейкой в статье. |
| Показатель | Масштаб в бенчмарке |
|---|---|
| Атаки извлечения | 12 |
| Защиты владения / ограничения информации | 12 |
| Наборы данных графов | 10 |
| Магистрали GNN | 3 (GCN, GAT, GraphSAGE) |
| Задачи графового обучения | 3 (узлы / связи / графы) |
| Режимы доступности данных | 4 (оба, только признаки, только структура, без данных) |
| Стандартизированные бюджеты запросов | 5 (0.05× — 1.00× размера теста) |
| Seed'ов на ячейку | 3 |
| Треки оценки | 3 (извлечение, владение, совместный) |
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
Запустите одну ячейку трека извлечения:
python scripts/run_rq1_single.py \
--dataset Cora \
--attack MEA0 \
--regime both \
--budget 0.25 \
--seed 0 \
--gpu \
--output-dir outputs/RQ1
Запустите совместный трек атаки и защиты на одном наборе данных:
python examples/run_joint_evaluation.py \
--dataset Cora \
--seed 0 \
--gpu
Каждый запуск записывает одну JSON-Lines-запись на кортеж (attack, defense, regime, budget, seed) в outputs/. Записи можно объединять и анализировать с помощью вспомогательных скриптов в scripts/ (например, merge_rq1_rq5_faithful_results.py).
GraphIP-Bench поддерживает Linux (рекомендуется) с Python 3.10+. Мы фиксируем версии PyTorch / DGL / PyG, поскольку ядра graphbolt в DGL 2.1.0 поставляются в виде предварительно собранных разделяемых библиотек только для PyTorch 2.0–2.2 на CUDA 12.1.
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt