TensorFlow Federated
TensorFlow Federated (TFF) 是一个用于分散数据上进行机器学习和其他计算的开源框架。TFF 的开发旨在促进对联邦学习(FL)的开放研究和实验。联邦学习是一种机器学习方法,它在许多参与客户端之间训练共享的全局模型,而这些客户端将其训练数据保留在本地。例如,联邦学习已被用于训练移动键盘的预测模型,而无需将敏感的输入数据上传到服务器。
TFF 使开发人员能够将其模型和数据与包含的联邦学习算法一起使用,并能够尝试新颖的算法。TFF 提供的构建块还可用于实现非学习计算,例如对分散数据的聚合分析。
TFF 的接口分为两层:
-
联邦学习(FL)API
tff.learning
层提供了一组高级接口,允许开发人员将包含的联邦训练和评估实现应用于他们现有的 TensorFlow 模型。 -
联邦核心(FC)API 系统的核心是一组低级接口,用于通过在强类型函数式编程环境中结合 TensorFlow 和分布式通信运算符来简洁地表达新颖的联邦算法。该层还作为我们构建
tff.learning
的基础。
TFF 使开发人员能够声明式地表达联邦计算,以便可以将其部署到各种运行时环境。TFF 包含一个用于实验的单机模拟运行时。请访问教程并亲自尝试!
安装
有关如何将 TensorFlow Federated 作为软件包安装或从源代码构建 TensorFlow Federated 的说明,请参阅安装文档。
入门
有关如何使用 TensorFlow Federated 的说明,请参阅入门文档。
贡献
根据您的兴趣,有多种贡献方式:
-
如果您对开发新的联邦学习算法感兴趣,最好的开始方式是研究
tff.learning
中联邦平均和评估的实现,并考虑对现有实现的扩展(或替代方法)。如果您有新算法的提案,我们建议从在research
目录中搭建项目开始,并包含一个 colab 笔记本来展示新功能。您可能还想在自己的存储库中开发新算法。我们很乐意在 tensorflow.org/federated 上展示使用 TFF 的学术出版物和/或存储库的链接。
-
如果您对应用联邦学习感兴趣,可以考虑贡献教程、新的联邦数据集或其他人可以用于实验和测试的示例模型,或编写他人可以用于设置模拟的辅助类。
-
如果您有兴趣帮助我们改善开发者体验,最好的开始方式是研究
tff.learning
API 背后的实现,并思考如何使代码更加精简。您可以贡献基于 FC API 构建的辅助类或建议扩展 FC API 本身。 -
如果您有兴趣帮助我们开发用于模拟及更多用途的运行时基础设施,请等待未来的版本,我们将在其中介绍为模拟基础设施做贡献的接口和指南。
请务必查看贡献指南,了解如何贡献。
问题
使用 GitHub 问题来跟踪请求和 bug。
问题
请将问题直接发送到 Stack Overflow,使用 tensorflow-federated 标签。