联邦学习开源框架Fate主要更新

背景

FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的开源项目,为联邦学习生态系统提供了可靠的安全计算框架。FATE项目使用多方安全计算 (MPC) 以及同态加密 (HE) 技术构建底层安全计算协议,以此支持不同种类的机器学习的安全计算,包括逻辑回归、基于树的算法、深度学习和迁移学习等。

FATE官方网站:https://fate.fedai.org/

版本1.4.0

联邦机器学习(Federated Machine Learning)

  • Home Secureboost(基于xgboost的一个加密boost)
  • 对线性模型的AIC/BIC的逐步回归
  • Hetero Optimal Feature Binning(异构优化的特征分箱),支持iv/gini/chi-square/ks且允许 非对称分箱方法
  • 支持AI生态:引入了pytoch包来支持人神经网络
  • 同构框架解构,简化同构相关算法的开发
  • 为不同算法提供更早的停止策略
  • 多类型分类的本地参照物
  • 一致的预测评估
  • 有效性策略优化,训练有效性的3倍速

Fate-flow(流的支持)

  • 重构模型管理,本地文件存储,更易伸缩且信息更丰富的存储解构
  • 在可靠的分布式系统上,支持模型的导入导出,存储
  • 任务队列使用mysql管理而不是redis,减少系统的复杂性
  • 提供上传客户端上传本地文件
  • 自动检测存在的表且提供删除选项
  • 系统,算法,调度日志的隔离,调度日志可以被独立审查

Eggroll

  • 稳定性提升:新的资源管理组件有全新的会话机制,会话出错后,管理组件呢也能通过简单的方法调用进行清理。去掉了存储服务,没有c++/本地库文件需要编译。联邦学习算法在28%的丢包率下依然工作。
  • 性能提升:在Eggroll2上,联邦学习算法有极大的性能提升,部分算法有10倍性能提升,联邦场景下,join interface比pyspark快16倍
  • 用户体验提升:快速开发,支持maven,pip,config和start。轻量级依赖,可以从requirements.txt(python的依赖文件),pom.xml(java的依赖文件)看出。简易的调试,必要的上下文提供,实时的运行状态可以在日志和数据库中查看。一些jvm应用demo提供。

版本1.3.0

FederatedREC(联邦推荐算法)

  • 添加联合推荐子模块
  • 添加异构因子分解
  • 添加同构因子分解
  • 添加异构矩阵分解
  • 添加异构奇异值分解
  • 添加异构SVD++(满足最近邻分解)
  • 添加异构广义矩阵分解

联邦机器学习

  • 支持非均匀一般线性模型(异构LR、异构LinR、异构poissonR)中用稀疏数据训练
  • 修正了32M分位数限制,以支持更高的特征维度
  • 修正了SecureBoost直方图统计的32M限制,以支持更高的特征维度训练。
  • 在OneHot编码器中添加异常参数和输入数据检测
  • 修复在训练过程中,不传递验证数据来适应支持数据评估验证的过程

Fate-Flow

  • 添加清除job的CLI(命令行交互界面)以清除输出和中间结果,包括数据、度量和会话
  • 支持通过CLI获取表命名空间和输出数据的名称
  • 在某些特殊情况下修复删除job不成功的执行
  • 改进日志系统,添加更多异常和运行时状态提示

版本1.2.0

联邦学习

  • 添加异构深层神经网络
  • 添加秘密共享协议SPDZ
  • 在SPDZ中加入异构特征相关算法并支持异构Pearson相关性计算
  • 增加异构的SQN优化器,可用于异构回归和异构回归,可显著降低通信成本
  • 支持扩展的重复id取交集
  • 异构特征分箱中的多主节点支持
  • 异构特征筛选中的多主节点支持
  • 支持异构特征分箱中离散特征的IV计算
  • 支持异构特征分箱中原始特征值到WOE的转换
  • 在异类特征筛选中添加手动过滤器
  • 支持性能与sklearn' logistic回归的对比
  • 联邦训练迭代过程中对象/表的自动清理
  • 提高大对象的传输性能
  • 添加用于提交和运行任务的自动脚本

Fate-Flow

  • 添加数据管理模块,用于在运行的作业中记录上传的数据表和模型的输出,以及查询和清理的命令行工具。
  • 支持注册中心简化FATE Flow和FATE Serving之间的通信配置
  • 重构模型发布逻辑,命运流将模型直接推向fate服务。将fate服务和Eggroll分离,离线和在线架构只通过fate-flow连接。
  • 提供CLI查询数据上传记录
  • 按行上传和下载数据支持进度统计
  • 添加一些异常诊断提示
  • 支持向任务添加注释信息
  • 本机部署
  • 修复EggRoll启动脚本中的错误,添加mysql,redis启动选项。
  • 禁用mysql服务的主机名解析配置。
  • 使用自动获取模式更新软件打包脚本中每个模块的版本号。

版本1.1.1

主要特点和改进

  • 添加基于ubuntu的集群部署
  • 添加支持数据合并的联合组件。
  • 支持在一个Onehot Encoder中显示部分列
  • 支持任务结束后的中间数据清理
  • 求交加速
  • 优化部署过程

漏洞修补

  • 修复secureboost“提前停止”的错误
  • 修复下载api中的错误
  • 修复spark后端的错误

版本1.1

联邦机器学习

  • 为支持安全聚合的同构联邦学习提供一个通用算法框架
  • 加深度神经网络
  • 添加异质线性回归
  • 添加非均匀泊松回归
  • 支持异构逻辑回归中的多主节点
  • 支持异构线性回归中的多主节点
  • 支持多主节点求交
  • 利用缓存加速求交
  • 重构异构广义线性模型框架
  • 异构SecureBoost中支持仿射同态加密
  • 支持异构SecureBoost中,对于缺失值进行输入数据
  • 支持训练期间的评估并验证数据
  • 添加spark作为计算引擎

fate-flow

  • 查询任务状态的上载和下载,支持CLI
  • 支持取消等待任务
  • 支持设置任务超时
  • 支持在任务日志文件夹中存储任务调度日志
  • 添加身份验证来控制测试版,包括其中组件、命令、角色

版本1.0.2

  • Python和JDK环境仅用于运行独立版本的快速体验
  • 支持集群版本docker部署
  • 添加中文部署指南
  • 部署群集版本时,支持用于快速体验的独立版本运行。
  • Python服务日志将保留14天。

版本1.0

这个版本包括两个新产品,分别是fate面板和fate-flow,面板作为联邦建模的可视化工具,fate流是联邦学习的端到端pipeline平台。此版本包含对FederatedML的重要改进,它可以更好地跟踪联邦学习算法的运行进度。

fate面板

  • 联邦学习任务面板
  • 联邦学习任务可视化
  • 联合学习任务管理
  • 实时日志面板

fate-flow

  • DAG定义Pipeline
  • 联邦多方非对称DSL解析器
  • 联邦学习生命周期管理
  • 联邦任务协同调度
  • 数据、度量、模型等的跟踪
  • 联邦多方模型管理

联邦ML

  • 用fate流更新联邦建模的所有算法模块运行状态
  • 中间统计结果在所有算法模块的面板中可视化。
  • 支持Nesterov Momentum SGD优化器
  • 基于仿射变换的加同态加密方案
  • 联邦特征分享支持稀疏的输入
  • 更新评估指标,如ks、roc、gain、lift curve等
  • 更新算法的参数定义类

fate服务

  • 在线联邦接口添加在线联邦模型的DSL解析器

版本 0.3

联邦学习

  • 支持多标签分类任务的OneVsALL
  • 异方差Logistic回归中的垃圾回收
  • 为sigmoid和对数逻辑函数添加数值稳定。
  • 支持异构Logistic回归和异构SecureBoost的不同计算模式
  • 联邦特征组合与联邦特征选择的解耦
  • 在Hetero SecureBoost中增加特征重要性计算
  • 在Hetero SecureBoost中添加多主节点
  • 支持标签:值稀疏输入数据
  • 支持输出交集id与交集中的特征实例
  • 支持OneHot模块。
  • 支持联邦特性分箱的bucket分箱。
  • 支持定点数上的加法、sub、mul、div、gt、lt、eq等数学运算符
  • 为参数设置添加权限验证

fate服务

  • 为多方推理结果添加多级缓存
  • 添加startInferceJob和getInferenceResult接口以支持推理过程异步化
  • 规范化推理返回码
  • 推理汇总日志和推理细节日志的实时日志记录
  • 改进主机前、后处理适配器和数据访问适配器的加载

eggroll

  • 新的计算和存储api
  • 稳定性优化
  • 性能优化
  • 存储使用率改进
  • 添加Mini FederatedML测试任务示例
  • 使用任务管理器提交当前示例的分布式任务
  • 错误修复和其他更改
  • 修复检测一个最大列溢出错误。
  • 修复数据IO密集格式不读取主机数据头错误。
  • 修正统计函数调用错误
  • 修复联合功能选择的错误,每个参与方至少保留一个功能
  • 出于安全考虑,不允许在LR模块中使用小的批量。
  • 修复联合功能选择模块中的命名错误。
  • 在某些极端情况下修复自动发布模型信息的错误
  • 修复了定点数中的一些溢出错误
  • 修复许多其他错误。

版本0.2

fate-flow

  • 添加模型管道线
  • 添加异构联合特征分箱工作流
  • 添加异构联合特征选择工作流
  • 添加异构dnn工作流
  • 为训练,预测,较差验证添加求交算子

联邦ML

  • 支持svm稀疏格式输入数据
  • 支持标签稀疏格式输入数据
  • 添加异联邦特性分箱
  • 添加异构联邦特征选择
  • 添加功能定标器:MinMaxScaler和StandardScaler
  • 为缺失值填充添加特征输入
  • 为数据实例添加数据统计
  • 支持原始交集可配置的编码和主计算角色
  • 添加采样器:随机采样器和分层采样器
  • 支持SecureBoost中的回归
  • 支持回归评估
  • 支持分散化FTL
  • 通过DNN添加特征提取
  • 将模型格式更改为ProtoBuf
  • 增加异常参数检测
  • 添加异常输入数据检测

fate服务(联邦学习模型的在线推理)

  • 动态加载联邦学习模型。
  • 使用联邦学习模型的实时预测。
  • 模型管理
  • 版本控制
  • 再现性
  • 查询,搜索
  • 任务管理器
  • 添加加载文件/下载文件
  • 从本地文件添加导入ID
  • 添加开始工作流
  • 添加工作流任务队列
  • 添加查询任务状态
  • 添加Get Runtime conf
  • 添加删除任务

Eggroll

  • 为多处理器添加节点管理器以提高分布式计算性能
  • 添加C++重写存储服务
  • 添加eggroll清理API

部署

  • 添加自动部署
  • 改进部署文档

例子

  • 添加异构联邦特征分箱示例
  • 添加异构联邦特征选择示例
  • 添加异构DNN示例
  • 添加小例子
  • 添加任务管理器示例
  • 添加服务示例
  • 错误修复和其他更改
  • Hetero-LR Minibath 修正
  • 梯度平均修正
  • 代理1秒延迟错误修正
  • 修正了训练流程

版本 0.1

初始化版本

工作flow

  • 支持求交工作流
  • 支持训练工作流程
  • 支持预测工作流
  • 支持评估工作流
  • 支持模型加载和保存工作流

联邦ML

  • 支持样本比对的分布式安全求交和原始求交
  • 支持分布式同质LR和异构LR
  • 支持分布式SecureBoost
  • 支持分布式安全联邦迁移学习
  • 支持二值和多类评估
  • 支持模型交叉验证
  • 支持小批量
  • 支持L1,L2正则化
  • 支持多方同构联邦聚合器
  • 支持多方异构联邦聚合器
  • 支持部分同态加密MPC协议

结构

  • 计算api的初始版本
  • 存储api的初始发布
  • 联合API的初始发布
  • 跨站点网络通信(即“联合”)的初始发布
  • 独立运行时的初始版本,包括计算引擎和k-v存储
  • 分布式运行时的初始发布,包括分布式计算引擎、分布式k-v存储、元数据管理和站点内/跨站点网络通信
  • 支持跨站点异构基础设施
  • 建模与推理的初始支持

部署

  • 支持独立(docker&manual)部署
  • 支持群集部署
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335