跳转到主要内容

联邦学习模拟器(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设置中实现中央训练循环,开发者只需执行以下步骤:

  1. 构建自己的数据管道,将训练数据的单个行分配给客户端设备(以模拟客户端设备上分布的数据)。
  2. 创建相应的torch.nn.Module模型,并用FL模型包装它。
  3. 定义一个自定义指标报告器,在整个训练过程中计算和收集感兴趣的指标(例如准确率)。
  4. 在配置文件中设置所需的超参数。

使用示例

教程

要查看详细信息,请参阅我们准备的教程

示例

我们为上述2个教程准备了可运行的示例。

贡献

有关如何为此库做出贡献,请参阅CONTRIBUTING

许可

此代码根据Apache 2.0许可证发布,如LICENSE文件中所述。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

flsim-0.1.0.tar.gz (231.8 kB 查看哈希值)

上传时间

构建分布

flsim-0.1.0-py3-none-any.whl (340.4 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面