数据科学

使用 NVIDIA FLARE 从模拟到生产的联合学习

NVIDIA FLARE 2.2 包括一系列新功能,可缩短开发时间并加快联合学习的部署,帮助企业降低构建强大人工智能的成本。获取有关此版本中新增内容的详细信息。

作为 联合学习 (FL) 的开源平台和软件开发工具包 (SDK),NVIDIA FLARE 不断发展,使其最终用户能够利用分布式、多方协作来实现从模拟到生产的更强大的 AI 开发。

FLARE 2.2 的发布带来了大量更新,简化了研究人员和数据科学家的研发工作流程,简化了 IT 从业者和项目负责人的部署,并加强了安全性,以确保真实部署中的数据隐私。其中包括:

简化研究人员和开发人员的工作流程

  • FL 模拟器用于快速开发和调试
  • 联合统计
  • MONAI 和 XGBoost 集成

优化部署、操作和安全

  • FLARE 仪表板
  • 统一 FLARE CLI
  • 客户端隐私策略
Diagram of the end-to-end NVIDIA FLARE 2.2 workflow showing the progression from application development using FL Simulator, deployment with the FLARE Dashboard, to simplified operations and security with the FLARE console and site security policies.
图 1.端到端 NVIDIA FLARE 2.2 工作流

FL 模拟器:快速开发和调试

新的 FL Simulator 是支持研发工作流的关键功能之一。模拟器允许研究人员和开发人员运行和调试 FLARE 应用程序,而无需调配和部署项目。模拟器提供了一个轻量级环境,其中包含 FLARE 服务器和可在其上部署应用程序的任意数量的连接客户端。通过利用 Simulator Runner API 可以进行调试,允许开发人员使用 简单的 Python 驱动应用 脚本在 FLARE 应用程序代码中创建断点。

模拟器旨在通过在有限数量的线程中顺序运行客户端进程来适应资源有限的系统,如研究人员的笔记本电脑。通过为每个 GPU 分配一个或多个客户端,可以在具有多个 GPU 的较大系统上轻松运行相同的模拟。这为开发人员或研究人员提供了一个灵活的环境来测试应用程序的可伸缩性。一旦开发和调试了应用程序,相同的应用程序代码就可以直接部署到生产的分布式 FL 系统上,而无需更改。

Screen captures of the FLARE Dashboard showing the Project Admin user management panel and the User panel for self-service downloads of project configuration and client software.
图 2.FLARE Dashboard 显示了“项目管理”用户管理面板(左),以及用于自助下载项目配置和客户端软件的“用户”面板 (right)

联合学习工作流和联合数据科学

FLARE 2.2 还引入了新的集成和联合工作流,旨在简化应用程序开发并实现联合数据科学和分析。

联合统计

在使用分布式数据集时,评估数据质量和跨客户端数据集的分布通常很重要。 FLARE 2.2 提供了一组 federated statistics 运算符(控制器和执行器),可用于基于单个客户端统计信息生成全局统计信息。

工作流控制器和执行器的设计允许数据科学家根据感兴趣的数据集的细节快速实现自己的统计方法(生成器)。常用的统计数据是现成的,包括计数、总和、平均值、标准差和直方图,以及可视化全局和单个统计数据的例程。内置可视化工具可用于查看所有站点的所有数据集以及全局聚合的统计信息,例如在笔记本实用程序中,如图 3 所示。

Example histograms from the federated statistics image example using the built-in FLARE statistics visualization class.
图 3.使用内置 FLARE 统计可视化类的联邦统计图像示例的柱状图

除了这些新的工作流之外,还更新了现有的 FLARE 示例集,以与 FL 模拟器集成,并利用新的隐私和安全功能。这些示例应用程序利用了常见的 Python 工具包,如 NumPy 、 PyTorch 和 Tensorflow ,并突出了培训、交叉验证和联合分析中的工作流。

FLARE 和 MONAI 的集成

MONAI, the Medical Open Network for AI 最近发布了一个抽象,该抽象允许以 MONAI Bundle ( MB )格式打包的 MONAI 模型在任何在这些新 API 中实现客户端训练算法的平台上轻松扩展以进行联合训练。 FLARE 2.2 包括一个新的客户端执行器,它实现了这种集成,使 MONAI 模型开发人员能够使用捆绑包概念轻松开发和共享模型,然后使用 NVIDIA FLARE 以联合模式无缝部署这些模型。

Diagram showing MONAI FL integration with ClientAlgo API
Figure 4. MONAI FL 与 ClientAlgo API 集成

要查看使用 FLARE 使用联合平均( FedAvg )和 MONAI Bundle 训练医学图像分析模型的示例,请访问 GitHub 上的 security framework of NVIDIA FLARE 。该示例显示了如何下载数据集,从 MONAI Model Zoo 下载 spleen_ct_segmentation 捆绑包,以及如何使用 FL 模拟器或 POC 模式在 FLARE 中执行它。

MONAI 还允许计算捆绑包中定义的数据集的摘要数据统计信息。可以使用上述联合统计运算符在 FLARE 中共享和可视化这些数据。上面的 GitHub 示例中包含了联合统计和 MONAI 的使用。

Federated spleen segmentation in abdominal CT using MONAI bundle from the Model Zoo. For details, visit NVFlare on GitHub.
图 5.腹部 CT 中使用 MONAI 束的联合脾脏分割 Model Zoo 。有关详细信息,请访问 NVFlare on GitHub.

XGBoost 集成

来自联合学习用户社区的一个常见请求是在联合范例中支持更传统的机器学习框架。 FLARE 2.2 提供了使用两种方法进行横向联合学习的示例:基于直方图的协作和基于树的协作。

社区 DMLC XGBoost 项目最近发布了对现有分布式 XGBoost 训练算法的改编,该算法允许联合客户端在分布式算法中充当不同的工作者。该分布式算法用于演示基于直方图的方法的 reference implementation of horizontal federated learning

FLARE 2.2 还使用两种方法提供了 reference federated implementation of tree-based boosting :循环训练和打包聚合。在循环训练方法中,多个站点对自己的本地数据执行树增强,将生成的树序列转发给联合中的下一个客户端,以进行下一轮增强。在 Bagging Aggregation 方法中,所有站点都从同一个全局模型开始,并根据其本地数据对多棵树进行增强。然后,服务器聚合生成的树,以进行下一轮的提升。

真实世界联合学习

FLARE 2.2 中提供的新工具和工作流套件使开发人员和数据科学家能够快速构建应用程序,并在分布式联合学习部署中更轻松地将其投入生产。当移动到真实的分布式部署时,项目负责人和开发人员以及参与联合学习部署的各个站点都必须考虑到许多安全和隐私问题。

FLARE 仪表板:优化部署

2.2 中的新功能是 FLARE Dashboard ,旨在为支持真实世界 FL 部署的主要研究人员和 IT 从业者简化项目管理和部署。 FLARE Dashboard 允许项目管理员部署一个网站,该网站可用于定义项目详细信息、收集有关参与者站点的信息,以及分发用于连接客户端站点的启动工具包。

FLARE Dashboard 由平台早期版本中的相同资源调配系统支持,允许用户根据项目要求灵活选择 web UI 或经典命令行资源调配。仪表板和资源调配 CLI 现在都支持动态资源调配,允许项目管理员按需添加联合和管理客户端。这种在不影响现有客户的情况下动态分配新培训和管理客户的能力大大简化了项目生命周期内 FL 系统的管理。

统一 FLARE CLI

FLARE command-line interface ( CLI )已被完全重写,以将所有命令合并到一个通用的顶级nvflare CLI 中,并引入新的便利工具以提高可用性。

$ nvflare -h
 
usage: nvflare [-h] [--version] {poc,preflight_check,provision,simulator,dashboard,authz_preview} ...

子命令包括所有预先存在的独立 CLI 工具,如pocprovisionauthz_preview,以及用于启动 FL 模拟器和 FLARE Dashboard 的新命令。nvflare命令现在还包括一个preflight_check,它为管理员和最终用户提供了一个工具,用于验证系统配置、与其他 FLARE 子系统的连接、正确的存储配置以及执行客户端或服务器的试运行连接。

提高了站点安全性

security framework of NVIDIA FLARE 在 2.2 中进行了重新设计,以提高可用性和整体安全性。用于定义特权和系统操作策略的角色已精简为:项目管理员、组织管理员、首席研究员和成员研究员。基于这些角色,安全框架得到了加强,以允许各个组织和站点实施自己的政策,通过联邦授权框架保护个人隐私和知识产权( IP )。

联合授权将隐私和安全策略的定义和实施转移到各个组织和成员站点,允许参与者定义自己的细粒度站点策略:

  • 每个组织在自己的授权中定义其策略。 json 配置
  • 该本地定义的策略由组织拥有的 FL 客户端加载
  • 这些 FL 客户端也执行该策略

站点策略可用于控制联合学习工作流的所有方面,包括:

  • 资源管理:仅由本地 IT 部门决定的系统资源配置
  • 授权策略:本地授权策略,用于确定用户可以或不能在本地站点上执行的操作
  • 隐私政策:本地政策,规定允许哪些类型的学习以及如何在本地网站上为 FL 客户端生成的学习结果添加隐私保护
  • 日志配置:每个站点现在都可以为系统生成的日志消息定义自己的日志配置

这些站点策略还允许各个站点通过定义自定义过滤器和应用于在客户端站点和中央服务器之间传递的任何信息的加密来实施自己的数据隐私。

这一新的安全框架为项目和组织管理员、研究人员和站点 IT 人员提供了将联合学习项目从概念验证到实际部署所需的工具。

NVIDIA FLARE 2.2 入门

我们重点介绍了 FLARE 2.2 中的一些新功能,这些功能使研究人员和开发人员能够快速采用该平台来原型化和部署联合学习工作流。 FL Simulator 和 FLARE Dashboard 等用于优化开发和部署的工具,以及越来越多的参考工作流,使您比以往任何时候都更容易、更快地开始并节省宝贵的开发时间。

除了本文中详细介绍的示例之外, FLARE 2.2 还包括许多其他增强功能,这些增强功能可以提高平台的功能和灵活性,包括:

  • Docker 合成和 Helm 部署示例
  • 飞行前检查有助于识别和纠正连接和配置问题
  • 简化 POC 命令以测试本地分布式部署
  • 更新的示例应用程序

要了解有关这些功能的更多信息并开始使用最新示例,请访问 NVIDIA FLARE documentation 。由于我们正在积极开发 FLARE 平台以满足研究人员、数据科学家和平台开发人员的需求,我们欢迎 NVIDIA FLARE GitHub 社区中的任何建议和反馈。

加入我们的网络研讨会 Federated Learning with NVIDIA Flare: From Simulation to Real World ,了解该平台的概况以及其中一些正在使用的新功能。

 

Tags