NVFlare
NVIDIA 开源的联邦学习 SDK,支持 PyTorch/TensorFlow/XGBoost 多框架,集成差分隐私与同态加密,实现隐私保护下的跨机构 AI 协作训练
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
NVIDIA 开源的联邦学习 SDK,支持 PyTorch/TensorFlow/XGBoost 多框架,集成差分隐私与同态加密,实现隐私保护下的跨机构 AI 协作训练
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2021 年,一家中型医院的放射科主任遇到了一个棘手的问题:医院积累了大量肺部 CT 影像数据,但单家医院的数据量不足以训练出高精度的 AI 诊断模型。他想到与邻近医院合作,却立刻撞上了医疗数据隐私保护的红线——患者信息不得出医院。类似的困境在金融、政务、自动驾驶等领域每天都在上演。
NVIDIA FLARE(Federated Learning Application Runtime Environment) 正是为解决这一矛盾而生。它是 NVIDIA 于 2021 年开源的联邦学习框架,通过"数据不动模型动"的方式,让多个机构在不共享原始数据的前提下协作训练 AI 模型。目前已获得 959 颗 GitHub Stars,被广泛用于医疗影像分析、金融风控、跨机构数据分析等隐私敏感场景。

图:NVFlare 采用经典 Server-Client 联邦架构,Server 端负责任务调度与模型聚合,Client 端在本地数据上执行训练。
传统的机器学习需要把所有数据汇聚到一台服务器上训练——这意味着数据必须离开本地。对于医疗记录、财务报表、自动驾驶数据这类高度敏感的信息,这种方式在法律和伦理上都难以接受。
联邦学习(Federated Learning)提出了一个优雅的解法:数据始终保留在本地,只有模型参数在各方之间流转。以医院协作场景为例:
整个过程中,患者的原始影像数据从未离开医院,满足了《个人信息保护法》《数据安全法》等法规要求。NVIDIA FLARE 正是这一范式的工业级实现框架。

图:Client 端的 Executor 组件负责在本地数据上执行训练任务,通过 Shareable 格式与 Server 通信。
NVFlare 的设计哲学是框架无关:它并不绑定某一特定深度学习框架,而是通过标准化的接口抽象,让 PyTorch、TensorFlow、scikit-learn、XGBoost、JAX、PyTorch Lightning 等主流框架都能无缝接入联邦学习流程。
以 PyTorch 为例,一个最简单的联邦学习客户端只需几十行代码:
from nvflare.apis.fl_constant import FLComponents
from nvflare.app_common.ccwf.c溪f_client_helper import *
class SimpleExecutor(Executor):
def execute(self, task_name, shareable, fl_ctx, abort_signal):
# 在本地数据上执行训练
model = load_model()
train_local(model, local_data)
return make_shareable({"model": model.state_dict()})
这种低侵入式的 API 设计,使得数据科学家可以在几乎不修改原有 ML 代码的情况下,将已有的单点训练流程转换为联邦学习模式。
NVFlare 预置了大量联邦学习算法,覆盖从基础到前沿的完整谱系:
| 算法 | 类型 | 适用场景 |
|---|---|---|
| FedAvg | 基础聚合 | 横向联邦,IID 数据 |
| FedProx | 正则化 | 横向联邦,Non-IID 数据 |
| FedOpt | 自适应优化 | 通信效率优化 |
| SCAFFOLD | 方差缩减 | Non-IID 数据加速收敛 |
| Ditto | 个性化联邦 | 保护本地模型个性化需求 |
| XGBoost-FL | 树模型联邦 | 金融风控、评分卡 |
联邦学习虽然不需要传输原始数据,但模型参数本身仍可能泄露训练数据的部分信息。NVFlare 内置了多层隐私保护机制:

图:NVFlare 还可作为 Flower 框架的底层通信后端,实现与其他 FL 框架的互操作性。
对于研究阶段,NVFlare 提供了 Simulator 和 POC(Proof of Concept) 两种本地模拟模式:
# 单行命令启动 3 节点的联邦学习模拟
nvflare simulator ./job_templates/sag_nemo -n 3 -t localhost
Simulator 可以在单台机器上模拟多个 FL Site,非常适合算法验证和论文实验,无需配置真实的多机集群网络。
NVFlare 提供了完整的 Docker 支持:
# 构建镜像
./build_docker.sh
# 启动 NVFlare Server
docker run -p 8002:8002 nvflare/nvflare
NVFlare 内置了基于 Flask/Tornado 的 Web Dashboard,提供:
对于运维人员,Dashboard 大幅降低了联邦学习系统的管理门槛。
| 场景 | 最低配置 | 推荐配置 |
|---|---|---|
| 算法研究/模拟 | CPU 4核 / 8GB RAM | CPU 8核 / 16GB RAM |
| 小规模训练 | NVIDIA GPU(如 A100/A10) | 多卡 GPU 服务器 |
| 生产部署 | GPU + 高效网络(RDMA) | InfiniBand + 多节点 GPU 集群 |
NVIDIA 的 GPU 资源调度和 RDMA 网络支持是 NVFlare 在大规模生产场景中的核心优势。
推荐使用 NVFlare 的场景:
可能不太适合的场景:
尽管 NVFlare 功能强大,但也存在一些值得关注的问题:
1. 学习曲线陡峭:联邦学习本身概念复杂(Server/Client/FL Context/Shareable 等),加上 NVFlare 的组件化设计,新手需要花相当时间理解 Job、Task、Controller、Executor 等核心概念之间的关系。
2. 生产部署门槛:虽然提供了 Docker 支持,但真实生产环境需要配置多节点网络、证书认证、GPU 调度等,远比 Simulator 模式复杂。通常需要专职 MLOps 工程师介入。
3. 与其他 FL 框架的互操作性:NVFlare 倾向于形成自己的生态闭环。尽管提供了与 Flower 框架的集成,但与 Google TFF、百度 PaddleFL 等其他框架的模型参数格式并不直接兼容。
4. 维护活跃度:GitHub Issues 有 21 个开放问题,部分 issue 响应较慢,需评估是否有足够社区支持满足企业级 SLA 要求。

图:NVFlare 的 Job 架构支持 DAG 风格的任务编排,可定义复杂的联邦学习工作流。
NVIDIA FLARE 的出现,标志着联邦学习从学术研究走向工业落地的关键一步。
行业趋势方面,随着全球数据隐私法规日趋严格(GDPR、中国《数据安全法》《个人信息保护法》、美国各州隐私法案),联邦学习作为"合规的数据协作范式"正获得越来越多的关注。NVFlare 背靠 NVIDIA 的 GPU 和 CUDA 生态,在 GPU 高效训练方面有天然优势。
增长数据方面,该仓库于 2021 年 7 月创建,截至目前已积累 959 Stars 和 273 Forks,活跃的开发周期(最近一次 push 在 2026-08-25)表明项目仍在积极维护。
技术演进方向上,NVFlare 正在向以下方向拓展:
NVIDIA FLARE 是一款生产级别的联邦学习 SDK,其优势在于:
在隐私合规成为 AI 落地硬约束的时代,NVFlare 为跨机构数据协作提供了一个可靠的技术选项。