聯(lián)邦學(xué)習(xí)開源框架Fate主要更新

背景

FATE (Federated AI Technology Enabler) 是微眾銀行AI部門發(fā)起的開源項目,為聯(lián)邦學(xué)習(xí)生態(tài)系統(tǒng)提供了可靠的安全計算框架。FATE項目使用多方安全計算 (MPC) 以及同態(tài)加密 (HE) 技術(shù)構(gòu)建底層安全計算協(xié)議,以此支持不同種類的機器學(xué)習(xí)的安全計算,包括邏輯回歸、基于樹的算法、深度學(xué)習(xí)和遷移學(xué)習(xí)等。

FATE官方網(wǎng)站:https://fate.fedai.org/

版本1.4.0

聯(lián)邦機器學(xué)習(xí)(Federated Machine Learning)

  • Home Secureboost(基于xgboost的一個加密boost)
  • 對線性模型的AIC/BIC的逐步回歸
  • Hetero Optimal Feature Binning(異構(gòu)優(yōu)化的特征分箱),支持iv/gini/chi-square/ks且允許 非對稱分箱方法
  • 支持AI生態(tài):引入了pytoch包來支持人神經(jīng)網(wǎng)絡(luò)
  • 同構(gòu)框架解構(gòu),簡化同構(gòu)相關(guān)算法的開發(fā)
  • 為不同算法提供更早的停止策略
  • 多類型分類的本地參照物
  • 一致的預(yù)測評估
  • 有效性策略優(yōu)化,訓(xùn)練有效性的3倍速

Fate-flow(流的支持)

  • 重構(gòu)模型管理,本地文件存儲,更易伸縮且信息更豐富的存儲解構(gòu)
  • 在可靠的分布式系統(tǒng)上,支持模型的導(dǎo)入導(dǎo)出,存儲
  • 任務(wù)隊列使用mysql管理而不是redis,減少系統(tǒng)的復(fù)雜性
  • 提供上傳客戶端上傳本地文件
  • 自動檢測存在的表且提供刪除選項
  • 系統(tǒng),算法,調(diào)度日志的隔離,調(diào)度日志可以被獨立審查

Eggroll

  • 穩(wěn)定性提升:新的資源管理組件有全新的會話機制,會話出錯后,管理組件呢也能通過簡單的方法調(diào)用進(jìn)行清理。去掉了存儲服務(wù),沒有c++/本地庫文件需要編譯。聯(lián)邦學(xué)習(xí)算法在28%的丟包率下依然工作。
  • 性能提升:在Eggroll2上,聯(lián)邦學(xué)習(xí)算法有極大的性能提升,部分算法有10倍性能提升,聯(lián)邦場景下,join interface比pyspark快16倍
  • 用戶體驗提升:快速開發(fā),支持maven,pip,config和start。輕量級依賴,可以從requirements.txt(python的依賴文件),pom.xml(java的依賴文件)看出。簡易的調(diào)試,必要的上下文提供,實時的運行狀態(tài)可以在日志和數(shù)據(jù)庫中查看。一些jvm應(yīng)用demo提供。

版本1.3.0

FederatedREC(聯(lián)邦推薦算法)

  • 添加聯(lián)合推薦子模塊
  • 添加異構(gòu)因子分解
  • 添加同構(gòu)因子分解
  • 添加異構(gòu)矩陣分解
  • 添加異構(gòu)奇異值分解
  • 添加異構(gòu)SVD++(滿足最近鄰分解)
  • 添加異構(gòu)廣義矩陣分解

聯(lián)邦機器學(xué)習(xí)

  • 支持非均勻一般線性模型(異構(gòu)LR、異構(gòu)LinR、異構(gòu)poissonR)中用稀疏數(shù)據(jù)訓(xùn)練
  • 修正了32M分位數(shù)限制,以支持更高的特征維度
  • 修正了SecureBoost直方圖統(tǒng)計的32M限制,以支持更高的特征維度訓(xùn)練。
  • 在OneHot編碼器中添加異常參數(shù)和輸入數(shù)據(jù)檢測
  • 修復(fù)在訓(xùn)練過程中,不傳遞驗證數(shù)據(jù)來適應(yīng)支持?jǐn)?shù)據(jù)評估驗證的過程

Fate-Flow

  • 添加清除job的CLI(命令行交互界面)以清除輸出和中間結(jié)果,包括數(shù)據(jù)、度量和會話
  • 支持通過CLI獲取表命名空間和輸出數(shù)據(jù)的名稱
  • 在某些特殊情況下修復(fù)刪除job不成功的執(zhí)行
  • 改進(jìn)日志系統(tǒng),添加更多異常和運行時狀態(tài)提示

版本1.2.0

聯(lián)邦學(xué)習(xí)

  • 添加異構(gòu)深層神經(jīng)網(wǎng)絡(luò)
  • 添加秘密共享協(xié)議SPDZ
  • 在SPDZ中加入異構(gòu)特征相關(guān)算法并支持異構(gòu)Pearson相關(guān)性計算
  • 增加異構(gòu)的SQN優(yōu)化器,可用于異構(gòu)回歸和異構(gòu)回歸,可顯著降低通信成本
  • 支持?jǐn)U展的重復(fù)id取交集
  • 異構(gòu)特征分箱中的多主節(jié)點支持
  • 異構(gòu)特征篩選中的多主節(jié)點支持
  • 支持異構(gòu)特征分箱中離散特征的IV計算
  • 支持異構(gòu)特征分箱中原始特征值到WOE的轉(zhuǎn)換
  • 在異類特征篩選中添加手動過濾器
  • 支持性能與sklearn' logistic回歸的對比
  • 聯(lián)邦訓(xùn)練迭代過程中對象/表的自動清理
  • 提高大對象的傳輸性能
  • 添加用于提交和運行任務(wù)的自動腳本

Fate-Flow

  • 添加數(shù)據(jù)管理模塊,用于在運行的作業(yè)中記錄上傳的數(shù)據(jù)表和模型的輸出,以及查詢和清理的命令行工具。
  • 支持注冊中心簡化FATE Flow和FATE Serving之間的通信配置
  • 重構(gòu)模型發(fā)布邏輯,命運流將模型直接推向fate服務(wù)。將fate服務(wù)和Eggroll分離,離線和在線架構(gòu)只通過fate-flow連接。
  • 提供CLI查詢數(shù)據(jù)上傳記錄
  • 按行上傳和下載數(shù)據(jù)支持進(jìn)度統(tǒng)計
  • 添加一些異常診斷提示
  • 支持向任務(wù)添加注釋信息
  • 本機部署
  • 修復(fù)EggRoll啟動腳本中的錯誤,添加mysql,redis啟動選項。
  • 禁用mysql服務(wù)的主機名解析配置。
  • 使用自動獲取模式更新軟件打包腳本中每個模塊的版本號。

版本1.1.1

主要特點和改進(jìn)

  • 添加基于ubuntu的集群部署
  • 添加支持?jǐn)?shù)據(jù)合并的聯(lián)合組件。
  • 支持在一個Onehot Encoder中顯示部分列
  • 支持任務(wù)結(jié)束后的中間數(shù)據(jù)清理
  • 求交加速
  • 優(yōu)化部署過程

漏洞修補

  • 修復(fù)secureboost“提前停止”的錯誤
  • 修復(fù)下載api中的錯誤
  • 修復(fù)spark后端的錯誤

版本1.1

聯(lián)邦機器學(xué)習(xí)

  • 為支持安全聚合的同構(gòu)聯(lián)邦學(xué)習(xí)提供一個通用算法框架
  • 加深度神經(jīng)網(wǎng)絡(luò)
  • 添加異質(zhì)線性回歸
  • 添加非均勻泊松回歸
  • 支持異構(gòu)邏輯回歸中的多主節(jié)點
  • 支持異構(gòu)線性回歸中的多主節(jié)點
  • 支持多主節(jié)點求交
  • 利用緩存加速求交
  • 重構(gòu)異構(gòu)廣義線性模型框架
  • 異構(gòu)SecureBoost中支持仿射同態(tài)加密
  • 支持異構(gòu)SecureBoost中,對于缺失值進(jìn)行輸入數(shù)據(jù)
  • 支持訓(xùn)練期間的評估并驗證數(shù)據(jù)
  • 添加spark作為計算引擎

fate-flow

  • 查詢?nèi)蝿?wù)狀態(tài)的上載和下載,支持CLI
  • 支持取消等待任務(wù)
  • 支持設(shè)置任務(wù)超時
  • 支持在任務(wù)日志文件夾中存儲任務(wù)調(diào)度日志
  • 添加身份驗證來控制測試版,包括其中組件、命令、角色

版本1.0.2

  • Python和JDK環(huán)境僅用于運行獨立版本的快速體驗
  • 支持集群版本docker部署
  • 添加中文部署指南
  • 部署群集版本時,支持用于快速體驗的獨立版本運行。
  • Python服務(wù)日志將保留14天。

版本1.0

這個版本包括兩個新產(chǎn)品,分別是fate面板和fate-flow,面板作為聯(lián)邦建模的可視化工具,fate流是聯(lián)邦學(xué)習(xí)的端到端pipeline平臺。此版本包含對FederatedML的重要改進(jìn),它可以更好地跟蹤聯(lián)邦學(xué)習(xí)算法的運行進(jìn)度。

fate面板

  • 聯(lián)邦學(xué)習(xí)任務(wù)面板
  • 聯(lián)邦學(xué)習(xí)任務(wù)可視化
  • 聯(lián)合學(xué)習(xí)任務(wù)管理
  • 實時日志面板

fate-flow

  • DAG定義Pipeline
  • 聯(lián)邦多方非對稱DSL解析器
  • 聯(lián)邦學(xué)習(xí)生命周期管理
  • 聯(lián)邦任務(wù)協(xié)同調(diào)度
  • 數(shù)據(jù)、度量、模型等的跟蹤
  • 聯(lián)邦多方模型管理

聯(lián)邦ML

  • 用fate流更新聯(lián)邦建模的所有算法模塊運行狀態(tài)
  • 中間統(tǒng)計結(jié)果在所有算法模塊的面板中可視化。
  • 支持Nesterov Momentum SGD優(yōu)化器
  • 基于仿射變換的加同態(tài)加密方案
  • 聯(lián)邦特征分享支持稀疏的輸入
  • 更新評估指標(biāo),如ks、roc、gain、lift curve等
  • 更新算法的參數(shù)定義類

fate服務(wù)

  • 在線聯(lián)邦接口添加在線聯(lián)邦模型的DSL解析器

版本 0.3

聯(lián)邦學(xué)習(xí)

  • 支持多標(biāo)簽分類任務(wù)的OneVsALL
  • 異方差Logistic回歸中的垃圾回收
  • 為sigmoid和對數(shù)邏輯函數(shù)添加數(shù)值穩(wěn)定。
  • 支持異構(gòu)Logistic回歸和異構(gòu)SecureBoost的不同計算模式
  • 聯(lián)邦特征組合與聯(lián)邦特征選擇的解耦
  • 在Hetero SecureBoost中增加特征重要性計算
  • 在Hetero SecureBoost中添加多主節(jié)點
  • 支持標(biāo)簽:值稀疏輸入數(shù)據(jù)
  • 支持輸出交集id與交集中的特征實例
  • 支持OneHot模塊。
  • 支持聯(lián)邦特性分箱的bucket分箱。
  • 支持定點數(shù)上的加法、sub、mul、div、gt、lt、eq等數(shù)學(xué)運算符
  • 為參數(shù)設(shè)置添加權(quán)限驗證

fate服務(wù)

  • 為多方推理結(jié)果添加多級緩存
  • 添加startInferceJob和getInferenceResult接口以支持推理過程異步化
  • 規(guī)范化推理返回碼
  • 推理匯總?cè)罩竞屯评砑?xì)節(jié)日志的實時日志記錄
  • 改進(jìn)主機前、后處理適配器和數(shù)據(jù)訪問適配器的加載

eggroll

  • 新的計算和存儲api
  • 穩(wěn)定性優(yōu)化
  • 性能優(yōu)化
  • 存儲使用率改進(jìn)
  • 添加Mini FederatedML測試任務(wù)示例
  • 使用任務(wù)管理器提交當(dāng)前示例的分布式任務(wù)
  • 錯誤修復(fù)和其他更改
  • 修復(fù)檢測一個最大列溢出錯誤。
  • 修復(fù)數(shù)據(jù)IO密集格式不讀取主機數(shù)據(jù)頭錯誤。
  • 修正統(tǒng)計函數(shù)調(diào)用錯誤
  • 修復(fù)聯(lián)合功能選擇的錯誤,每個參與方至少保留一個功能
  • 出于安全考慮,不允許在LR模塊中使用小的批量。
  • 修復(fù)聯(lián)合功能選擇模塊中的命名錯誤。
  • 在某些極端情況下修復(fù)自動發(fā)布模型信息的錯誤
  • 修復(fù)了定點數(shù)中的一些溢出錯誤
  • 修復(fù)許多其他錯誤。

版本0.2

fate-flow

  • 添加模型管道線
  • 添加異構(gòu)聯(lián)合特征分箱工作流
  • 添加異構(gòu)聯(lián)合特征選擇工作流
  • 添加異構(gòu)dnn工作流
  • 為訓(xùn)練,預(yù)測,較差驗證添加求交算子

聯(lián)邦ML

  • 支持svm稀疏格式輸入數(shù)據(jù)
  • 支持標(biāo)簽稀疏格式輸入數(shù)據(jù)
  • 添加異聯(lián)邦特性分箱
  • 添加異構(gòu)聯(lián)邦特征選擇
  • 添加功能定標(biāo)器:MinMaxScaler和StandardScaler
  • 為缺失值填充添加特征輸入
  • 為數(shù)據(jù)實例添加數(shù)據(jù)統(tǒng)計
  • 支持原始交集可配置的編碼和主計算角色
  • 添加采樣器:隨機采樣器和分層采樣器
  • 支持SecureBoost中的回歸
  • 支持回歸評估
  • 支持分散化FTL
  • 通過DNN添加特征提取
  • 將模型格式更改為ProtoBuf
  • 增加異常參數(shù)檢測
  • 添加異常輸入數(shù)據(jù)檢測

fate服務(wù)(聯(lián)邦學(xué)習(xí)模型的在線推理)

  • 動態(tài)加載聯(lián)邦學(xué)習(xí)模型。
  • 使用聯(lián)邦學(xué)習(xí)模型的實時預(yù)測。
  • 模型管理
  • 版本控制
  • 再現(xiàn)性
  • 查詢,搜索
  • 任務(wù)管理器
  • 添加加載文件/下載文件
  • 從本地文件添加導(dǎo)入ID
  • 添加開始工作流
  • 添加工作流任務(wù)隊列
  • 添加查詢?nèi)蝿?wù)狀態(tài)
  • 添加Get Runtime conf
  • 添加刪除任務(wù)

Eggroll

  • 為多處理器添加節(jié)點管理器以提高分布式計算性能
  • 添加C++重寫存儲服務(wù)
  • 添加eggroll清理API

部署

  • 添加自動部署
  • 改進(jìn)部署文檔

例子

  • 添加異構(gòu)聯(lián)邦特征分箱示例
  • 添加異構(gòu)聯(lián)邦特征選擇示例
  • 添加異構(gòu)DNN示例
  • 添加小例子
  • 添加任務(wù)管理器示例
  • 添加服務(wù)示例
  • 錯誤修復(fù)和其他更改
  • Hetero-LR Minibath 修正
  • 梯度平均修正
  • 代理1秒延遲錯誤修正
  • 修正了訓(xùn)練流程

版本 0.1

初始化版本

工作flow

  • 支持求交工作流
  • 支持訓(xùn)練工作流程
  • 支持預(yù)測工作流
  • 支持評估工作流
  • 支持模型加載和保存工作流

聯(lián)邦ML

  • 支持樣本比對的分布式安全求交和原始求交
  • 支持分布式同質(zhì)LR和異構(gòu)LR
  • 支持分布式SecureBoost
  • 支持分布式安全聯(lián)邦遷移學(xué)習(xí)
  • 支持二值和多類評估
  • 支持模型交叉驗證
  • 支持小批量
  • 支持L1,L2正則化
  • 支持多方同構(gòu)聯(lián)邦聚合器
  • 支持多方異構(gòu)聯(lián)邦聚合器
  • 支持部分同態(tài)加密MPC協(xié)議

結(jié)構(gòu)

  • 計算api的初始版本
  • 存儲api的初始發(fā)布
  • 聯(lián)合API的初始發(fā)布
  • 跨站點網(wǎng)絡(luò)通信(即“聯(lián)合”)的初始發(fā)布
  • 獨立運行時的初始版本,包括計算引擎和k-v存儲
  • 分布式運行時的初始發(fā)布,包括分布式計算引擎、分布式k-v存儲、元數(shù)據(jù)管理和站點內(nèi)/跨站點網(wǎng)絡(luò)通信
  • 支持跨站點異構(gòu)基礎(chǔ)設(shè)施
  • 建模與推理的初始支持

部署

  • 支持獨立(docker&manual)部署
  • 支持群集部署
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容