Authors: Christophe Roux, Max Zimmer, Sebastian Pokutta
This repository contains the code to reproduce the experiments from the paper "On the Byzantine-Resilience of Distillation-Based Federated Learning". The code is based on PyTorch 1.9 and the experiment-tracking platform Weights & Biases.
Experiments are started from the following file:
main.py
: Starts experiments using the dictionary format of Weights & Biases.
The rest of the project is structured as follows:
byzantine
: Contains the attacks and defenses used in the paper.runners
: Contains classes to control the training and collection of metrics.models
: Contains all model architectures used.utilities.py
: Contains useful auxiliary functions and classes.config.py
: Configuration for the datasets used in the experiments.public_config.py
: Contains the configuration for the public datasets.metrics.py
: Contains the metrics used in the experiments.strategies.py
: Contains the different strategies used, such as FedAVG and FedDistill.
Define the parameters in the main.py
defaults-dictionary and run it with the --debug flag. Or, configure a sweep in Weights & Biases and run it from there (without the flag).
In case you find the paper or the implementation useful for your own research, please consider citing:
@article{roux2024byzantine,
author = {Roux, Christophe and Zimmer, Max and Pokutta, Sebastian},
title = {On the Byzantine-Resilience of Distillation-Based Federated Learning},
year = {2024},
journal = {arXiv preprint arXiv:2402.12265},
}