天天看點

以武會友,兩大主流聯邦學習産品體驗

如今,AI技術在幾乎每個行業中都展現出了自己的優勢,無人駕駛汽車,醫療保健,網際網路金融等已經深入我們的生活。然而随着大資料和AI技術的逐漸成熟,各機構群組織對資料安全和使用者隐私的妥協意識也日益增強,對資料隐私和安全的重視已成為全球性的重要問題。同時歐盟于2018年5月25日釋出實施了《通用資料保護條例》 [GDPR], 旨在保護使用者的個人隐私和資料安全,中國和美國也正在制定類似的隐私和安全法案。受此影響,國内外多方安全計算産業化應用的步伐明顯加快。在國外産品創新活躍的同時,國内多方安全計算的技術産品蓬勃發展,已經形成了一定的優勢。

縱覽國内外,不乏一些優秀的産品和系統,早在2016年谷歌公司就提出了聯邦學習的概念,經過多輪的打磨推出了TensorFlow Federated;英偉達公司也在NVIDIA NGC-Ready 伺服器上開發了用于分布式協作聯邦學習訓練的Clara FL;國内也有許多優秀的學者先驅,其中既有老牌的技術大廠,也有新晉的優秀團隊,共同在這條賽道馳騁,為隐私計算、安全模組化不斷添磚加瓦。

據筆者了解,國内市場已有如下公司各自推出了相關的産品:

  • FATE:微衆銀行AI團隊推出的工業級聯邦學習架構
  • MORSE:螞蟻區塊鍊打造的資料安全共享基礎設施
  • PrivPy:華控清交研發的安全多方計算平台
  • FMPC:富數科技推出的私有化部署聯邦模組化平台
  • 蜂巢系統:平安科技自主研發的聯邦智能系統
  • 點石平台:百度研發的可信雲端計算及聯合模組化平台

本文優先選擇FATE、FMPC兩款産品,從産品界面、性能、使用方法等方面與大家進行分享。其他平台分析及使用我們将在後續系列文章更新,感興趣的同學可持續關注。

本次将從系統架構、資料管理,模型訓練,模型預測,性能評估五個方面依次進行介紹:

一、FATE聯邦學習架構 – v1.2

1、系統架構:

1)FATE技術架構如(圖1)所示,部分子產品簡介如下:

  • EggRoll:分布式計算和存儲的抽象;
  • Federated Network:跨域跨站點通信的抽象;
  • FATE FederatedML:聯邦學習算法子產品,包含了目前聯邦學習所有的算法功能;
  • FATE-Flow | FATE-Board:完成一站式聯邦模組化的管理和排程以及整個過程的可視化;
  • FATE-Serving:聯邦學習模型API子產品。
以武會友,兩大主流聯邦學習産品體驗

(圖1)

2、資料管理

1)FATE執行上傳檔案需要編輯上傳資料配置upload_load_role.json(圖2):

以武會友,兩大主流聯邦學習産品體驗

再執行如下指令,将檔案上傳到dataio元件:

以武會友,兩大主流聯邦學習産品體驗

3、模型訓練:

1) FAETE 運作job主要通過fate_flow子產品來完成,fate_flow是聯邦學習子產品運作和管理的主要子產品,用于送出任務、解析參數、生成并執行job、儲存和查詢日志等功能;一個典型的fate_flow : (圖3)

以武會友,兩大主流聯邦學習産品體驗

(圖3)

Job需通過執行fate_flow_client指令進行送出,指令需要提供兩個參數檔案,一個是DSL檔案,另一個是conf配置檔案。DSL檔案将諸如資料輸入、功能設計和分類/回歸子產品等元件,組合為有向無環圖(DAG);conf檔案對運作的算法元件相關參數資訊進行配置,如邏輯回歸中的學習率,樹模型中的最大深度等。

配置檔案後在fate_flow檔案目錄下執行如下指令開始任務:

python fate_flow_client.py -f submit_job -d examples/test_hetero_lr_job_dsl.json -c examples/test_hetero_lr_job_conf.json

執行任務後可在FATE-Board面闆檢視任務資訊及相關日志。(圖4)

以武會友,兩大主流聯邦學習産品體驗

(圖4)

4、模型預測

1) FATE進行模型預測前需要通過指令行根據jobid讀取model_id及model_version:

python ${your_fate_install_path}/fate_flow/fate_flow_client.py -f job_config -j ${jobid} -r guest -p

然後編寫預測配置檔案test_predict_conf.json: (圖5)

以武會友,兩大主流聯邦學習産品體驗

(圖5)

最後使用如下指令進行預測,預測結果可在FATE-Board通過job_id進行檢視;

python ${your_fate_install_path}/fate_flow/fate_flow_client.py -f submit_job -c ${predict_config}

二、FMPC聯邦模組化平台 – v1.4.1

1、系統架構

技術架構如(圖6)所示,部分子產品簡介如下:

以武會友,兩大主流聯邦學習産品體驗

(圖6)

2、資料管理

FMPC上傳檔案有四種方式,分别為本地csv、url、DB資料庫、接口方式,以csv檔案為例(圖7),通過頁面點選欲上傳的本地檔案路徑,并填入檔案相關資訊,配置權限:

以武會友,兩大主流聯邦學習産品體驗

(圖7)

3、模型訓練

FMPC通過項目的形式建立模型訓練任務,項目中通過點選的方式進行包含資料融合/探索分析/特征工程/資料模組化/模型評估等一系列操作,如下是FMPC的模組化流程圖(圖8):

以武會友,兩大主流聯邦學習産品體驗

(圖8)

建立項目後先将要使用的資料加入到項目中,進行資料虛拟融合(利用不經意傳輸機制進行的加密資料對齊):

以武會友,兩大主流聯邦學習産品體驗

(圖9)

在資料虛拟融合後可以進行資料分析及特征篩選等操作(圖10):

以武會友,兩大主流聯邦學習産品體驗

(圖10)

探索性分析可以檢視并處理缺失值及異常值,特征工程可以進行特征分箱(可選分箱方式:等距/等頻/卡方/自定義分箱),并檢視對應WOE及IV值:(圖10)

以武會友,兩大主流聯邦學習産品體驗

(圖11)

進行特征分析及特征篩選後可以選擇一種聯邦機器學習方法進行模組化,并在相同界面檢視學習進度及日志:(圖12)

以武會友,兩大主流聯邦學習産品體驗

(圖12)

4、模型預測

2)FMPC在模型建立後可通過點選配置對應資料資源并發送合作節點進行稽核,合作節點稽核通過後即可生成模型api進行持續調用,調用接口如(圖13)所見:

以武會友,兩大主流聯邦學習産品體驗

(圖13)

以武會友,兩大主流聯邦學習産品體驗

(圖14)

5、性能評估:

為了模拟真實業務場景,本次測試準備了如下兩份樣本:

樣本A:兩萬行資料,1列索引列字段,26個特征字段

樣本B:兩萬行資料,1列索引列字段,1列目标值字典,2個特征字段

在同等環境下同時部署FATE/FMPC兩套産品,每次運作任務隻獨立運作其中一款,得到名額如下:

以武會友,兩大主流聯邦學習産品體驗

注:n_estimators在lr中代表疊代次數,在樹模型中代表樹棵樹

結果分析

根據以上兩款産品使用流程可以看出,兩款産品均實作并完成安全模組化的閉環流程,但在某些方面還存在一定差異。

1)産品角度:FATE更偏向于面向技術人員,使用者需要具有一定開發能力及算法功底;FMPC更偏向于面向業務人員,使之能在清晰的界面可視化操作。

2)功能健全程度:FATE具有基本模組化功能,包括資料上傳,模型訓練,模型評估,模型預測;FMPC在此基礎上添加了特征分析及特征篩選功能,更貼近實際業務場景需求。

3)性能角度:FATE的secureBoost較lr相比訓練速度更快,模型精度更高,運作時間在業内屬于可接受範圍;FMPC與之相比,開創性地采用“松弛疊代法“,在保持精度和準确性的同時,速度提升了3倍左右,在實際業務的多次的疊代和調參中會有較明顯的優勢。

總體來講FATE雖是如下安全模組化中較為知名的産品,其技術方案值得業内認可;但也不乏一些新星産品做出了屬于自己的特色,可能未來将會有更多優秀的産品面世,互相競争,共同進步,在資料安全領域大放異彩。

繼續閱讀