百度開源聯邦學習框架 PaddleFL,讓大規模分佈式集羣中部署聯邦學習系統更容易

技術編輯:鳴飛 發自北京
SegmentFault 思否報道 | 公衆號:SegmentFaulthtml

開源聯邦學習框架PaddleFL.jpg

PaddleFL是一個基於飛槳( PaddlePaddle)的開源聯邦學習框架。研究人員能夠很輕鬆地用PaddleFL複製和比較不一樣的聯邦學習算法。開發人員也能夠從padderFL中獲益,由於用PaddleFL在大規模分佈式集羣中部署聯邦學習系統很容易。git

PaddleFL提供不少聯邦學習策略及其在計算機視覺、天然語言處理、推薦算法等領域的應用。此外,PaddleFL還將提供傳統機器學習訓練策略的應用,例如多任務學習、聯邦學習環境下的遷移學習。依靠着PaddlePaddle的大規模分佈式訓練和Kubernetes對訓練任務的彈性調度能力,PaddleFL能夠基於全棧開源軟件輕鬆地部署。github

聯邦學習

現在,數據變得愈來愈昂貴,並且跨組織共享原始數據很是困難。聯合學習旨在解決組織間數據隔離和數據知識安全共享的問題。聯邦學習的概念是由谷歌的研究人員提出的。web

PaddleFL概述

PaddleFL概述

在PaddleFL中,橫向和縱向聯邦學習策略將根據給出的分類來實現。PaddleFL也將提供在天然語言處理,計算機視覺和推薦算法等領域的應用示例。算法

聯邦學習策略

  • 縱向聯邦學習: 帶privc的邏輯迴歸,帶第三方privc的神經網絡[5]
  • 橫向聯邦學習: 聯邦平均,差分隱私

訓練策略

  • 多任務學習
  • 遷移學習
  • 主動學習

PaddleFL框架設計

PaddleFL框架設計

在PaddeFL中,用於定義聯邦學習任務和聯邦學習訓練工做的組件以下:segmentfault

編譯時安全

  • FL-Strategy: 用戶能夠使用FL-Strategy定義聯邦學習策略,例如Fed-Avg[1]。
  • User-Defined-Program: PaddlePaddle的程序定義了機器學習模型結構和訓練策略,如多任務學習。
  • Distributed-Config: 在聯邦學習中,系統會部署在分佈式環境中。分佈式訓練配置定義分佈式訓練節點信息。
  • FL-Job-Generator: 給定FL-Strategy, User-Defined Program 和 Distributed Training Config,聯邦參數的Server端和Worker端的FL-Job將經過FL Job Generator生成。FL-Jobs 被髮送到組織和聯邦參數服務器以進行聯合訓練。

運行時服務器

  • FL-Server: 在雲或第三方集羣中運行的聯邦參數服務器。
  • FL-Worker: 參與聯合學習的每一個組織都將有一個或多個與聯合參數服務器通訊的Worker。
  • FL-Scheduler: 訓練過程當中起到調度Worker的做用,在每一個更新週期前,決定哪些Worker能夠參與訓練。

安裝指南和快速入門

請參考快速開始微信

Kubernetes簡單部署

kubectl apply -f ./paddle_fl/examples/k8s_deployment/master.yaml網絡

請參考K8S部署實例

也能夠參考K8S集羣申請及kubectl安裝配置本身的K8S集羣

性能測試

Gru4Rec [9] 在基於會話的推薦中引入了遞歸神經網絡模型。PaddlePaddle的GRU4RC實現代碼在https://github.com/PaddlePaddle/models/tree/develop/PaddleRec/gru4rec. 一個基於聯邦學習訓練Gru4Rec模型的示例請參考Gru4Rec in Federated Learning

項目地址https://github.com/PaddlePadd...

SegmentFault思否微信公衆號

相關文章
相關標籤/搜索