Skip to main content

PyGIP

PyPI - Version Build Status License PyPI - Downloads Issues Pull Requests Stars GitHub forks

PyGIP is a Python library designed for experimenting with graph-based model extraction attacks and defenses. It provides a modular framework to implement and test attack and defense strategies on graph datasets.

How to Cite

If you find it useful, please considering cite the following work:

@article{li2025intellectual,
  title={Intellectual Property in Graph-Based Machine Learning as a Service: Attacks and Defenses},
  author={Li, Lincan and Shen, Bolin and Zhao, Chenxi and Sun, Yuxiang and Zhao, Kaixiang and Pan, Shirui and Dong, Yushun},
  journal={arXiv preprint arXiv:2508.19641},
  year={2025}
}

Installation

PyGIP supports both CPU and GPU environments. Make sure you have Python installed (version >= 3.8, <3.13).

Base Installation

First, install the core package:

pip install PyGIP

This will install PyGIP with minimal dependencies.

CPU Version

pip install "PyGIP[torch,dgl]" \
  --index-url https://download.pytorch.org/whl/cpu \
  --extra-index-url https://pypi.org/simple \
  -f https://data.dgl.ai/wheels/repo.html

GPU Version (CUDA 12.1)

pip install "PyGIP[torch,dgl]" \
  --index-url https://download.pytorch.org/whl/cu121 \
  --extra-index-url https://pypi.org/simple \
  -f https://data.dgl.ai/wheels/torch-2.3/cu121/repo.html

Quick Start

Here’s a simple example to launch a Model Extraction Attack using PyGIP:

from datasets import Cora
from models.attack import ModelExtractionAttack0

# Load the Cora dataset
dataset = Cora()

# Initialize the attack with a sampling ratio of 0.25
mea = ModelExtractionAttack0(dataset, 0.25)

# Execute the attack
mea.attack()

This code loads the Cora dataset, initializes a basic model extraction attack (ModelExtractionAttack0), and runs the attack with a specified sampling ratio.

And a simple example to run a Defense method against Model Extraction Attack:

from datasets import Cora
from models.defense import RandomWM

# Load the Cora dataset
dataset = Cora()

# Initialize the attack with a sampling ratio of 0.25
med = RandomWM(dataset, 0.25)

# Execute the defense
med.defend()

which runs the Random Watermarking Graph to defend against MEA.

If you want to use cuda, please set environment variable:

export PYGIP_DEVICE=cuda:0

Implementation & Contributors Guideline

Refer to Implementation Guideline

Refer to Contributors Guideline

License

BSD 2-Clause License

Contact

For questions or contributions, please contact blshen@fsu.edu.

Metadata

Release files for PyGIP 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyGIP 1.1.0
File Size Uploaded
pygip-1.1.0.tar.gz 487.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyGIP 1.1.0
File Interpreter ABI Platform
pygip-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / pygip-1.1.0.tar.gz

Download URL pygip-1.1.0.tar.gz
Size 487.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6180145bde78efe3ad7e34a30416205330c373b32bc6437bc84958302317ba26
BLAKE2b-256 checksum
How to use checksums
dab5b7dfb1e15a83c92b9e1d1d8cfccddc7fd676bfb72884f0bd42e0c9eefe30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release files / pygip-1.1.0-py3-none-any.whl

Download URL pygip-1.1.0-py3-none-any.whl
Size 531.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c28798974839cdc70308c53a4d437ce91cfb9d3563ad36beefc9183972b448e
BLAKE2b-256 checksum
How to use checksums
a0c9a8a9f40aeea6cdb4019d88cd52436e34e2b77d3d56eca9a927780bf5add7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page