- FATE 2.0全面升级,推动隐私计算联邦学习规模化应用
作为全球领先的联邦学习工业级开源框架,FATE开源平台正式发布FATE 2.0版本,实现联邦异构系统互联互通,持续增强隐私计算平台互联互通能力,进一步推动联邦学习与隐私计算规模化应用。
FATE 2.0以全面互通为设计理念,采用开源方式对应用层、调度、通信、异构计算(算法)四个层面进行改造,实现了系统与系统、系统与算法、算法与算法之间异构互通的能力。
FATE 2.0的设计兼容了北京金融科技产业联盟的《金融业隐私计算互联互通API技术文档》[3]等业内规范,在发布前,FATE 2.0已经和多个异构隐私计算平台完成了互联互通验证。近期北京金融科技产业联盟发布文档时提到,“课题组联合FATE开源社区、头部科技公司完成了五方跨平台、跨算法的互通联调,验证了接口文档在支持多方异构平台互联互通的可行性与安全性”。
访问以下网址获取FATE 2.0版本:
https://github.com/FederatedAI/FATE/releases/tag/v2.0.0
- FATE 2.0亮点概述
- 应用层互联互通: 构建标准可扩展的联邦DSL,支持应用层互联互通,统一DSL适配多种异构隐私计算平台任务描述
- 调度层互联互通:从多层面解耦系统模块来构建开放标准化的互联互通调度平台,支持多种异构隐私计算平台间任务调度
- 传输层跨站点互联互通:构建开放跨站点互联互通通信组件,支持多种传输模式以及多种通信协议, 可适配多种异构隐私计算平台间数据传输,增强传输效率和系统稳定性
- 联邦异构计算互联互通: 构建分布式和明密文Tensor/DataFrame, 解耦HE、MPC等安全协议和联邦算法协议,助力联邦异构计算引擎互联互通
- 核心算法迁移和扩展,算法开发体验和性能显著增强:采用分布式,明密文Tensor/Dataframe编程模式,实现核心算法迁移和扩展;核心算法性能提升:PSI隐私保护求交算法性能提升1.8+倍,纵向联邦SSHE-LR算法性能提升4.3+倍,纵向联邦神经网络算法性能提升143倍等
FATE 2.0互联互通整体架构示意图
- FATE 2.0功能一览
FATE-Client 2.0: 构建可扩展的联邦DSL,支持应用层的互联互通
1. 引入新的可扩展和标准化的联邦DSL IR,即联邦建模流程DSL标准化中间层表示
2. 支持将python客户端联邦建模流程代码编译成DSL IR
3. DSL IR协议扩展增强: 支持多方不对称调度
4. 支持FATE的标准化联邦DSL IR与其他协议转化,如北京金融科技产业联盟互联互通BFIA协议的互相转化
5. 完成Flow Cli和Flow SDK功能迁移
FATE-Flow 2.0: 构建开放标准化的互联互通调度平台
1.适配可扩展和标准化的FATE 2.0 联邦DSL IR
2. 构建互联调度层框架,通过适配器方式支持其他协议,如《隐私计算互联互通API技术文档》所涉及的控制层接口。
3. 优化流程调度,调度逻辑解耦且可定制化,并增加了优先级调度
4. 优化算法组件调度,支持容器级算法加载,提升对跨平台异构场景的支持
5. 优化多版本算法组件注册,支持对组件运行模式的注册
6. 联邦DSL IR扩展增强:支持多方不对称调度
7. 优化客户端身份验证逻辑,支持多个客户端的权限管理
8. 优化RESTful接口,使入参字段和类型、返回字段和状态代码更加清晰
9.增加了OFX(Open Flow Exchange)模块:封装调度客户端,允许跨平台调度
10.支持新的通信引擎OSX,同时与FATE Flow 1.x中的所有引擎保持兼容
11. 系统层和算法层解耦,系统配置从FATE存储库移到Flow存储库
12. 在PyPI中发布FATE Flow包,并新增了用于服务管理的服务级别的CLI
13. 完成1.x主要功能迁移
OSX(Open Site Exchange) 1.0: 构建开放跨站点互联互通通信组件
- 参考北京金融科技产业联盟发布的《金融业隐私计算互联互通API技术文档》实现互联互通传输接口,传输接口兼容FATE 1.X版本和FATE 2.X版本
- 支持grpc同步传输和流式传输,支持TLS安全传输协议,兼容FATE 1.X rollsite组件
- 支持Http 1.X协议传输,支持TLS安全传输协议
- 支持消息队列模式传输,用于替代FATE1.X中的rabbitmq 以及pulsar组件
- 支持eggroll 、spark计算引擎
- 支持作为Exchange组件组网,支持FATE 1.X 、FATE 2.X 接入
- 相比rollsite组件完善了传输中异常处理逻辑,提供更精确日志输出用于快速定位异常
- 路由配置与原rollsite基本一致,降低了移植难度
- 支持http接口修改路由表,并提供简单权限校验
- 完善了网络连接管理逻辑,降低连接泄露风险,提升传输效率
- 对集群内外部访问请求使用不同端口处理,方便对不同的端口采用不同的安全策略
FATE-Arch 2.0: 构建统一标准化的API,助力联邦异构计算引擎互联互通
- Context: 引入“Context”来管理对开发者友好的API,例如“分布式计算”、“联邦学习”、“加密算法”、“张量运算”、“度量指标”和“输入输出管理”
- Tensor: 引入Tensor数据结构处理本地及分布式矩阵运算,支持内建的异构加速;PHETensor 抽象层优化,通过标准接口使用多种底层PHE实现,自由切换
- DataFrame: 引入“DataFrame”二维表格数据结构,用于数据输入输出和基础特征工程。新增数据块管理器支持列多类型管理,支持特征匿名逻辑;新增统计、比较、索引、数据分箱及转化等30+算子接口
- 重构Federation:提供统一的联邦通信接口,包括统一的序列化/反序列化控制和更友好的API
- Config:为 FATE 提供统一的配置设置,包括安全配置、系统配置和算法配置
- 重构“logger”:根据不同使用方式和需求定制日志记录细节
- Launcher:一个简化的联邦程序执行工具,特别适合单机运行和本地调试
- 协议层:支持SSHE(混合安全多方计算和同态加密协议)、ECDH、安全聚合协议
- 整合Deepspeed:通过Eggroll支持分布式GPU集群的训练调度
- 实验性集成Crypten:支持SMPC,未来将添加更多协议和功能
FATE-Component 2.0: 构建标准化的算法组件,适配不同调度引擎
- 引入组件工具箱:将机器学习模块封装为标准可执行程序
- 通过spec和loader提供清晰的API,便于内部扩展和与外部系统集成
- 输入输出:进一步解耦FATE-Flow,提供标准化的黑盒调用流程
- 组件定义:支持基于类型的定义,自动检查组件参数,支持多种数据和模型输入输出类型,以及多重输入
FATE-ML 2.0: 核心算法迁移和扩展,算法开发体验和性能显著增强
- 采用分布式,明密文Tensor/Dataframe编程模式,实现核心算法迁移和扩展:
- 数据预处理:新增DataFrame Transformer, 完成Reader、PSI、Union和DataSplit迁移
- 特征工程:完成HeteroFederatedBinning、HeteroFeatureSelection、DataStatistics、Sampling、FeatureScale和Pearson Correlation迁移
- 联邦训练算法迁移:包括HeteroSecureBoost、HomoNN、HeteroCoordinatedLogisticRegressio、HeteroCoordinatedLinearRegression、SSHE-LogisticRegression和SSHE-LinearRegression
- 新增联邦训练算法协议:基于MPC和同态加密混合协议的SSHE-HeteroNN
,基于FedPASS协议的FedPASS-HeteroNN
- 性能显著提升
- PSI隐私保护求交:在一亿id的数据集上测试,且交集结果为1亿,性能为FATE-1.11的1.8+倍
- 纵向联邦分箱算法:在guest 十万行*三十维特征,host 十万行*三百维特征的数据上测试,性能为FATE-1.11 的1.5+倍
- 纵向联邦SSHE-LR算法: 在guest 十万行*三十维特征,host 十万行*三百维特征的数据上测试,性能为FATE-1.11的4.3+倍
- 纵向联邦带协调方的LR算法:在guest 十万行*三十维特征,host 十万行*三百维特征的数据上测试,性能为FATE-1.11的1.2+倍
- 纵向联邦神经网络(基于FedPass协议):在guest 十万行*三十维特征, host 十万行*三百维特征的数据上测试,与明文性能基本一致,性能为FATE-1.11的143+倍
Eggroll 3.0: 系统性能、可用性和可靠性全面增强
1. JVM增强
- 核心组件重构:cluster-manager 和 node-manager 组件使用Java语言全面重建,确保统一性和提升性能
- 传输组件修改:移除 rollsite 传输组件,用更高效的 osx 组件替代
- 进程管理改进:实现了更高级的进程管理逻辑,显著降低进程泄露风险
- 数据存储逻辑增强:数据存储机制优化,提高性能和可靠性
- 并发控制改进:升级原有组件中的并发控制逻辑,提升性能
- 可视化组件:新增可视化组件,方便监控计算信息
- 日志完善:日志系统增强,输出更精确,有助于快速检测异常
2. Python升级
- roll_pair和 egg_pair重构:支持由调用方控制的序列化和分区方法,序列化安全由调用方统一管理
- 中间表自动清理:解决了联邦和计算之间中间表自动清理问题,无需调用方额外操作
- 配置控制统一:引入灵活的配置系统,支持直接传递、配置文件和环境变量,以满足多样化需求
- 客户端PyPI安装:Eggroll 3.0.0 支持客户端通过PyPI进行简易安装
- 日志配置优化:调用方可以根据需要自定义日志格式
- 代码结构调整:代码库精简,结构和逻辑更清晰,并移除了大量冗余代码
- 汇聚开源力量,助力隐私计算行业发展
跨行业、跨机构的数据融合在金融、电信、医疗、政务、广告营销、智慧城市等诸多场景都有着广泛的需求。隐私计算已成为打破行业间数据壁垒的利器,互联互通则是充分发挥这把利器作用的磨刀石。FATE 2.0提供了一个开源框架来实现互联互通,解决了业内的一大痛点。大多数隐私计算平台都可以通过实现开放的互通接口,达到和异构系统交互和集成的目的。
FATE 2.0的推出为实现异构平台之间的互联互通提供了有力支持,持续的迭代展现了技术不断完善的承诺。不仅关乎数据隐私保护,更涉及到整个行业向前发展。在这一进程中,隐私计算行业用户和技术合作伙伴有了更多参与的机会。通过社区的共同努力,我们可以更好地应对数据安全和隐私保护挑战,为建设更加安全可靠的数字社会奠定坚实基础。FATE 2.0的发布是行业合作与共赢的新篇章,期待更多的创新者和实践者加入其中,共同推动隐私计算技术的蓬勃发展。
[1] 国家数据局:国家数据局等部门关于印发《“数据要素×”三年行动计划(2024—2026年)》的通知
[2] 中国信通院吕艾临等:我国数据要素市场培育进展与趋势
[3] 《金融业隐私计算互联互通API技术文档》v1.0版本已在FATE社区仓库进行托管:https://github.com/FederatedAI/InterOp