10月31日,fate v1.1版本正式发布。在这个版本中,fate联合vmware中国研发开放创新中心云原生实验室的团队一起搞了个“大事”——发布了kubefate项目,通过把fate的所有组件用容器的形式封装,实现了使用docker compose或kubernetes(helm charts)来部署。现代应用以devops方式开发,基于容器部署应用的优势相当明显,应用不仅可以无差别地运行在支持容器的平台上,还可以按需灵活地实现多实例水平扩展。该项目现已发布在github。
目前主流的云平台,如国外的aws,azure,国内的阿里云、腾讯云等,都有基于容器和kubernetes的云原生服务,使得容器应用的部署和运行已经标准化和商品化。通过kubefate项目,开发者可以轻松地在公有云或私有云中部署和使用fate项目。
另外,本次fate v1.1版本在算法和功能基础了进行重大升级和提升:不仅上线了横向联邦学习通用算法框架,增加了dnn、回归等多个联邦算法,并开始支持多方纵向联邦建模,支持spark引擎,支持fateserving服务治理,支持secureboost在线预测等;1.1版本再一次提升了联邦学习建模体验,更丰富的功能、更全面的算法,同时帮助更多的企业和用户参与对fate技术和应用的深入研究。
federatedml:提供易扩展的横向算法框架支持横向算法开发
在新版本中,fate使开发更加轻松,开发者可以更关注于算法具体本身,而将更多通用的通信传输内容交给框架。fate v1.1提供易扩展的横向联邦学习通用算法框架,支持secure aggregation,通过封装横向联邦学习的主要流程,开发者能够简单地实现横向联邦学习算法。
在算法方面,fate新增了对横向dnn、纵向线性回归、纵向泊松回归等联邦算法的支持,以及更多算法支持多方联邦建模,丰富了更多的建模场景,提升了fate的实用性。值得一提的是,线性回归在预测连续标签等应用场景上非常有力,而泊松回归则能更好的协助开发者预测次数与频率,如在购买保险和评估意外发生风险等场景里,泊松回归都能对频率进行预测。
从这一版本开始,fate也正式开始支持多方纵向联邦建模,可以实现纵向场景下的多个数据提供方共同训练联邦模型。
最后,fate也对连接spark进行了尝试,fate v1.1支持已有spark集群的开发者直接复用现有资源,可以选择spark作为计算引擎,根据实际情况灵活配置。
fateflow:高性能联邦学习pipeline生产服务
fateflow是联邦学习建模pipeline 调度和生命周期管理工具,为用户构建端到端的联邦学习pipeline生产服务。v1.1版本中,fateflow主要在稳定性及易用性上进行了提升,例如:
上传下载文件支持查看作业状态,对于大文件和对接其他系统有较大帮助;
支持取消等待中的作业;
支持对作业设置超时时间;
优化作业日志,统一存放于以作业id命名的日志文件夹,提高排查问题效率;
fateboard:简单高效,联邦学习建模过程可视化
fateboard是联邦学习建模的可视化工具,为终端用户可视化和度量模型训练的全过程,帮助用户更简单而高效地进行模型探索和模型理解。新版本中,job工作流展示进一步优化,并支持组件数据与模型的输入输出端口分离,提供更直观的数据传输与模型传输展示;
另外,现已支持模型训练过程中的评估结果可视化,便于实时关注与跟踪中间训练过程和结果;更提供secureboost树模型的可视化展示,不仅可以清晰地观测模型中每颗决策树,还能查看不同标签下的树模型。
fateserving:服务治理,重启自动恢复模型
在新版本中,模型加载成功后会在本地文件中保存,在重启之后会从本地文件中恢复之前加载的模型。
此外,v1.1版本引入zookeeper作为注册中心,提供了有限的服务治理功能,能够动态的注册grpc接口,在某些机器宕机的情况下,能够自动的切换流量 。
kubefate:fate部署能力升级
fate v1.1版本提供打包好的docker容器镜像,大大降低fate的使用门槛,避免开发者“倒在起跑线上”。如果是企业开发者,还可以发现离线部署fate的能力也得到了提升,借助 harbor 开源容器镜像仓库,可以自动同步网上的镜像,为运维减压。
kubefate主要提供了docker compose和kubernetes(helm chart)两种部署方式。
docker-compose可以将fate的所有组件部署在单个节点中,并且支持多个合作方的部署。开发者无需编译代码,可使用docker compose迅速搭建测试环境。当前docker compose可将fate部署在一个或多个节点中,有利于开发者对fate功能的熟悉和了解。
docker-compose的单节点部署方式定位于测试。在生产环境中,往往需要多节点部署,此时采用kubernetes的方式更佳。kubefate提供了helm charts来把fate部署到kubernetes方法,可在支持kubernetes的云上直接部署fate,并且可以按照需求定制部署的细节,例如把计算模块部署在有gpu的节点上等等。
harbor是开源镜像仓库,提供镜像的访问控制、远程同步、安全漏洞扫描等强大能力,国内的用户绝大部分使用harbor管理镜像。kubefate项目将harbor集成到其中,可提供本地镜像管理能力,无需依赖docker hub等云服务,大大提高了效率和安全性。此外,harbor还能复制远程的镜像,可把镜像在公有云或数据中心之间双向复制,遇到故障可自动恢复,从而简化运维复杂度。
总的来说,fate v1.1版本增加了多个联邦算法的支持,为联邦学习建模带来更丰富更强大的功能,同时联合vmware推出kubefate,简化fate使用门槛,对初接触开发者更为友好。我们欢迎对联邦学习有兴趣的同仁一起贡献代码,提交 issues 或者 pull requests。