Categories
程式開發

联邦学习全球首个工业级开源框架FATE完成重大更新:全球首次支持纵向联邦神经网络算法


近两年来,联邦学习发展迅速,其作为分布式的机器学习范式,能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,从技术上打破数据孤岛,实现 AI 协作。而 FATE 作为联邦学习全球首个工业级开源框架,支持联邦学习架构体系,为机器学习、深度学习、迁移学习提供了高性能联邦学习机制。此外,其自身还支持多种多方安全计算协议,如同态加密、秘密共享、哈希散列等,具有友好的跨域交互信息管理方案。

近日,全球首个联邦学习工业级开源框架 FATE 1.2 版本正式发布,在该版本中,FATE 推出了两大重量级的更新项,分别为对纵向联邦 DNN 的支持以及对多方安全计算 SPDZ 协议的支持。作为首个支持纵向联邦神经网络算法的版本,开发者在纵向联邦建模的分类、回归、排序等场景下都可以明显感受到其支持性。而 SPDZ 秘密共享安全计算协议的的支持,进一步拓展和丰富了 FATE 的应用场景。

在之前的1.0大版本中,FATE 上线了首个可视化联邦学习产品与联邦 pipeline 生产服务。而在1.1大版本中,FATE 联合 VMware 中国研发开放创新中心云原生实验室联合发布了 KubeFATE 项目,通过把 FATE 的所有组件用容器的形式封装,实现了使用 Docker Compose 或Kubernetes(Helm Charts)来部署。前两个版本分别在可视化使用体验及部署体验上做了重点提升,而 FATE v1.2 版本则回归至算法本身,进一步拓展其支持性。除两大重量级更新项以外,还新增了如二阶优化方法-纵向 SQN、数据管理模块等功能,前者能够显著提升纵向逻辑回归和纵向线性回归收敛效率,对算法加速起到关键作用。后者则用于记录 upload 的数据表及 Job 运行中模型的输出结果,并提供查询以及清理 CLI,项目已开源在GitHub上。

FederatedML: 开启纵向联邦深度学习和多种多方安全计算协议支持之旅

在FATE 1.2版本中,首次对外发布了纵向联邦深度学习框架,开启了FATE对深度学习联邦化的支持,开发者可以自定义深度神经网络结构。目前版本已支持 Tensorflow, 后续会推出 PyTorch 版本,便于开发者低代价迁移 Tensorflow 和 Pytorch 的使用习惯和经验。

在这一版本中,FATE 实现了 SPDZ 秘密共享多方安全计算协议的支持,这意味在现有同态加密协议的基础上,FATE 能为开发者提供更多样化的多方安全计算协议支持。开发者们可根据自身算法的特点,自由选择适合自身算法的多方安全计算协议,联邦学习的可应用范围得到进一步拓展。值得说明的是,在纵向皮尔逊特征相关性计算算法实现中,首次使用了 SPDZ 协议。

此外,算法性能优化方面, 新版本也首次引入二阶优化算法,提出了纵向 SQN 算法,并成功应用在纵向广义线性模型中,对算法性能有显著提升。特征分箱和特征选择新增对多方 host 联邦建模的支持,开始全方位的支持多 host 场景。

FATE-Board:两大可视化支持,实用性再提升

自 1.0 版本推出 FATE-Board 以来,这一产品受到了开发者广泛好评。而在 1.2 版本中,FATE 也对 FATE-Board 再次进行了提升,新增了对联邦模式下特征相关性、以及 LocalBaseline 组件的可视化支持。前者能够直观地分析特征之间的相关性分布情况,从而帮助开发者快速进行判断与特征选择。而后者则可以让开发者将基于联邦训练的模型与基于 sklearn 训练的模型结果进行直接对比,并从可视化报告对比中得出相关结论。

此外,这一版本的 FATE-Board 在用户体验方面也有了重大的提升,如工作流、模型输出图表图形、评估曲线等,都高度优化了可视化效果及交互操作,并增强了实用性。在使用中相信能让开发者体验再上一层楼。

FATE-Flow:FATE 数据管理模块,开启数据治理之路

在FATE 1.2版本中,FATE 新增加了数据管理模块,这将成为开启数据治理的第一步。从这一版本开始,在整个 Job 生命周期产生的数据都有迹可循了。此外,数据管理模块提供了诸如查询、删除等常用管理命令,这也极大地增强了开发者对数据的掌控能力。

总的来说,FATE 在1.2这一版本中,开启了对新领域的进一步拓展。无论是对纵向联邦深度学习框架,还是多方安全计算 SPDZ 协议的支持,都是在打磨底层框架,为未来 FATE 能支持更多应用场景提供一种可能。从这一版本也可以看出,除新功能外,FATE 对已有建模组件也在持续不断的优化和改进,致力于在效率,多样性和实用性上,为开发者提供更加优质的服务体验。

详情可查阅 FATE官网项目贡献者指南。