连接社区:TensorFlow Federated (TFF) 和 OpenMined
2022 年 9 月 26 日

作者:Krzys Ostrowski(研究科学家)、Alex Ingerman(产品经理)和 Hardik Vala(软件工程师)

自 TensorFlow Federated (TFF) 在此博客上发布 3.5 年以来,许多组织已经开发了用于 联邦学习 (FL) 的框架。 虽然人们越来越关注隐私,并且对 FL 的投资也呈上升趋势,但随之而来的一项挑战是社区和行业努力的碎片化,这会导致代码重复和重复发明。 作为社区,我们可以通过投资互操作性机制来解决这个问题,这些机制可以使我们的平台和开发人员能够共同工作并利用彼此的优势。

在此背景下,我们很高兴宣布 TFF 与 OpenMined 的合作,OpenMined 是一个致力于开发隐私保护技术的开源社区。 OpenMined 的 PySyft 框架吸引了数百名开源贡献者的活跃社区,并且包括工具和 API,以促进容器化部署以及与各种数据源的集成,这些集成补充了我们在 TFF 中提供的功能。

OpenMined 已加入 特别兴趣小组 (SIG) 联邦(参见 章程、 论坛、 会议记录 以及 Discord 服务器),我们最近成立了该小组,以便 TFF 开发人员与越来越多的开源和行业合作伙伴共同参与关于如何共同发展 TFF 生态系统和扩大 FL 采用率的讨论。

介绍 PySyTFF

为了启动合作,我们——TFF 和 OpenMined 的 PySyft 开发人员——决定将最初的精力集中在共同构建一个新平台上,这个平台有一个可爱的名称 PySyTFF,它结合了 TFF 和 PySyft 的元素,以支持我们认为会越来越多见的情况,如下所示。

在这种情况下,敏感数据集的所有者希望邀请研究人员尝试在其数据集上训练和评估机器学习模型,以推进对哪些模型架构、参数等最有效的当前理解,同时保护数据并遵守可能对其使用进行管理的政策。 在实践中,此类场景最终往往会涉及协商数据使用合同。 一方面,这些合同可能很繁琐,另一方面,它们在很大程度上依赖于善意。

我们希望有一个平台能够提供结构性保障,这些保障可以限制敏感信息的泄露,并通过构建来确保政策合规——这是我们对 PySyTFF 的目标。

顺便说一句,请注意,即使这篇博文是关于 FL,我们在这里也不一定讨论数据在物理位置上进行物理隔离的情况——数据也可以托管在数据中心并进行逻辑隔离。 后面会详细介绍。

开发者体验

PySyTFF 的最初概念验证实现 提供了一个早期 glimpse,说明了数据科学家的开发者体验将是什么样子。 请注意,我们如何结合了两个框架的优势——例如,TFF 在 Keras 中定义模型的能力以及 PySyft 的访问控制机制和数据访问 API。

domain = sy.login(email="[email protected]", password="changethis", port=8081)


model_fn = lambda: tf.keras.models.Sequential(...)


params = {

    'rounds': 10,

    'no_clients': 3,

    'noise_multiplier': 0.05,

    'clients_per_round': 2,

    'train_data_id': domain.dataset[0]['images'].id_at_location.to_string(),

    'label_data_id': domain.datasets[0]['labels'].id_at_location.to_string()

}


model, metrics = sy.tff.train_model(model_fn, params, domain, timeout=5000)


在这里,数据科学家登录到 PySyft 的域节点 - 由数据提供者或代表数据提供者配置的基础设施组件 - 并获得有限的、访问控制保护的能力来枚举可用资源并在其上执行操作。这包括获取对节点管理的数据集及其元数据(但不包括内容)的引用,并发出 train_model 调用,在其中数据科学家可以提供他们希望训练的 Keras 模型,以及控制训练过程并影响隐私保证的各种参数计算结果,例如轮数或添加的噪声量,以使模型训练的结果更私密。作为回报,研究人员可能会获得计算输出,例如一组评估指标或经过训练的模型参数。

研究人员提供的参数的具体范围是什么,研究人员可以获得什么结果,一般来说,取决于数据所有者定义的策略,这些策略可能会强制使用隐私保护算法并限制允许的隐私预算 - 这些可能会限制参数,例如训练轮数、每轮客户或噪声乘数。虽然在当前的开发阶段,PySyTFF 还没有提供策略引擎集成,但这正是未来发展计划的重要组成部分。

幕后

域节点是一个基于 docker 的环境,它将基于 Web 的前端捆绑在一起,您可以安全地登录到该前端,并提供用于对用户进行身份验证和授权的机制,以及一组内部服务,包括数据库连接,如下所示。
上面代码段中的 train_model 调用,可能嵌入在数据科学家的 Python Colab 笔记本中,被实现为网络请求,它承载要训练的模型的 TensorFlow 代码的序列化表示,以及训练参数和对 PySyft 数据集的引用,用于训练和评估。

在域节点内部,调用被转发到 PySyTFF 服务,这是 PySyft 生态系统中引入的一个新组件,用于协调训练过程。这涉及与 PySyft 的数据后端交互以获取对用户数据分片的句柄,调用 TFF API 以构建要运行的 TFF 计算,并将构建的 TFF 计算和数据句柄传递给 TFF 运行时的嵌入实例,该实例使用提供的句柄加载数据并运行 FL 算法。

对逻辑上孤立的数据进行联邦学习

在这一点上,你们中的一些人可能想知道 FL 如何确切地融入其中。毕竟,FL 主要被认为是一种支持对分布在设备集上的数据的计算的技术,或者(在所谓的跨孤岛型 FL 中)支持对由一群机构拥有的数据中心集上的数据的计算,然而在这里,我们正在讨论的是数据已经位于客户的 PySyft 数据库中的场景。

为了解释这一点,让我们向上回溯一层,考虑一下最高级别的目标——使研究人员能够在敏感数据上进行机器学习计算,并提供平台级、结构化和正式的隐私保证。为了实现这一点,该平台理想情况下应该遵循正式的隐私原则,例如数据最小化(关于计算执行方式和敏感数据处理方式的保证),以及匿名聚合(关于计算和发布内容的保证)。

联邦学习非常适合这种情况,因为它在结构上体现了这些原则,并提供了一个框架来实现可以证明实现用户级差分隐私(DP)的算法,这是当前的黄金标准。支持我们实现这些保证的 FL 算法可用于处理数据中心部署中的数据,即使在数据全部驻留在单个管理域的情况下也是如此,例如,这里 PySyft 数据库中的情况。

要理解这一点,想象一下,对于数据库中的每个用户,我们都在其所有数据周围画一个虚拟边界,并将之视为一种虚拟孤岛。我们可以像在更传统的 FL 设置中对待“客户端”设备一样对待这些用户数据的虚拟孤岛,并协调 FL 算法在虚拟孤岛之间作为客户端运行。

因此,例如,在训练机器学习模型时,我们会反复从数据库中选择用户集,在他们的数据上本地独立地训练局部模型更新——分别针对每个用户,为每个局部更新添加剪裁和隐私噪声,将这些局部更新聚合到用户中以生成更新的全局模型,并重复此过程数千轮,直到机器学习模型收敛,如下所示。
虽然数据可能仅在逻辑上进行划分,但遵循这种方法使我们能够获得与上述相同的正式保证类型,包括可证明的用户级差分隐私——事实上,TFF 使我们能够利用与为 Google 的移动/物联网生产部署提供支持的相同的 FL 算法实现——从字面上看,是相同的 TFF 代码。

与我们合作!

如前所述,PySyTFF 的初始版本仍然缺少许多组件——亲爱的读者,这就是你需要发挥作用的地方。如果上面概述的愿景让你感到兴奋,我们——TFF 和 PySyft 团队——很乐意与你合作,共同发展这个平台。除了策略引擎集成之外,我们计划增强 PySyTFF,使其能够在云或计算集群上生成 TFF 运行时的分布式实例,以支持高计算密集型工作负载,建立资源使用收费系统,并将 PySyTFF 的范围扩展到包括传统的跨孤岛 FL 部署,仅举几例。

有很多方法可以做到这一点——从加入 TFF 和 PySyft 的合作努力,直接帮助我们构建和部署这个平台,到帮助设计和构建可以使 TFF 和 PySyft/PyGrid 互操作的通用组件和 API。

准备开始了吗?你可以访问SIG Federated 论坛,加入Discord 服务器,或者直接联系我们——查看 SIG章程中的联系信息,以及 OpenMined 的 PySyft 团队创建的参与渠道。我们期待您的来信!

致谢

代表 Google 的 TFF 团队,我们要感谢我们的 OpenMined 合作伙伴 Andrew Trask、Tudor Cebere 和 Teo Milea 在此次公告之前的富有成效的合作。

下一篇文章
Bridging communities: TensorFlow Federated (TFF) and OpenMined

作者:Krzys Ostrowski(研究科学家)、Alex Ingerman(产品经理)和 Hardik Vala(软件工程师)自 3.5 年前在本博客上宣布 TensorFlow Federated (TFF) 以来,许多组织已经开发出了用于联邦学习 (FL) 的框架。虽然人们越来越关注隐私,以及对 FL 的投资是一个可喜的趋势,但随之而来的一项挑战是碎片化……