TensorFlow Federated (TFF) 通过提供模拟和部署去中心化机器学习工作流程的工具,使开发人员能够实现联邦学习 (FL)。TFF 的核心是抽象了协调多个设备或服务器训练共享模型的复杂性,而无需集中原始数据。它为定义联邦计算、处理数据分发和聚合模型更新提供了一个框架。例如,TFF 包含诸如联邦平均之类的内置算法,该算法可以自动执行从客户端收集模型更新、对其进行平均并将结果应用于全局模型的过程。这减少了开发人员手动管理参与者之间通信的需求,从而确保了隐私和可伸缩性。
TFF 的架构围绕两个主要层构建:联邦学习 (FL) API 和核心 API。FL API 使用预配置的组件为常见的 FL 任务(例如训练和评估)提供高级抽象。例如,开发人员可以使用 tff.learning.build_federated_averaging_process
设置一个训练循环,该循环使用客户端训练数据迭代更新全局模型。另一方面,核心 API 允许通过使用 TFF 的类型系统和分布式运算符定义计算来自定义联邦算法。这种灵活性使开发人员可以通过组合低级操作(例如 tff.federated_mean
或 tff.federated_sum
)来试验新的聚合策略或隐私技术(例如,差分隐私或安全聚合)。
在实践中,TFF 通过模拟工具简化了测试和部署。开发人员可以使用合成数据或分区数据集(例如,TFF 的内置 EMNIST 拆分)来模拟联邦环境,以便在将算法部署到真实设备之前对其进行验证。例如,开发人员可以使用 TFF 的 tff.simulation.datasets
模块在 EMNIST 数据集上训练模型,以模拟真实场景,其中手写数据分布在用户之间。TFF 还与 TensorFlow 模型集成,从而允许使用 tff.learning.from_keras_model
包装现有的 Keras 模型以进行联邦训练。虽然 TFF 主要面向研究和原型设计,但它通过与 TensorFlow Extended (TFX) 或自定义后端集成来支持向生产的过渡,从而确保与边缘设备或云基础架构的兼容性。这种端到端的支持使 TFF 成为跨各种用例实现 FL 的实用工具包。