FedScale 是一个可扩展的开源联邦学习 (FL) 引擎和基准测试平台。
FedScale (fedscale.ai) 提供高级 API 来实现 FL 算法,并在不同的硬件和软件后端中大规模部署和评估它们。FedScale 还包含了最大的 FL 基准测试平台,涵盖从图像分类、目标检测到语言建模和语音识别的 FL 任务。此外,它提供数据集以忠实地模拟 FL 培训环境,真实地部署 FL。
开始使用
快速安装 (Linux)
您可以简单运行 install.sh
。
source install.sh # 如果需要 CUDA,添加 `--cuda`
pip install -e .
如果需要不同版本的 Conda/CUDA,请更新 install.sh
。
源代码安装 (Linux/MacOS)
如果您已安装 Anaconda 并克隆了 FedScale,请按照以下说明进行操作。
cd FedScale
# 对于 MacOS,请将 ~/.bashrc 替换为 ~/.bash_profile
FEDSCALE_HOME=$(pwd)
echo export FEDSCALE_HOME=$(pwd) >> ~/.bashrc
echo alias fedscale=\'bash $FEDSCALE_HOME/fedscale.sh\' >> ~/.bashrc
conda init bash
. ~/.bashrc
conda env create -f environment.yml
conda activate fedscale
pip install -e .
最后,如果需要使用 GPU 支持,请安装 NVIDIA CUDA 10.2 或更高版本。
教程
现在您已经安装了 FedScale,可以按照以下入门教程之一开始探索 FedScale。
FedScale 数据集
我们正在添加更多数据集!请贡献!
FedScale 由 20 多个大规模、异构的 FL 数据集和 70 多个各类模型组成,涵盖计算机视觉 (CV)、自然语言处理 (NLP) 和其他任务。每个数据集都有其训练、验证和测试数据集。我们感谢这些原始数据集的贡献者。请前往 ./benchmark/dataset
目录,并参阅数据集 README 了解更多详情。
FedScale 运行时
FedScale 运行时是一个可扩展和可扩展的部署和评估平台,旨在简化和标准化 FL 实验设置和模型评估。它源自我们之前的系统 Oort,其扩展性良好,并能够模拟每轮成千上万个客户端的 FL 培训。
请前往 ./fedscale/cloud
目录,并按照 README 设置 FL 培训脚本,及其 README 进行实际设备部署。
仓库结构
仓库根目录
|---- fedscale # FedScale 源代码
|---- cloud # FedScale 服务核心
|---- utils # 辅助工具 (如模型库和 FL 优化器)
|---- edge # 实际部署的后端 (如移动端)
|---- dataloaders # 基准数据集加载器
|---- docker # FedScale 的 Docker 和容器部署 (如 Kubernetes)
|---- benchmark # FedScale 的数据集和配置
|---- dataset # 基准数据集
|---- configs # 示例配置
|---- scripts # 安装依赖的脚本
|---- examples # 实现新 FL 设计的示例
|---- docs # FedScale 的教程和 API
参考文献
请阅读和/或引用适当的内容以使用 FedScale 代码或数据,或了解更多有关 FedScale 的信息。
@inproceedings{fedscale-icml22,
title={{FedScale}: Benchmarking Model and System Performance of Federated Learning at Scale},
author={Fan Lai and Yinwei Dai and Sanjay S. Singapuram and Jiachen Liu and Xiangfeng Zhu and Harsha V. Madhyastha and Mosharaf Chowdhury},
booktitle={International Conference on Machine Learning (ICML)},
year={2022}
}
以及
@inproceedings{oort-osdi21,
title={Oort: Efficient Federated Learning via Guided Participant Selection},
author={Fan Lai and Xiangfeng Zhu and Harsha V. Madhyastha and Mosharaf Chowdhury},
booktitle={USENIX Symposium on Operating Systems Design and Implementation (OSDI)},
year={2021}
}
贡献和交流
如果您发现错误或希望改进 FedScale,请提交 issues 或 pull requests。
对于每次提交,请为相应的更改添加单元测试,并通过运行 pytest fedscale/tests
确保所有单元测试通过。
如果您有任何问题或意见,请加入我们的 Slack 频道,或发送电子邮件至 (fedscale@googlegroups.com)。