联邦学习开源框架FATE新版本发布!配套引擎EggRoll焕新登场
引文:
如何在保证本地训练数据不公开的前提下,实现多个数据拥有者协同训练一个共享的机器学习模型?传统的机器学习方法需要将所有的数据集中到一个地方(例如数据中心),然后进行机器学习模型的训练。但这种基于集中数据的做法无疑会严重侵害用户隐私和数据安全。如今,世界上越来越多的人开始强烈要求 科技 公司必须根据用户隐私法律法规妥善地处理用户的数据,欧盟的《通用数据保护条例》是一个很好的例子。而联邦学习这门技术,则可以将分布式机器学习、密码学、基于 金融 规则的激励机制和博弈论结合起来,从而解决分散数据的使用问题。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可用性的这一版本,相信能为开发者带来更为流畅的使用体验。
主要更新点介绍:
1. 横向联邦新增对Secureboost树算法的支持,开发者可以在用户数据特征相同的横向场景下构建GBDT模型,自此,FATE框架中树算法得以进一步完善,现在FATE的树算法已可支持所有的联邦场景;
2. 纵向联邦广义线性模型系列,现已全面支持基于AIC及BIC进行逐步回归模型选择,在平衡线性模型参数量与效果的场景中,将会自动选取特征组合,减少选取模型过程中人工操作次数,提升开发者的使用体验;
3. 纵向联邦分箱支持最优分箱方法,支持iv\gini\chi-square\ks,开发者从这一版本起,就可以在纵向联邦分箱中使用最优分箱方法了,特征工程的分箱方法进一步丰富化,相信能让开发者更直观感受到FATE建模过程中的实用性;
4. 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来实现自己的业务目标。
F ATEB oard:新增 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的可用性与易用性在这一版本中所呈现的全方位提升,必将帮助建模人员更好地理解与分析模型。
支持 E ggRoll 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官网项目贡献者指南。
另,FATE官方也在开展针对1.4版本的圆桌讨论会,详情可添加FATE助手: F ATEZS001 ,进一步交流及了解。