Overview
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
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. |
|
Labelflipping |
Fang et al. Local Model Poisoning Attacks to Byzantine-Robust Federated Learning, USENIX Security’ 20 |
|
Signflipping |
||
ALIE |
Baruch et al. A little is enough: Circumventing defenses for distributed learning NeurIPS’ 19 |
|
IPM |
Xie et al. Fall of empires: Breaking byzantine- tolerant sgd by inner product manipulation, UAI’ 20 |
Adaptive Attacks
Strategy |
Description |
Sourse |
|---|---|---|
DistanceMaximization |
Defenses
Robust Aggregation
Data Partitioners:
Dirichlet Partitioner
