• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 網絡安全

    借助 NVIDIA FLARE 和 Meta ExecuTorch,在移動設備上輕松進行聯邦學習

    NVIDIA 和 Meta 的 PyTorch 團隊宣布開展突破性合作,通過集成 NVIDIA FLARE ExecuTorch ,將聯邦學習 (FL) 功能引入移動設備。

    NVIDIA FLARE 是一款與領域無關、開源、可擴展的 SDK,使研究人員和數據科學家能夠根據聯合范式調整現有的機器學習或深度學習工作流程。它還使平臺開發者能夠為分布式多方協作構建安全、隱私保護的產品。

    ExecuTorch 是一種端到端解決方案,可跨移動和邊緣設備實現設備端推理和訓練功能。它是 PyTorch Edge 生態系統的一部分,支持將各種 PyTorch 模型高效部署到邊緣設備。

    通過集成這兩者,我們為您提供了一個解決方案,讓您在移動設備上利用 FL 的強大功能,同時保護用戶隱私和數據安全。要啟用跨設備 FL,有兩個關鍵組件:

    • FL 環境,能夠與包含數百萬臺設備的參與者池協調適當的學習流程。
    • 有效的 on-device 訓練工作流,最好能輕松從現有開發環境遷移。

    借助 NVIDIA FLARE 和 ExecuTorch 之間的協作,您現在可以使用熟悉的 PyTorch 代碼定義模型架構和訓練參數,并將其遷移到跨設備 FL 范式:

    • NVIDIA FLARE 使用專為邊緣應用設計的新模塊來處理跨設備 FL 流程,既可用于聯合工作流,也可用于設備端開發。
    • ExecuTorch 支持邊緣訓練,并可輕松從現有的 PyTorch 解決方案遷移。

    為支持大規模部署,NVIDIA FLARE 實現了分層 FL 架構,實現了對大量邊緣設備的高效管理。此解決方案可確保跨分布式移動設備進行可靠且可擴展的模型訓練,同時將所有數據保持在本地。

    NVIDIA FLARE 和 ExecuTorch 正在使移動設備上的邊緣 AI 訓練更加普及和高效,同時保護去中心化 AI 的隱私:

    • 輕松開發:抽象化設備復雜性,處理硬件、操作系統、ML 框架和編程語言,在移動設備上實現無縫 FL。
    • 簡化原型設計 :Device Simulator 用于模擬大量設備。
    • 工業就緒型聯邦部署:支持大量設備的跨設備 FL 系統。

    借助此框架,數據科學家可以只專注于在 PyTorch 中定義模型架構和訓練參數,以及聯邦管道設計。

    在分布式邊緣設備上進行協作式模型學習

    許多 AI 模型和應用依賴于人們日常生活中在 edge 設備上生成的日常數據,例如預測文本和語音識別、智能家居自動化、自動駕駛、交通預測和金融服務欺詐檢測。借助數百萬臺支持 AI 的設備,AI 使用的大部分數據將在 edge 生成

    與企業等領域的專業數據集(通常經過精心策劃、結構化、在受控條件下進行標記并存儲在集中式孤島中)不同,邊緣上的日常數據具有高度動態性,受異構設備中個人用戶行為、環境因素和特定條件的影響。

    AI 模型訓練通常傾向于穩定的數據訪問、快速的通信通道、豐富的計算資源和受控的數據多樣性。對于具有這種動態和分布式性質的日常數據,一個基本而簡單的解決方案是從不同來源收集數據到中心位置進行訓練。

    但是,edge-based 應用程序通常受到強大的隱私限制和實際限制的限制,因此無法進行集中式訓練。

    在這種情況下,跨分布式邊緣設備的 FL 成為一種潛在的解決方案。然而,由于設備連接間歇性、通信帶寬有限、設備功能可變以及數據分布高度異構,基于邊緣設備收集的數據協同訓練穩健的 AI 模型仍然具有挑戰性。

    為了妥善解決這些挑戰,并以分布式方式實現有效的 AI 模型學習,具有設備端功能的精心設計的 FL 框架可以在有效利用來自不同設備集的所有數據方面發揮重要作用。

    此類 FL 框架必須能夠處理以下事項:

    • 參與的設備規模龐大,因為候選池的規模通常達到數百萬。
    • 不同的操作系統和硬件環境導致設備編程非常復雜。
    • 計算能力和通信帶寬有限帶來的挑戰。
    • 連接帶來的挑戰,例如設備隨時加入和退出。

    因此,該框架必須正確編排聯邦 pipeline 的模型更新和聚合方面,并解決這些挑戰。

    挑戰 解決方案
    大量設備 NVIDIA FLARE 設計了一種分層通信和聚合機制,以便利用邏輯樹結構在處理數千個并發連接時實現指數級效率。
    不同的操作系統和硬件環境 Meta ExecuTorch 借助 NVIDIA FLARE 邊緣模塊簡化了跨平臺部署。
    計算能力和通信帶寬有限 NVFLARE 使您能夠使用高效模型,通過更長的本地訓練壓縮更新,并優化客戶端選擇或使用分層 FL 來降低計算、通信和帶寬成本。
    連接 NVIDIA FLARE 提供強大的解決方案,并可靈活地考慮不同的場景和用例。
    表 1。框架編排解決方案

    適用于跨設備應用的分層 FL

    借助單層 FL 工作流,全局服務器直接與客戶端通信,并使用簡單的邏輯來收集和聚合模型更新。但是,在跨設備用例中,您可能有來自數百萬參與者池的數萬臺并發設備,基本的單層通信結構無法執行。

    A diagram shows the hierarchical communication and federation system architecture with a server at the top, multiple layers of aggregators in the middle, and leaf nodes at the bottom. Edge devices connect to the leaf nodes through web gateways.
    圖 1。用于跨設備應用的分層 FL

    NVIDIA FLARE 開發了具有樹結構架構的分層 FL 系統 (圖 1):

    • 服務器: 提供整體編排、全局評估、作業和任務準備等功能。
    • 聚合器 :執行從服務器到 leaf nodes 的任務路由,并將結果從 leaf nodes 聚合回服務器。
    • 葉節點 :僅與邊緣設備交互的節點。設備通過 Web 網關連接到葉子節點,這些網關與多個實例一起部署,以實現 Web 基礎設施的可擴展性。

    通過添加多層聚合,我們優化了系統每個節點上經濟實惠且可靠的工作負載分布。借助如此強大的層次結構,可以輕松實施和擴展高級 FL 算法。這種樹狀層次結構符合邏輯,節點之間的物理連接和通信路由可以根據網絡條件進一步優化。

    通過通過 HTTPS 使用 Web 網關,我們確保每個設備都正確連接加密保證,并將其數據傳輸到相應的 FL 客戶端進行處理。Web 網關還可處理設備注冊、會話管理和負載均衡,優化大規模部署的連接性。這種方法提供了一種可擴展的解決方案,可在 FL 場景中支持可能數百萬臺邊緣設備或手機。

    A diagram shows the NVIDIA FLARE Controller on the server sending a task to a leaf node and EdgeTaskExecutor. Other steps include local model updates through the web gateways, hierarchical information flow and aggregation, and on-device training.
    圖 2。跨設備聯合工作流程

    圖 2 展示了 NVIDIA FLARE 和 ExecuTorch 如何逐步協同工作,以實現跨設備 FL:

    1. 服務器上的 FLARE 控制器首先準備包含全局模型的任務,并通過分層系統將其分配,直到到達葉節點。
    2. 葉節點上的 FLARE EdgeTaskExecutor 處理任務,將全局模型導出為 ExecuTorch 格式 (如果 Controller 尚未完成) ,并通過 Web 網關將任務發送到各個設備。
    3. 在設備上,NVIDIA FLARE 的 Device 模塊橋接 FL 系統和設備端訓練管線,其中 ExecuTorch 加載接收到的全局模型,使用本地數據執行設備端訓練,并將新模型發送到 Device 模塊。
    4. 然后,Device 模塊準備一條包含本地模型更新 (全局模型和新模型之間的差異,可能通過隱私保護機制進行增強) 的消息,并將更新發送回 FLARE EdgeTaskExecutor
    5. 然后,FLARE EdgeTaskExecutor 處理接收到的更新,并通過分層系統將其發送,其中來自不同來源的更新逐層聚合。
    6. 在收到頂層聚合模型更新后,FLARE 控制器會評估新的全局模型并為下一項任務分配做準備。

    輕松進行跨設備聯合工作流開發

    在 NVIDIA FLARE 和 ExecuTorch 的支持下,我們為您提供精簡的跨設備 FL 工作流,通過可定制組件實現高效的通用工作流,讓您可以專注于創新,而無需擔心底層基礎設施開發。

    在設備端,Device 模塊建立了核心訓練工作流 (例如 iOS 上的 Objective-C) ,作為 FL 系統和設備端訓練之間的橋梁,為您提供可配置參數和隱私設置。它可以處理具有抽象設備復雜性的異構硬件、操作系統、ML 框架和編程語言。

    使用 ExecuTorch,您可以專注于開發新穎的模型和訓練方法,然后可以輕松遷移到設備平臺。

    在聯合工作流方面,您可以定義自定義 FL 方案,例如與 NVIDIA FLARE 的 Controller API 同步或異步。可定制的聚合器提供了最適合特定學習目標需求的通用選項。NVIDIA FLARE 的一組常用控制器和聚合器可作為默認設置應用。

    從全局模型分布和本地任務執行到收集模型更新以生成新的全局模型,其他所有內容都會自動處理,讓您擺脫復雜的實現細節。

    此外,我們還提供 DeviceSimulator,用于對移動應用程序執行本地 FL 端到端仿真。這提供了一種靈活的原型設計機制,涵蓋基于用戶選擇的訓練方法的模型訓練。

    例如,您可以試驗基于 PyTorch 的訓練器,并將其與基于 ExecuTorch 的版本進行比較,以確保要部署的 ExecuTorch 解決方案與對應的 PyTorch 解決方案保持一致。您還可以嘗試使用不同的聚合器,在真實環境下測試其性能。

    換言之,您可以使用 Python 對跨設備 FL 工作流進行原型設計,并為整個 FL 研究執行端到端本地模擬,與使用 NVIDIA FLARE 的其他模型學習流程相同。

    接下來,您可以輕松將原型遷移并部署到真正的跨設備 FL 系統。無需切換到使用其他語言 (針對 Objective-C、Swift、Java 或 Kotlin) 進行移動平臺開發,也無需擔心網絡連接和路由。NVIDIA FLARE 和 ExecuTorch 共同處理所有設備特定的訓練要求和聯合編排。

    運行 NVFlare Mobile 示例

    為幫助您快速入門,我們提供了一些示例來展示此模擬過程。在“Running NVFlare Mobile”示例中,我們目前介紹了以下兩種訓練方案下的應用:

    • hello_mobile:一項包含數字列表的簡單工作,用于測試邊緣函數,包括分層聚合和任務處理。顯示聯合進程。
    • xor_mobilexor_mobile_pt:使用 ExecuTorch 和常規 PyTorch 訓練器,為所有參與者使用固定數據,為簡單的 XOR 邏輯任務訓練超輕神經網絡。顯示包含神經網絡訓練的管道。
    • cifar10_mobilecifar10_mobile_pt:為標準 CIFAR-10 分類任務訓練卷積神經網絡。同時提供 ExecuTorch 和 PyTorch 方案。在本例中,每個參與者在 CIFAR-10 的不同子集上進行訓練,模擬更逼真的跨設備協作。

    對于實際部署,該過程包括三個部分:

    • 設置 NVIDIA FLARE
    • 通過 ExecuTorch 在邊緣設備上進行訓練
    • 執行 FL 會話

    研究從設置 NVIDIA FLARE 系統開始,包括配置系統和設置 Web 網關,這可以簡單到兩個命令:

    python nvflare/edge/tree_prov.py -r /tmp -p edge_example -d 1 -w 2
    python nvflare/edge/web/routing_proxy.py 5000 /tmp/edge_example/lcp_map.json

    有關更多信息,請參閱 運行 NVFlare Mobile 示例

    設置環境后,使用啟動套件中的 script 啟動每個 node:

    ./start.sh

    在邊緣設備端,我們開發了 演示 iOS 應用 來展示其功能。在此演示應用中,您需要配置代理服務器的 IP 地址和端口號,然后啟動訓練過程 (圖 3) 。

    A mobile screenshot shows the interface with configurable proxy server information, local training options, and the Start Training button.
    圖 3。演示應用

    然后,應用程序通過代理服務器連接到 FL 系統 (Figure 1) ,并等待任務分配。

    只有在作業提交到 NVFlare 系統后,訓練才開始。Controller 通過該機制將特定任務分配給 edge 設備 (圖 2) 。

    要啟動 FL 會話,管理員需要驗證全局配置 (例如,模型格式和權重) ,并像往常一樣在 NVFlare 管理員控制臺中提交開始 NVIDIA FLARE 訓練的作業:

    submit_job cifar10_mobile_et

    聯邦編排的其余部分由 NVIDIA FLARE 自動處理,本地設備上的訓練由 ExecuTorch 處理。

    總結

    NVIDIA FLARE 和 Meta PyTorch 團隊的協作代表著移動 FL 領域的重大進步,為開發跨設備 FL 解決方案提供了一種整體方法。此工作流有助于處理后臺復雜的移動部署和聯合訓練。

    通過 NVIDIA FLARE 分層架構,該平臺可以高效管理數百萬臺邊緣設備,使大規模 mobileFL 變得實用且易于訪問。數據科學家可以專注于核心專業知識,在 Python 中定義模型和訓練參數,而 NVIDIA FLARE 和 ExecuTorch 則可以處理移動部署、聯合編排和訓練可擴展性等復雜細節。這種創新方法可維護數據隱私和安全性,同時實現跨分布式設備的高效模型訓練。

    NVIDIA 與 Meta 的 PyTorch 團隊之間的合作標志著在移動應用程序的 FL 大眾化方面邁出了重要一步,為邊緣隱私保護和去中心化 AI 開發開辟了新的可能性。這兩個團隊正在繼續合作,以改進這一解決方案。

    為了在各種設備上普及設備端訓練,我們從 iOS 開始,隨后將從 Android 和其他 edge 設備開始。

    有關更多信息,請參閱以下資源:

    要聯系 NVIDIA FLARE 團隊,請聯系 federatedlearning@nvidia.com

    致謝

    感謝 Meta 的 PyTorch 團隊對本文的幫助

    ?

    0

    標簽

    人人超碰97caoporen国产