NVIDIA 和 Meta 的 PyTorch 团队宣布开展突破性合作,通过集成 NVIDIA FLARE 和 ExecuTorch ,将联邦学习 (FL) 功能引入移动设备。
NVIDIA FLARE 是一款与领域无关、开源、可扩展的 SDK,使研究人员和数据科学家能够根据联合范式调整现有的机器学习或深度学习工作流程。它还使平台开发者能够为分布式多方协作构建安全、隐私保护的产品。
ExecuTorch 是一种端到端解决方案,可跨移动和边缘设备实现设备端推理和训练功能。它是 PyTorch Edge 生态系统的一部分,支持将各种 PyTorch 模型高效部署到边缘设备。
通过集成这两者,我们为您提供了一个解决方案,让您在移动设备上利用 FL 的强大功能,同时保护用户隐私和数据安全。要启用跨设备 FL,有两个关键组件:
- FL 环境,能够与包含数百万台设备的参与者池协调适当的学习流程。
- 有效的 on-device 训练工作流,最好能轻松从现有开发环境迁移。
借助 NVIDIA FLARE 和 ExecuTorch 之间的协作,您现在可以使用熟悉的 PyTorch 代码定义模型架构和训练参数,并将其迁移到跨设备 FL 范式:
- NVIDIA FLARE 使用专为边缘应用设计的新模块来处理跨设备 FL 流程,既可用于联合工作流,也可用于设备端开发。
- ExecuTorch 支持边缘训练,并可轻松从现有的 PyTorch 解决方案迁移。
为支持大规模部署,NVIDIA FLARE 实现了分层 FL 架构,实现了对大量边缘设备的高效管理。此解决方案可确保跨分布式移动设备进行可靠且可扩展的模型训练,同时将所有数据保持在本地。
NVIDIA FLARE 和 ExecuTorch 正在使移动设备上的边缘 AI 训练更加普及和高效,同时保护去中心化 AI 的隐私:
- 轻松开发:抽象化设备复杂性,处理硬件、操作系统、ML 框架和编程语言,在移动设备上实现无缝 FL。
- 简化原型设计 :Device Simulator 用于模拟大量设备。
- 工业就绪型联邦部署:支持大量设备的跨设备 FL 系统。
借助此框架,数据科学家可以只专注于在 PyTorch 中定义模型架构和训练参数,以及联邦管道设计。
在分布式边缘设备上进行协作式模型学习
许多 AI 模型和应用依赖于人们日常生活中在 edge 设备上生成的日常数据,例如预测文本和语音识别、智能家居自动化、自动驾驶、交通预测和金融服务欺诈检测。借助数百万台支持 AI 的设备,AI 使用的大部分数据将在 edge 生成
与企业等领域的专业数据集(通常经过精心策划、结构化、在受控条件下进行标记并存储在集中式孤岛中)不同,边缘上的日常数据具有高度动态性,受异构设备中个人用户行为、环境因素和特定条件的影响。
AI 模型训练通常倾向于稳定的数据访问、快速的通信通道、丰富的计算资源和受控的数据多样性。对于具有这种动态和分布式性质的日常数据,一个基本而简单的解决方案是从不同来源收集数据到中心位置进行训练。
但是,edge-based 应用程序通常受到强大的隐私限制和实际限制的限制,因此无法进行集中式训练。
在这种情况下,跨分布式边缘设备的 FL 成为一种潜在的解决方案。然而,由于设备连接间歇性、通信带宽有限、设备功能可变以及数据分布高度异构,基于边缘设备收集的数据协同训练稳健的 AI 模型仍然具有挑战性。
为了妥善解决这些挑战,并以分布式方式实现有效的 AI 模型学习,具有设备端功能的精心设计的 FL 框架可以在有效利用来自不同设备集的所有数据方面发挥重要作用。
此类 FL 框架必须能够处理以下事项:
- 参与的设备规模庞大,因为候选池的规模通常达到数百万。
- 不同的操作系统和硬件环境导致设备编程非常复杂。
- 计算能力和通信带宽有限带来的挑战。
- 连接带来的挑战,例如设备随时加入和退出。
因此,该框架必须正确编排联邦 pipeline 的模型更新和聚合方面,并解决这些挑战。
挑战 | 解决方案 |
大量设备 | NVIDIA FLARE 设计了一种分层通信和聚合机制,以便利用逻辑树结构在处理数千个并发连接时实现指数级效率。 |
不同的操作系统和硬件环境 | Meta ExecuTorch 借助 NVIDIA FLARE 边缘模块简化了跨平台部署。 |
计算能力和通信带宽有限 | NVFLARE 使您能够使用高效模型,通过更长的本地训练压缩更新,并优化客户端选择或使用分层 FL 来降低计算、通信和带宽成本。 |
连接 | NVIDIA FLARE 提供强大的解决方案,并可灵活地考虑不同的场景和用例。 |
适用于跨设备应用的分层 FL
借助单层 FL 工作流,全局服务器直接与客户端通信,并使用简单的逻辑来收集和聚合模型更新。但是,在跨设备用例中,您可能有来自数百万参与者池的数万台并发设备,基本的单层通信结构无法执行。
NVIDIA FLARE 开发了具有树结构架构的分层 FL 系统 (图 1):
- 服务器: 提供整体编排、全局评估、作业和任务准备等功能。
- 聚合器 :执行从服务器到 leaf nodes 的任务路由,并将结果从 leaf nodes 聚合回服务器。
- 叶节点 :仅与边缘设备交互的节点。设备通过 Web 网关连接到叶子节点,这些网关与多个实例一起部署,以实现 Web 基础设施的可扩展性。
通过添加多层聚合,我们优化了系统每个节点上经济实惠且可靠的工作负载分布。借助如此强大的层次结构,可以轻松实施和扩展高级 FL 算法。这种树状层次结构符合逻辑,节点之间的物理连接和通信路由可以根据网络条件进一步优化。
通过通过 HTTPS 使用 Web 网关,我们确保每个设备都正确连接加密保证,并将其数据传输到相应的 FL 客户端进行处理。Web 网关还可处理设备注册、会话管理和负载均衡,优化大规模部署的连接性。这种方法提供了一种可扩展的解决方案,可在 FL 场景中支持可能数百万台边缘设备或手机。
图 2 展示了 NVIDIA FLARE 和 ExecuTorch 如何逐步协同工作,以实现跨设备 FL:
- 服务器上的 FLARE 控制器首先准备包含全局模型的任务,并通过分层系统将其分配,直到到达叶节点。
- 叶节点上的 FLARE
EdgeTaskExecutor
处理任务,将全局模型导出为 ExecuTorch 格式 (如果 Controller 尚未完成) ,并通过 Web 网关将任务发送到各个设备。 - 在设备上,NVIDIA FLARE 的
Device
模块桥接 FL 系统和设备端训练管线,其中 ExecuTorch 加载接收到的全局模型,使用本地数据执行设备端训练,并将新模型发送到Device
模块。 - 然后,
Device
模块准备一条包含本地模型更新 (全局模型和新模型之间的差异,可能通过隐私保护机制进行增强) 的消息,并将更新发送回 FLAREEdgeTaskExecutor
。 - 然后,FLARE
EdgeTaskExecutor
处理接收到的更新,并通过分层系统将其发送,其中来自不同来源的更新逐层聚合。 - 在收到顶层聚合模型更新后,FLARE 控制器会评估新的全局模型并为下一项任务分配做准备。
轻松进行跨设备联合工作流开发
在 NVIDIA FLARE 和 ExecuTorch 的支持下,我们为您提供精简的跨设备 FL 工作流,通过可定制组件实现高效的通用工作流,让您可以专注于创新,而无需担心底层基础设施开发。
在设备端,Device
模块建立了核心训练工作流 (例如 iOS 上的 Objective-C) ,作为 FL 系统和设备端训练之间的桥梁,为您提供可配置参数和隐私设置。它可以处理具有抽象设备复杂性的异构硬件、操作系统、ML 框架和编程语言。
使用 ExecuTorch,您可以专注于开发新颖的模型和训练方法,然后可以轻松迁移到设备平台。
在联合工作流方面,您可以定义自定义 FL 方案,例如与 NVIDIA FLARE 的 Controller API 同步或异步。可定制的聚合器提供了最适合特定学习目标需求的通用选项。NVIDIA FLARE 的一组常用控制器和聚合器可作为默认设置应用。
从全局模型分布和本地任务执行到收集模型更新以生成新的全局模型,其他所有内容都会自动处理,让您摆脱复杂的实现细节。
此外,我们还提供 DeviceSimulator,用于对移动应用程序执行本地 FL 端到端仿真。这提供了一种灵活的原型设计机制,涵盖基于用户选择的训练方法的模型训练。
例如,您可以试验基于 PyTorch 的训练器,并将其与基于 ExecuTorch 的版本进行比较,以确保要部署的 ExecuTorch 解决方案与对应的 PyTorch 解决方案保持一致。您还可以尝试使用不同的聚合器,在真实环境下测试其性能。
换言之,您可以使用 Python 对跨设备 FL 工作流进行原型设计,并为整个 FL 研究执行端到端本地模拟,与使用 NVIDIA FLARE 的其他模型学习流程相同。
接下来,您可以轻松将原型迁移并部署到真正的跨设备 FL 系统。无需切换到使用其他语言 (针对 Objective-C、Swift、Java 或 Kotlin) 进行移动平台开发,也无需担心网络连接和路由。NVIDIA FLARE 和 ExecuTorch 共同处理所有设备特定的训练要求和联合编排。
运行 NVFlare Mobile 示例
为帮助您快速入门,我们提供了一些示例来展示此模拟过程。在“Running NVFlare Mobile”示例中,我们目前介绍了以下两种训练方案下的应用:
hello_mobile
:一项包含数字列表的简单工作,用于测试边缘函数,包括分层聚合和任务处理。显示联合进程。xor_mobile
和xor_mobile_pt
:使用 ExecuTorch 和常规 PyTorch 训练器,为所有参与者使用固定数据,为简单的 XOR 逻辑任务训练超轻神经网络。显示包含神经网络训练的管道。cifar10_mobile
和cifar10_mobile_pt
:为标准 CIFAR-10 分类任务训练卷积神经网络。同时提供 ExecuTorch 和 PyTorch 方案。在本例中,每个参与者在 CIFAR-10 的不同子集上进行训练,模拟更逼真的跨设备协作。
对于实际部署,该过程包括三个部分:
- 设置 NVIDIA FLARE
- 通过 ExecuTorch 在边缘设备上进行训练
- 执行 FL 会话
研究从设置 NVIDIA FLARE 系统开始,包括配置系统和设置 Web 网关,这可以简单到两个命令:
python nvflare/edge/tree_prov.py -r /tmp -p edge_example -d 1 -w 2
python nvflare/edge/web/routing_proxy.py 5000 /tmp/edge_example/lcp_map.json
有关更多信息,请参阅 运行 NVFlare Mobile 示例 。
设置环境后,使用启动套件中的 script 启动每个 node:
./start.sh
在边缘设备端,我们开发了 演示 iOS 应用 来展示其功能。在此演示应用中,您需要配置代理服务器的 IP 地址和端口号,然后启动训练过程 (图 3) 。

然后,应用程序通过代理服务器连接到 FL 系统 (Figure 1) ,并等待任务分配。
只有在作业提交到 NVFlare 系统后,训练才开始。Controller 通过该机制将特定任务分配给 edge 设备 (图 2) 。
要启动 FL 会话,管理员需要验证全局配置 (例如,模型格式和权重) ,并像往常一样在 NVFlare 管理员控制台中提交开始 NVIDIA FLARE 训练的作业:
submit_job cifar10_mobile_et
联邦编排的其余部分由 NVIDIA FLARE 自动处理,本地设备上的训练由 ExecuTorch 处理。
总结
NVIDIA FLARE 和 Meta PyTorch 团队的协作代表着移动 FL 领域的重大进步,为开发跨设备 FL 解决方案提供了一种整体方法。此工作流有助于处理后台复杂的移动部署和联合训练。
通过 NVIDIA FLARE 分层架构,该平台可以高效管理数百万台边缘设备,使大规模 mobileFL 变得实用且易于访问。数据科学家可以专注于核心专业知识,在 Python 中定义模型和训练参数,而 NVIDIA FLARE 和 ExecuTorch 则可以处理移动部署、联合编排和训练可扩展性等复杂细节。这种创新方法可维护数据隐私和安全性,同时实现跨分布式设备的高效模型训练。
NVIDIA 与 Meta 的 PyTorch 团队之间的合作标志着在移动应用程序的 FL 大众化方面迈出了重要一步,为边缘隐私保护和去中心化 AI 开发开辟了新的可能性。这两个团队正在继续合作,以改进这一解决方案。
为了在各种设备上普及设备端训练,我们从 iOS 开始,随后将从 Android 和其他 edge 设备开始。
有关更多信息,请参阅以下资源:
- / NVFlare 教程 在 GitHub 上
- GitHub 上的/ NVIDIA/NVFlare edge examples
- NVIDIA FLARE 开发者门户
- 医学影像领域的 Federated Learning:增强数据隐私并推进医疗健康 GTC 2025 会议
要联系 NVIDIA FLARE 团队,请联系 federatedlearning@nvidia.com 。
致谢
感谢 Meta 的 PyTorch 团队对本文的帮助 。