题图摄于长安街
我们的团队一直在参与开源项目的贡献和社区运营。除了之前的 Harbor 开源社区外,我们近期在深度参与联邦学习领域 FATE 开源项目,感兴趣的朋友会议来交流和合作。本篇转发 FATE 开发专委会的文章。
4月份,FATE v1.8 版本正式发布。
FATE(Federated AI Technology Enabler)是全球首个联邦学习工业级开源框架,它提供一种基于数据隐私保护的安全计算框架,为机器学习、深度学习、迁移学习算法提供强有力的安全计算支持。
中国信通院《隐私计算白皮书(2021)》显示,55%的国内隐私计算产品是基于或参考开源项目开发的,其中以 FATE 开源项目为主。
2021年又被称为隐私计算“应用元年”,此次FATE v1.8版本中,考虑了生产可用性需求,在性能、功能算法、模型管理等方面均进行了丰富完善,开发者可以通过下方链接获取FATE / KubeFATE v1.8发布版。同时,FATE开源社区开发专委会也正在规划v1.9版本的准备工作,向社区用户公开收集v1.9版本的功能需求,欢迎广大开发者、用户、社区贡献者和联邦学习爱好者提出需求以及宝贵的改进建议。
FATE将持续坚持“开源开放,共力创新”愿景,汇聚更多开发者、行业专家、创新力量,共同推动联邦学习技术发展及应用实践。
用户可访问以下网址获取 v1.8 的发布版:
https://github.com/FederatedAI/FATE/releases
https://github.com/FederatedAI/KubeFATE/releases
1
FATE v1.8版本功能概述
本次发布的FATE v1.8 包含了在性能、功能、框架可测试、模型管理多方面的改进。
在性能方面,为了加速多分类联邦训练任务,横纵向联邦SecureBoost新增了SecureBoost-MO算法,在效果基本无损的情况下,训练过程性能提升最大可接近5倍,极大增强了SecureBoost联邦多分类训练任务的可用性。根据社区的反馈,我们在纵向联邦SecureBoost的预测过程中,对预测流程使用的数据结构持续优化,树的棵数较多的时候,占用的硬盘消耗和带宽消耗降低了约75%,增强大规模数据离线预测的可用性和效率。此外,对PSI-DH交集算法、纵向联邦分箱算法等也进行性能优化,效率和内存占用方面都得到了不错的提升。
在功能方面,我们解决了不少用户的痛点,例如,新增了无协调方的纵向联邦线性回归算法,该算法解决的是生产部署中“可信第三方”难找难部署的问题; 横向联邦逻辑回归算法支持多分类的训练,完善和丰富了横向多分类建模;针对数据不平衡问题,支持无协调方的纵向联邦广义线性模型,支持带权样本训练等等。
在框架可测试方面,FATE-Test自动化测试工具功能进一步增强,新增Paillier、SPDZ安全算子标准化测试,同时集成了mnist图像数据下载和全量样例数据上传等功能,提升了框架的可测试性。
在模型管理方面,通过引入自动化方法,优化了模型迁移步骤,提升了模型迁移用户体验。
KubeFATE 1.8 新增了在云原生平台的可观察性,利用Kubernetes的探针机制,保证各组件容器的高可用和服务不中断;docker-compose部署方式增加了健康检查功能;优化了Helm Chart的文件结构,方便定制化开发;基于minikube的部署教程也得到更新。
2
各模块新版本特色功能一览
此次,推出的FATE v1.8版本,对FATE进行了全面升级,增强了生产可用性,丰富并完善多项功能。此外,新版本对其他FederatedML、KubeFATE、Fate-Flow、Fate-Board、Fate-Test等多个模块都进行了更新及改进,各模块改进点如下:
FederatedML
🔹基于统一的纵向联邦广义线性模型框架,使用同态加密和秘密分享混合协议,新增无协调方的纵向联邦线性回归算法
🔹纵向联邦逻辑回归算法支持one-vs-rest策略进行多分类训练任务
🔹横纵向SecureBoost新增SecureBoost-MO算法加速多分类训练任务,性能提升1.5到5倍
🔹纵向联邦SecureBoost预测阶段数据传输逻辑优化,在深度较少时减少超过75%的带宽流量
🔹PSI-DH协议流程优化,性能提升超过30%
🔹优化等频分箱gk-summary算法数据结构,性能提升超过20%,进一步减少内存占用
🔹无协调方纵向联邦LR和纵向联邦线性回归支持样本带权训练
🔹合并纵向联邦Fast SecureBoost到纵向联邦SecureBoost里面去作为一种boosting策略去使用
KubeFATE
🔹支持FATE v1.8.0 安装部署
🔹为Kubernetes中部署的FATE各组件增加了存活和就绪探针检查,该功能利用Kubernetes的探针机制,保证各组件容器的高可用和服务不中断
🔹为docker-compose中部署的FATE所在的python容器增加了健康检查机制,利用docker的healthcheck机制,更好地监控容器的状态
🔹支持通过ingressClassName的方式为Ingress资源指定控制器,此方式为Kubernetes官方支持的方式,舍弃了非官方且繁琐的注解配置机制。至此,KubeFATE中对Ingress的使用完成了全面的升级,与主流的Kubernetes使用方式对齐
🔹Helm Chart内部文件结构优化,按组件进行了子目录划分,子目录中按照Kubernetes资源的类型进一步进行了文件划分,从而方便进行二次开发和定制
🔹使用minikube部署两方KubeFATE和FATE的教程得到重大更新,引入更细致的引导步骤,各个组件的版本和示例代码也升级到最新版
🔹修复多个Bug和各依赖库升级至最新
Fate-Flow
🔹模型迁移流程优化,步骤精简
🔹增加数据表的disable\enable接口,支持批量删除disabled状态的表
🔹组件中心增加FATE版本兼容性测试,支持不同party使用不同的版本的调度
Fate-Board
🔹Secureboost 组件支持GBDTMO模式
🔹添加SSHE Linr组件
🔹添加Writer组件
🔹删除Data statistic组件的数据输出端口
🔹修改展示问题并优化传输协议支持
Fate-Test
🔹集成Paillier性能标准化测试
🔹集成SPDZ性能标准化测试
🔹优化Testsuite输出结果,包括任务状态着色优化,新增不同状态任务汇总等
🔹集成最小化测试数据、全量样例数据上传,以及mnist图像数据下载功能
🔹提供pipeline到dsl的转化工具
Fate-ARCH
🔹通过支持指定Eggroll参数项,使得默认情况下,中间表输出为临时表,优化算法磁盘占用
🔹支持单机版可指定并发的核数
Bug-Fix
🔹修复SPDZ使用不指定q_field时多方没对齐的问题
🔹修复SPDZ值多次重构原值被替换问题
🔹修复迭代查询策略的横向联邦分箱特殊情况下无法收敛,以及数据分布不均匀时精度损失较大的问题
🔹修复横向神经网络TensorFlow-Keras引擎下模型部分聚合的问题
🔹修复纵向联邦特征选择使用联邦相关过滤器,但某方特征为空时卡住的问题
欢迎更多的用户和开发者加入FATE开源社区,开源社区的精神在于协作与共赢,社区成员不仅能够获得项目发展带来的成果,也可以通过参与项目贡献回馈社区,形成良性循环,推动整个社区的健康发展。
专家视频解读:关于FATE和KubeFATE v1.8你可能想知道的
3
参与FATE开源社区
FATE开源社区是一个开放、平等、包容的学习社区,在这里你不仅可以从众多贡献者处获得技术帮助,还可以通过技术贡献的方式丰富社区资源并帮助其他用户。FATE开源社区欢迎更多开发者和用户加入社区建设并提出反馈意见!