联邦学习模拟器(FLSim)是一个灵活的独立核心库,它使用最小、易于使用的API模拟了联邦学习设置。FLSim不受特定领域限制,并适用于多种用例,例如计算机视觉和自然语言处理。
项目描述
联邦学习模拟器(FLSim)
联邦学习模拟器(FLSim)是一个使用PyTorch编写的灵活的独立库,它使用最小、易于使用的API模拟联邦学习设置。FLSim不受特定领域限制,并适用于多种用例,例如计算机视觉和自然语言处理。目前FLSim支持跨设备联邦学习,数百万客户端设备(例如手机)共同训练模型。
FLSim可扩展且快速。它支持差分隐私(DP)、安全聚合(secAgg)和多种压缩技术。
在联邦学习(FL)中,多个客户端通过各自拥有的本地数据进行协作训练,中央服务器负责调节训练,例如通过汇总来自多个客户端的模型更新。
在FLSim中,开发者只需定义数据集、模型和指标报告器。FLSim核心库内部处理FL训练的所有其他方面。
FLSim
库结构
FLSim核心组件遵循与FedAvg相同的语义。服务器包含三个主要功能:选择器、聚合器和优化器。选择器选择用于训练的客户端,聚合器汇总客户端更新直到一轮完成。然后,优化器根据聚合的梯度优化服务器模型。服务器通过通道与客户端通信。通道随后压缩服务器和客户端之间的消息。在本地,客户端包含一个数据集和一个本地优化器。这个本地优化器可以是SGD、FedProx或自定义Pytorch优化器。
安装
可以通过pip
安装FLSim的最新版本。
pip install flsim
您也可以直接从源代码安装以获得最新功能(以及其固有的怪癖和可能偶尔出现的错误)。
git clone https://github.com/facebookresearch/FLSim.git
cd FLSim
pip install -e .
入门
要使用FLSim在FL设置中实现中央训练循环,开发者只需执行以下步骤:
- 构建自己的数据管道,将训练数据的单个行分配给客户端设备(以模拟客户端设备上分布的数据)。
- 创建相应的
torch.nn.Module
模型,并用FL模型包装它。 - 定义一个自定义指标报告器,在整个训练过程中计算和收集感兴趣的指标(例如准确率)。
- 在配置文件中设置所需的超参数。
使用示例
教程
要查看详细信息,请参阅我们准备的教程。
示例
我们为上述2个教程准备了可运行的示例。
贡献
有关如何为此库做出贡献,请参阅CONTRIBUTING。
许可
此代码根据Apache 2.0许可证发布,如LICENSE文件中所述。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。