如何在保证本地训练数据不公开的前提下,实现多个数据拥有者协同训练一个共享的机器学习模型?传统的机器学习方法需要将所有的数据集中到一个地方(例如数据中心),然后进行机器学习模型的训练。但这种基于集中数据的做法无疑会严重侵害用户隐私和数据安全。如今,世界上越来越多的人开始强烈要求科技公司必须根据用户隐私法律法规妥善地处理用户的数据,欧盟的《通用数据保护条例》是一个很好的例子。而联邦学习这门技术,则可以将分布式机器学习、密码学、基于金融规则的激励机制和博弈论结合起来,从而解决分散数据的使用问题。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
主要更新点介绍:
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来实现自己的业务目标。
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,进一步交流及了解。