首頁>科技>

在深度學習大放異彩的AI時代,計算機視覺是AI應用的重要領域之一。而聯邦學習,作為AI應用的最後一公里。在資料安全、隱私保護備受重視的今天,聯邦學習在視覺領域的探索,也在不斷推進中。

微眾銀行聯邦學習團隊,近期就在GitHub(https://github.com/FederatedAI/FedVision)上開源了FedVision v0.1視覺聯邦框架,這將是聯邦學習的新領域。

FedVision 介紹

FedVision是首個輕量級、模型可複用、架構可擴充套件的視覺橫向聯邦開源框架,內建PaddleFL/PaddleDetection外掛,支援多種常用的視覺檢測模型, 助力視覺聯邦場景快速落地

FedVision 是基於Python 實現的,作為一個視覺橫向聯邦方向機器學習專案,已經在 GitHub(https://github.com/FederatedAI/FedVision) 上開源首個版本FedVision v0.1。

FedVision專案的主要目標是:

在學術場景下,助力實驗人員快速驗證相關的實驗想法。在實際生產環境中,助力視覺橫向聯邦專案進行快速落地。

為了快速實現最小可用版本,FedVision v0.1版本藉助 PaddleFL 專案的部分能力,實現視覺領域的橫向聯邦建模功能。由於藉助了 Paddle 的豐富生態,經簡單的調製適配,FedVision v0.1 即可直接使用 PaddleDetection 專案實現的幾乎全部的視覺檢測模型。

FedVision 邏輯構圖

FedVision 從專案邏輯上可分成兩個部分:

1、框架

FedVision 的框架部分由幾個相對獨立的小元件構成,相互之間透過網路通訊配合實現整個聯邦學習任務的生命週期。這些小元件根據所屬的角色不同又歸為兩類:

Coordinator這個元件是單獨的功能模組,在橫向聯邦學習任務的生命週期中屬於協調者的角色,被所有的 “Party” 訂閱。當前版本所有的建模任務需要釋出到 “Coordinator” ,由其分發給所有訂閱對應型別任務的 “Party” 端。在所有收到訂閱的參與方應答(或者超時)之後, 根據規則篩選出最終參與建模的所有 “Party” , 最後才分發任務的最終都任務配置。目前版本的 “Coordinator” 只負責命令層面(任務資訊)的資訊分發,資料由 “Party” 任務之間直接建立的通訊傳遞。在後續的版本中,資料的聚合分發功能將由 “Coordinator” 直接負責,從而推動 FedVision 的 “Party” 端往端上部署的能力。Party目前 Party 端包含了一個簡單的 “Cluster” 元件,負責往多個不同的計算節點分發 Task、 一個 “Submitter” 元件(供使用者提交任務)以及一個 “Master” 元件(負責對話 “Coordinator” 和 “Submiter” )。2、拓展

目前機器學習框架已經非常豐富了,無論從構建生態、使用者學習和研發成本考慮,都沒必要去重複造輪子。

因此,從設計之初,FedVision 就準備依託現有的機器學習框架來構建聯邦場景下的機器學習平臺,因此抽象了一些合理的介面,用於擴充套件及支援多種計算引擎的任務型別。

目前,藉助 PaddleFL 和 PaddleDetection 專案的強大能力,FedVision 得以快速完成了第一階段的功能迭代。我們將在下一個版本迎來 PyTorch 的擴充套件支援。

FedVision 功能特點1、部署簡捷

透過 PyPI 已釋出了一個簡單的部署與服務起停的工具。

簡單幾步即可開始使用!有小夥伴可能會問,為啥不用 k8s 呢?嗯,已經在準備當中了!

2、使用便捷

透過整合 PaddleDetection 的能力,在使用者構建視覺檢測模型的時候,簡單配置一份 yaml 檔案即可,不需要寫一行程式碼!

對於想自定義模型的使用者,框架也不限制您的發揮,類似於內建的卷積網路 demo 手動實現也相當容易。

3、 內建豐富模型

在現有的實際生產場景中,最適合橫向聯邦技術的場景的就是視覺檢測相關的建模任務。

藉助專案架構擴充套件的能力,目前主流的視覺檢測模型均可使用,“Yolo”,”rcnn“一家子全都安排。

期待更多開發者加入

FedVision 將會持續完善,為開源社群提供更加友好強大的橫向視覺聯邦能力。我們將在下一版本支援 PyTorch 的擴充套件,雖然這依賴於 Coordinator 特性的升級。我們還將完善對加密聚合協議的支援,引入結構化壓縮聚合等技術。另外,更輕量的客戶端也在計劃之中。

13
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 首批小米6使用者,現在換機否?