Skip to main content

A Scalable Federated Learning Library

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/raw/master/docs/source/images/dirichlet_partition.png

Sharding Partitioner

https://github.com/lishenghui/blades/raw/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

fedlib-0.0.12345.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

fedlib-0.0.12345-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file fedlib-0.0.12345.tar.gz.

File metadata

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

File hashes

Hashes for fedlib-0.0.12345.tar.gz
Algorithm Hash digest
SHA256 daa850ec3a03c3c9cedffb20b55dccfeea65e9806b68453cf754d2867a213639
MD5 5a992ffaffdb8bd3fb12bc9bf0914b84
BLAKE2b-256 583a25008ac1f8006cf07025b14067304c87e41cf54af581e53c1d34e2c0ffe2

See more details on using hashes here.

File details

Details for the file fedlib-0.0.12345-py3-none-any.whl.

File metadata

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

File hashes

Hashes for fedlib-0.0.12345-py3-none-any.whl
Algorithm Hash digest
SHA256 594b67a466614d9da509659797d952e406a65b1b5898b46653274e6a5f4d78ee
MD5 3c83d20b9652eb1e0795b3953df0bada
BLAKE2b-256 2e647d78d651b8967e504968132e715b99cc4b021374646fe1b78cca3a41762a

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