Official implementation of SCARLET from the paper "Soft-Label Caching and Sharpening for Communication-Efficient Federated Distillation".
Important
The main branch contains a simplified implementation for better understanding of SCARLET’s core algorithms, using BlazeFL.
For the exact experiment code and hyperparameter settings used in our paper, switch to the reproducibility branch.
git clone https://github.com/kitsuyaazuma/SCARLET.git
cd SCARLET
uv sync
# NOTE: PYTHON_GIL=0 is required due to a triton issue (https://github.com/triton-lang/triton/issues/8491)
PYTHON_GIL=0 uv run python main.pydocker run -it --rm --gpus=all --name scarlet ghcr.io/kitsuyaazuma/scarlet:main --algorithm-name SCARLET
# or
git clone https://github.com/kitsuyaazuma/SCARLET.git
cd SCARLET
docker build -t scarlet .
docker run -it --rm --gpus=all --name scarlet scarlet:latest --algorithm-name SCARLETAll hyperparameters are managed with Typer. You can see all available options by running:
uv run python main.py --helpIf you use this code in your research, please cite our preprint:
@misc{azuma2025softlabelcachingsharpeningcommunicationefficient,
title={Soft-Label Caching and Sharpening for Communication-Efficient Federated Distillation},
author={Kitsuya Azuma and Takayuki Nishio and Yuichi Kitagawa and Wakako Nakano and Takahito Tanimura},
year={2025},
eprint={2504.19602},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2504.19602},
}