如何在保证本地训练数据不公开的前提下,实现多个数据拥有者协同训练一个共享的机器学习模型?传统的机器学习方法需要将所有的数据集中到一个地方(例如数据中心),然后进行机器学习模型的训练。但这种基于集中数据的做法无疑会严重侵害用户隐私和数据安全。如今,世界上越来越多的人开始强烈要求科技公司必须根据用户隐私法律法规妥善地处理用户的数据,欧盟的《通用数据保护条例》是一个很好的例子。而联邦学习这门技术,则可以将分布式机器学习、密码学、基于金融规则的激励机制和博弈论结合起来,从而解决分散数据的使用问题。
FATE(Federated AI Technology Enabler)作为首个联邦学习的工业级开源框架,实现了同态加密和多方计算(MPC)的安全计算协议,其支持联邦学习架构,内置了多种机器学习算法的联邦学习实现,FATE 的每一次更新迭代,都在一定程度上代表着联邦学习的前进方向。
近日,全球首个联邦学习工业级开源框架 FATE(Federated AI Technology Enabler)正式迎来了 1.4 新版本发布。在这一版本中,FATE 着重提升了用户在真实建模中的体验,横向联邦增加了对 Secureboost 树算法的支持,纵向联邦广义线性模型系列则增加了对基于 AIC 及 BIC 进行逐步回归模型选择的全面支持,纵向联邦分箱也新增了最优分箱方法,支持 iv\gini\chi-square\ks,同时,作为 FATE 计算/存储/通信引擎的 EggRoll 也迎来了全新的 2.0,稳定性、性能以及用户体验显著提升。作为侧重点在完善 FATE 可用性的这一版本,相信能为开发者带来更为流畅的使用体验。
该项目 GitHub 地址:
https://github.com/FederatedAI/FATE
主要更新点介绍:
横向联邦新增对 Secureboost 树算法的支持,开发者可以在用户数据特征相同的横向场景下构建 GBDT 模型,自此,FATE 框架中树算法得以进一步完善,现在 FATE 的树算法已可支持所有的联邦场景;
纵向联邦广义线性模型系列,现已全面支持基于 AIC 及 BIC 进行逐步回归模型选择,在平衡线性模型参数量与效果的场景中,将会自动选取特征组合,减少选取模型过程中人工操作次数,提升开发者的使用体验;
纵向联邦分箱支持最优分箱方法,支持 iv\gini\chi-square\ks,开发者从这一版本起,就可以在纵向联邦分箱中使用最优分箱方法了,特征工程的分箱方法进一步丰富化,相信能让开发者更直观感受到 FATE 建模过程中的实用性;
AI 生态互操作:横向联邦 NN 支持 pytorch backend,FATE 新增了 pytorch backend,即支持使用 pytorch 引擎搭建 nn 网络,换而言之,使用 pytorch 编写的横向 nn 模型,可相关使用配置文件将其通过 pytorch backend 进行转化,加入多方横向联邦学习,作为重要的深度学习库,支持 pytorch 的呼声一直很高,横向 nn 在支持使用 tensorflow 和 keras 的基础上,增加了 pytorch backend,进一步丰富了 FATE 的功能性。
FederatedML:新增横向 secureboost 算法,广义线性模型的逐步回归模型选择以及最优分箱功能支持
在上一个版本中,FATE 对训练稀疏数据效率进行了提升,内存消耗也再度优化。而在 1.4 版本中,FederatedML 的更新也延续了这一想法,主要集中提高了 FATE 的可用性。首当其冲的,便是完善了更多的常见功能。比如 1.4 中新增的横向 secureboost 算法,广义线性模型的逐步回归模型选择以及最优分箱功能支持等,都是在建模过程中用户迫切希望得以实现的功能。除此以外,FATE 1.4 也在努力提升原有算法的体验和应用范围。比如本次更新进一步完善了横向 nn 的功能,新增 pytorch 框架支持,提升建模效率的同时,增强了易用性,开发者不必同时掌握多种深度学习库,即可满足联邦场景中的建模需求。最后,新版本还通过优化部分算法的实现,大大提升了建模过程中的稳定性和效率,使得开发者能更顺畅地使用 FATE 来实现自己的业务目标。
FATEBoard:新增 Pearson 相关性可视化矩阵图,支持 GLM 的 stepwise 方法、横向 Secureboost 等可视化输出
FATEBoard 是联邦学习建模的可视化工具,为终端用户可视化和度量模型训练的全过程,能够帮助开发更简单、高效地进行模型探索和模型理解。FATEBoard 由任务仪表盘、任务可视化、任务管理与日志管理等模块组成,支持模型训练过程全流程的跟踪、统计和监控等,并为模型运行状态、模型输出、日志追踪等提供了丰富的可视化呈现。
在 FATE 1.4 版本中,FATEBoard 新增了 Pearson 相关性的可视化矩阵图,可帮助开发者查看 guest 特征之间,以及 guest 与 host 特征之间的相关性大小。而对 GLM(纵向 LR、纵向线性回归、纵向 poisson 回归)的 stepwise 方法的结果可视化输出的支持,则能够帮助开发者准确地观察每一步的模型拟合统计、特征分析、最大似然分析、待进入特征分析等情况。对横向 Secureboost 的可视化树模型输出,LR、localbaseline 在 one_vs_rest 下的可视化输出的支持,也进一步丰富了 FATEBoard 在更多场景下的适用性。
最后,新版本对 FATEBoard 的视觉和交互体验上也做了重大提升,支持大数据量下图表的可视化,优化页面视觉效果及交互细节。通过尝试,建模人员可以明显感受到 FATEBoard 的可用性与易用性在这一版本中所呈现的全方位提升,必将帮助建模人员更好地理解与分析模型。
支持 EggRoll 2.0:稳定性、性能以及用户体验显著提升
作为 FATE 1.4 版本的一个重点,EggRoll 也迎来了巨大提升,在稳定性方面,FATE 采用了全新的资源管理组件及 session 机制。从这一版本起,即使 session 出错,也只需要一个简单函数调用,临时拉起的计算进程即可被清理。此外,此版本也移除了 storage service,无需 C++/native 库的编译,开发者从下载代码到运行起来的步骤进一步减少,编译与环境依赖也更加简化,基本上已可实现开箱即用。最后,面对在任意网络下传输都会产生的丢包现象,新版本也做了适配,联邦学习算法在 28%的丢包率之下依然可以实现正常运行。
在性能方面,在实践中相信开发者能够感受到,运行于 Eggroll 2 的联邦学习算法性能显著提升,部分算法甚至可以达到超过 10 倍的性能提升,此外,Join 接口在联邦学习场景下,也实现了比 pyspark 快 16 倍的速度,开发者的计算/建模将更为高效。
而在用户体验方面,新版本已可快速部署,只需 Maven 编译、pip 安装依赖、修改配置,即可运行。此外,这一版本也变得更加易于调试,新版本中不仅提供了必要的运行上下文信息,还将调试的关键系统状态保存在日志文件及数据库中,当开发者遇到报错信息时,排查将变得更加快捷。最后,常驻进程在这一版本中也进行了大幅度削减,现在的常驻进程仅三个:
ClusterManager (CM):管理集群的物理资源,管理 session 信息
NodeManager (NM):管理一个机器节点上的物理资源
RollSite:管理跨站点通信,等同以前的 proxy + federation
其中,CM 和 NM 都是无状态的,非常轻量级,易于管理。开发者在使用过程中,可以直观感受到这些提升带来的更优质体验。
总而言之,FATE 1.4 版本是一次回望,对过往开发者们提到的一些问题进行了整合与思考,然后加入了迭代中。无论是 FederatedML 对常用功能、及原有算法的体验和应用范围的提升,还是 FATEBoard 对适用场景的丰富、及视觉和交互体验上的大力优化,又或者是 FATEFlow 针对实际生产应用,从模型、数据、日志三个方面增强系统易管理、易扩展、易审计的能力,都能看到 FATE 对开发者使用体验的思索与重视。FATE 官方欢迎对联邦学习有兴趣的同仁一起贡献代码,提交 Issues 或者 Pull Requests。
详情可查阅 FATE 官网项目贡献者指南:
https://fate.fedai.org/contribute/
另,FATE 官方也在开展针对 1.4 版本的圆桌讨论会,详情可添加 FATE 助手:FATEZS001,进一步交流及了解。
评论