Skip to main content

A Unified Benchmark Suite for Byzantine Attacks and Defenses in Federated Learning

Project description

https://github.com/lishenghui/blades/raw/master/docs/source/images/arch.png

Installation

git clone https://github.com/lishenghui/blades
cd blades
pip install -v -e .
# "-v" means verbose, or more output
# "-e" means installing a project in editable mode,
# thus any local modifications made to the code will take effect without reinstallation.
cd blades/blades
python train.py file ./tuned_examples/fedsgd_cnn_fashion_mnist.yaml

Blades internally calls ray.tune; therefore, the experimental results are output to its default directory: ~/ray_results.

Experiment Results

https://github.com/lishenghui/blades/raw/master/docs/source/images/fashion_mnist.png https://github.com/lishenghui/blades/raw/master/docs/source/images/cifar10.png

Cluster Deployment

To run blades on a cluster, you only need to deploy Ray cluster according to the official guide.

Built-in Implementations

In detail, the following strategies are currently implemented:

Data Partitioners:

Dirichlet Partitioner

https://github.com/lishenghui/blades/blob/master/docs/source/images/dirichlet_partition.png

Sharding Partitioner

https://github.com/lishenghui/blades/blob/master/docs/source/images/shard_partition.png

Citation

Please cite our paper (and the respective papers of the methods used) if you use this code in your own work:

@article{li2023blades,
  title={Blades: A Unified Benchmark Suite for Byzantine Attacks and Defenses in Federated Learning},
  author= {Li, Shenghui and Ju, Li and Zhang, Tianru and Ngai, Edith and Voigt, Thiemo},
  journal={arXiv preprint arXiv:2206.05359},
  year={2023}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blades-0.1.1234.tar.gz (595.6 kB view details)

Uploaded Source

Built Distribution

blades-0.1.1234-py3-none-any.whl (45.5 kB view details)

Uploaded Python 3

File details

Details for the file blades-0.1.1234.tar.gz.

File metadata

  • Download URL: blades-0.1.1234.tar.gz
  • Upload date:
  • Size: 595.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for blades-0.1.1234.tar.gz
Algorithm Hash digest
SHA256 270ddfab1cd33b581a5d6b1a0ddbd860683f3173c482f0b44a69db1187efafc5
MD5 a97471cb242fb4c9744402d6fa293f04
BLAKE2b-256 e44b00a1baee1586ca906a0991fb9172cae06585d8f8d3051b0e945f96cb2b6e

See more details on using hashes here.

File details

Details for the file blades-0.1.1234-py3-none-any.whl.

File metadata

  • Download URL: blades-0.1.1234-py3-none-any.whl
  • Upload date:
  • Size: 45.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for blades-0.1.1234-py3-none-any.whl
Algorithm Hash digest
SHA256 14654cc3e2a4c4efd3f60d340e6d36e6d30352cf5fff7c6227ff1f76a246e0db
MD5 7b71c3cb9c30338aef4d9bb4217ef7e4
BLAKE2b-256 d6b2cf0d4331a5a4b886130b2729f074380c6718f66f8a554eb5a0e829dc150b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page