Git Product home page Git Product logo

lishenghui / blades Goto Github PK

View Code? Open in Web Editor NEW
122.0 1.0 21.0 10.69 MB

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

License: Apache License 2.0

Python 100.00%
byzantine-fault-tolerance distributed-systems federated-learning robust-machine-learning fedavg federated federated-learning-simulator robust-optimization model-poisoning-attack robust-federated-learning

blades's Introduction

Blades Logo

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

image

image

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:

Attacks

General Attacks

Strategy Description Sourse
Noise

Put random noise to the updates.

Sourse
Labelflipping Fang et al. Local Model Poisoning Attacks to Byzantine-Robust Federated Learning, USENIX Security' 20 Sourse
Signflipping Li et al. RSA: Byzantine-Robust Stochastic Aggregation Methods for Distributed Learning from Heterogeneous Datasets, AAAI' 19 Sourse
ALIE Baruch et al. A little is enough: Circumventing defenses for distributed learning NeurIPS' 19 Sourse
IPM Xie et al. Fall of empires: Breaking byzantine- tolerant sgd by inner product manipulation, UAI' 20 Sourse

Adaptive Attacks

Strategy Description Sourse
DistanceMaximization

Shejwalkar et al. Manipulating the byzantine: Optimizing model poisoning attacks and defenses for federated learning, NDSS' 21

Sourse

Defenses

Robust Aggregation

Strategy Descriptions Source
MultiKrum Blanchard et al. Machine Learning with Adversaries: Byzantine Tolerant Gradient Descent, NIPS'17 Source
GeoMed Chen et al. Distributed Statistical Machine Learning in Adversarial Settings: Byzantine Gradient Descent, POMACS'18 Source
Median Yin et al. Byzantine-robust distributed learning: Towards optimal statistical rates, ICML'18 Source
TrimmedMean Yin et al. Byzantine-robust distributed learning: Towards optimal statistical rates, ICML'18 Source
CenteredClipping Karimireddy et al. Learning from History for Byzantine Robust Optimization, ICML'21 Source
Clustering Sattler et al. On the byzantine robustness of clustered federated learning, ICASSP'20 Source
ClippedClustering Li et al. An Experimental Study of Byzantine-Robust Aggregation Schemes in Federated Learning, IEEE TBD'23 Source
DnC Shejwalkar et al. Manipulating the Byzantine: Optimizing Model Poisoning Attacks and Defenses for Federated Learning, NDSS'21 Source
SignGuard Xu et al. SignGuard: Byzantine-robust Federated Learning through Collaborative Malicious Gradient Filtering, ICDCS'22 Source

Data Partitioners:

Dirichlet Partitioner

image

Sharding Partitioner

image

Citation

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

@inproceedings{li2024blades,
title={Blades: A Unified Benchmark Suite for Byzantine Attacks and Defenses in Federated Learning},
author={Li, Shenghui and Ngai, Edith and Ye, Fanghua and Ju, Li and Zhang, Tianru and Voigt, Thiemo},
booktitle={2024 IEEE/ACM Ninth International Conference on Internet-of-Things Design and Implementation (IoTDI)},
year={2024}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.