一步搞清楚本地客戶端和全局服務器是如何更新模型的

我們可以把它想象成一個?“老師”和“學生”?協作學習的過程。

  • 全局服務器?=?“老師”

  • 本地客戶端?=?“學生”

整個模型更新的過程遵循一個核心原則:“數據不動,模型動”。原始數據永遠留在本地客戶端,只有模型的參數(即模型的“知識”)在服務器和客戶端之間流動。

下面我們以最經典、最常用的?聯邦平均算法(Federated Averaging, FedAvg)?為例,分步拆解這個更新過程。


1、總體流程概覽

整個過程是一個循環迭代的過程,每一輪通信(Communication Round)都包含以下四個核心步驟,如下圖所示:


2、第一步:服務器端-初始化與廣播(老師布置作業)

  1. 初始化:中央服務器會隨機初始化一個全局模型,我們稱之為?W_global(全局模型)。這就像一個剛畢業的新老師,腦子里有一套基礎但還不精準的知識體系。

  2. 選擇與廣播

    • 在每一輪訓練開始時,服務器會從所有可用的客戶端(比如上百萬部手機)中,隨機選擇一小部分(例如1000部)。這么做主要是為了效率,不可能每次都讓所有人參與,不然會增加通信開銷。

    • 服務器將當前的全局模型?W_global?發送給這些被選中的客戶端。

    • 這就好比老師(服務器)把今天的教案(全局模型)發給了班上的一部分同學(客戶端)


3、第二步:客戶端 - 本地模型更新(學生自己做功課)

收到全局模型的每個客戶端,會開始執行本地訓練:

  1. 加載數據:客戶端從自己的本地存儲中加載私有的訓練數據(比如你手機上的照片、輸入法記錄)。

  2. 本地訓練

    • 客戶端用收到的?W_global?作為初始模型,用自己的本地數據進行訓練,執行多次(比如10次)梯度下降(SGD)迭代。

    • 訓練完成后,客戶端手上的模型參數更新了,我們稱之為?W_local(本地參數)

    • 這就好比每個同學(客戶端)都按照老師發的教案(W_global)自學,并結合自己的練習題(本地數據),總結出了一套自己的解題心得(W_local)。注意,每個同學的練習題都不一樣,所以他們的心得也各有側重(這個就設計到現實生活中的數據異構性,每個客戶端的數據不一樣,訓練的參數也會不一樣,甚至最后可能無法收斂,這過程中也會出現壞學生為了應付了事隨便寫的參數,或者偽造參數,就會導致最后模型的性能降低。當然也會有壞客戶為了破壞模型性能,會選擇偽造參數,竊取參數,也就需要對參數進行加密等操作)。

    • 全局模型?=?一本不斷再版的?“通用教材”

    • 本地客戶端?=?使用這本教材的?“學生”(每個學生都有自己的私人練習題)

    • 聯邦學習的過程?=?共同編寫和修訂這本教材的過程

  3. 計算更新

    • 客戶端計算出本地模型與初始全局模型的差異(即更新量):ΔW = W_local - W_global。有些實現也會直接上傳整個?W_local

    • 關鍵:?客戶端絕不會上傳它的原始數據,只上傳模型的“更新量”或“新參數”。這完美保護了隱私。


4、全局模型

  1. 每一輪訓練,服務器都會收集一批客戶端的“學習心得”(模型更新),然后把這些心得中最有價值的部分融合起來,更新到這本“教材”里。所以,全局模型是所有參與客戶端集體智慧的結晶。

  2. 最終的產品與目標

    • 聯邦學習的最終目標,就是要訓練出這個高質量的全局模型。我們所有的工作——本地計算、通信、聚合——都是為了讓它變得更好、更智能、更通用。

    • 訓練完成后,這個全局模型可以被部署到新設備上直接使用,或者作為基礎模型供進一步微調。它就是整個項目的產出物

5、服務器端 - 聚合更新(老師批改作業,匯總答案)

  1. 收集更新:服務器等待所有被選中的客戶端上傳它們的模型更新?ΔW?, ΔW?, ..., ΔW_k(或它們的新參數?W_local?, W_local?, ...)。

  2. 加權平均:

    • 服務器不會簡單地把所有更新一平均了事。它會做一個加權平均

    • 權重取決于每個客戶端本地數據的數量。數據量越大的客戶端,它的“話語權”就越大。

    • 計算公式
      新的全局模型: $W_{\text{global}}^{\text{new}} = \frac{n_1 \cdot W_{\text{local}_1} + n_2 \cdot W_{\text{local}_2} + \cdots + n_k \cdot W_{\text{local}_k}}{n_1 + n_2 + \cdots + n_k}$

      • 其中?n?, n?, ..., n_k?是每個客戶端本地數據的樣本數量。

    • 這就好比老師(服務器)收上所有同學的作業(模型更新),發現有的同學做的題多(數據量大),有的做的題少。老師更相信做題多的同學的經驗,于是給他們的答案更高的權重,最后匯總所有答案的優點,形成了一份全新的、更完善的教案(W_global_new)。

    • 全局模型=一本不斷再版的?“通用教材”

    • 本地客戶端=使用這本教材的?“學生”(每個學生都有自己的私人練習題)

    • 聯邦學習的過程?=?共同編寫和修訂這本教材的過程


6、循環迭代

服務器用這個更新后的?W_global_new?替換掉舊的全局模型。然后,整個過程重復第一步:選擇新的一批客戶端,廣播新的全局模型,開始下一輪的學習。

如此循環往復,直到全局模型達到一個令人滿意的精度或收斂為止。


7、全局模型與聯邦訓練之間的關聯(“教材”與“編寫過程”如何互動?)

全局模型既是聯邦訓練的“輸入”,也是它的“輸出”。這個“輸入-處理-輸出”的循環,構成了訓練的完整閉環。

  1. 作為“輸入” (Starting Point)

    • 在每一輪訓練開始時,當前版本的全局模型(W_global^t)被分發給選中的客戶端。

    • 作用:?它確保了所有客戶端是在同一個知識基礎上進行學習和改進的。如果每個客戶端都從自己的隨機點開始,最終就無法將它們的知識融合到一起。

  2. 經歷“處理” (Processing)

    • 客戶端收到全局模型后,用它在本地的、私有的數據上進行學習。這個學習過程可以看作是對全局模型的一次?“檢驗”和“ refinement(精煉)”?。

    • 檢驗:?模型在用戶A的數據上可能表現好,在用戶B的數據上表現差,這暴露了模型的不足和偏差。

    • 精煉:?每個客戶端都會根據本地數據的特點,對模型進行微調,讓它更適應自己的數據分布。這個過程相當于每個學生用私人練習題去驗證和補充教材內容,并做了自己的筆記。

  3. 作為“輸出” (Updated Product):

    • 服務器將客戶端返回的更新(“學生們的筆記”)進行聚合(加權平均),生成一個新版本的全局模型(W_global^{t+1})。

    • 作用:?新模型融合了更多樣、更廣泛的知識,理論上比舊模型更全面、性能更好、泛化能力更強。這就像老師匯總了所有學生的優秀筆記,修訂出了教材的“第二版”。

    • 這個新模型立即成為下一輪訓練的輸入,循環往復。

重點:

  • 不能把全局模型想象成一個固定的“指揮官”。

  • 把它想象成一個不斷進化、不斷成長的“核心”。它從一張白紙(隨機初始化)開始,通過不斷地“聽取”成千上萬客戶端的意見(聚合更新),吸收全世界的知識,最終成長為一個見多識廣、能力強大的模型。

8、總結

步驟執行者動作輸入輸出比喻
1. 廣播全局服務器選擇客戶端并發送模型當前全局模型?W_globalW_global?(發送)老師布置作業
2. 本地更新本地客戶端本地訓練W_global?+?本地數據本地模型?W_local學生自己做功課
3. 聚合全局服務器加權平均所有客戶端的?W_local新全局模型?W_global_new老師批改匯總
4. 循環重復過程
  1. 隱私保護:數據始終在本地,只傳輸模型參數更新,這是聯邦學習的立身之本。

  2. 通信效率:客戶端本地進行多次迭代,大大減少了服務器和客戶端之間的通信輪數,這是FedAvg算法的巨大優勢。

  3. 非獨立同分布:每個客戶端的數據分布不同,這是聯邦學習的主要挑戰。加權平均是一種有效的聚合策略,旨在求取“最大公約數”。

  4. 異構性:客戶端的設備、網絡、數據量都不同,所以你的開題設計需要考慮如何選擇客戶端、如何處理掉隊者等問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98081.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98081.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98081.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨平臺超低延遲RTSP播放器技術設計探究

摘要 RTSP 播放在實驗室里“跑起來”并不難,難的是在真實場景中做到 超低延遲、跨平臺、高穩定,并長期可靠運行。大牛直播SDK(SmartMediaKit)的全自研跨平臺 RTSP 播放棧,正是把這些工程難題轉化為可用、可控、可交付的…

知識點匯集——web(三)

1.index.php 的備份文件名通常為index.php.bak 2.PHP2是服務器端腳本語言,主要用于處理和生成網頁的內容,當用戶訪問一個網站時,PHP腳本會在服務器上執行,生成動態的HTML頁面,然后將頁面發送給用戶的瀏覽器進行顯示。p…

變頻器【簡易PLC】功能中的時間問題

一、變頻器的簡易PLC功能簡易PLC功能是將提前設置好的多端速頻率,進行自動運行,類似于PLC程序中的CASE指令一樣,我們需要提前設置好幾段頻率,該頻率所維持的時間,以及加減速時間,按下啟動后,變頻…

Swift 解題:LeetCode 372 超級次方(Super Pow)

文章目錄摘要描述題解答案題解代碼分析代碼解析示例測試及結果時間復雜度空間復雜度總結摘要 在算法題里,有一些問題看似“簡單”,比如算一個冪次方,但一旦放大規模就完全不同了。LeetCode 372 超級次方就是這樣的題目。普通的冪運算沒什么難…

揭秘23種設計模式的藝術與技巧之結構型

結構型模式:優化軟件結構的策略代理模式(Proxy Pattern)代理模式就像一個經紀人,代表真實對象進行操作。比如,在網絡訪問中,我們可能會通過代理服務器來訪問外部網站。在軟件中,當一個對象由于某…

PyTorch圖像數據轉換為張量(Tensor)并進行歸一化的標準操作

transform ToTensor() 是 PyTorch 中用于將圖像數據轉換為張量(Tensor)并進行歸一化的標準操作,以下是對其功能的逐層解析及關鍵細節:核心功能總結功能描述類型轉換將 PIL Image / numpy 數組 → PyTorch Tensor (dtype: torch.f…

HarmonyOS學習

一,DevEoc Studio基本內容學習項目工程目錄entry 默認的項目入口模塊ets 界面相關文件(目前都放入pages文件內即可)resource資源文件,配置文件index.est默認文件’ ‘開頭的一般為裝飾器,修飾功能,來約定后…

【大前端】Vue 和 React 主要區別

Vue 與 React 的主要區別 在前端開發領域,Vue 和 React 是兩大最受歡迎的框架/庫。盡管它們都可以幫助我們構建現代化的 Web 應用,但在設計理念、開發方式、生態系統等方面有許多不同。本文將從多個角度對兩者進行對比。 目錄 框架與庫的定位核心理念…

高級RAG策略學習(五)——llama_index實現上下文窗口增強檢索RAG

LlamaIndex上下文窗口實現詳解 概述 本文檔詳細講解基于LlamaIndex框架實現的上下文窗口RAG系統,重點分析關鍵步驟、語法結構和參數配置。 1. 核心導入與環境配置 1.1 必要模塊導入 from llama_index.core import Settings from llama_index.llms.dashscope import …

Doris 數據倉庫例子

基于 Apache Doris 構建數據倉庫的方案和具體例子。Doris 以其高性能、易用性和實時能力,成為構建現代化數據倉庫(特別是 OLAP 場景)的優秀選擇。一、為什么選擇 Doris 構建數據倉庫?Doris(原名 Palo)是一個…

WebRTC進階--WebRTC錯誤Failed to unprotect SRTP packet, err=9

文章目錄 原因分析 SRTP Anti-Replay 機制 客戶端源碼 err=9 的定義: 為什么會觸發 replay_fail ? 解決方向 原因分析 SRTP Anti-Replay 機制 SRTP 收包時會用一個 Replay Window(64/128個序列號大小)檢查 seq 是否合理。 如果你構造的恢復包 recover_seq 比當前接收窗口…

Web服務與Nginx詳解

文章目錄前言一、Web 概念1.1 Web 的基本概念1.1.1 特點1.2 B/S 架構模型1.3 Web 請求與響應過程1.4 靜態資源與動態資源1.5 Web 的發展階段1.6 實驗:搭建最小 Web 服務1.6.1 實驗目標1.6.2 實驗步驟1.7 小結二、HTTP 與 HTTPS 協議2.1 HTTP 與 HTTPS 的區別2.2 HTT…

CC-Link IE FB 轉 DeviceNet 實現歐姆龍 PLC 與松下機器人在 SMT 生產線錫膏印刷環節的精準定位控制

案例背景在電子制造行業,SMT(表面貼裝技術)生產線對設備的精準控制要求極高。某電子制造企業的 SMT 生產線中,錫膏印刷機、SPI(錫膏厚度檢測儀)等前段設備采用了基于 CC-Link IE FB 主站的歐姆龍 NJ 系列 P…

IP5326_BZ 支持C同口輸入輸出的移動電源芯片 2.4A的充放電電流 支持4LED指示燈

IP5326 是一款集成升壓轉換器、鋰電池充電管理、電池電量指示的多功能電源管理 SOC,為移動電源提供完整的電源解決方案。得益于 IP5326 的高集成度與豐富功能,使其在應用時僅需極少的外圍器件,并有效減小整體方案的尺寸,降低 BOM 成本。IP532…

若依基礎學習

若依基礎學習 1.修改數據庫密碼以及連接名: RuoYi-Vue-master\ruoyi-admin\src\main\resources\application-druid.yml2.各個文件作用: ruoyi-admin (主啟動)├── ruoyi-framework (框架核心)│ ├── ruoyi-common (通用工具)│ └── ruoyi-sy…

靶向肽Dcpep

名稱:靶向肽Dcpep三字母序列:NH2-Phe-Tyr-Pro-Ser-Tyr-His-Ser-Thr-Pro-Gln-Arg-Pro-OH單字母序列:NH2-FYPSYHSTPQRP-OH分子式:C69H94N18O19分子量:1479.62備注:僅供科研,不用于人體簡述&#x…

華為在國內搞的研發基地有多野?標桿游學帶你解鎖“研發界頂流”

寶子們!原來華為在國內有這么多“寶藏研發基地”,之前總覺得遙不可及走進深圳坂田總部——1.3平方公里的園區,走進去就像進了“科技版大觀園”,21層研發主樓看著就很有氣勢,天鵝湖邊的路全用科學家名字命名&#xff0c…

linux缺頁中斷頻繁怎么定位

1,怎么看內存是否有缺頁中斷 查看日志: dmesg | grep “do fault” perf record -e page-faults -g -p <PID> 系統級監控: 使用 vmstat 查看全局缺頁中斷(si/so 表示換入/換出頁數) vmstat 1 # 每秒刷新,觀察 si/so 列 iostat顯示磁盤使用情況,舉例iostat -x …

06-Hadoop生態系統組件(2)

4. 數據查詢組件 4.1 Apache Hive詳解 from typing import Dict, List, Any, Optional, Tuple, Union from dataclasses import dataclass from enum import Enum from datetime import datetime import re import jsonclass HiveTableType(Enum):"""Hive表類型…

【自動化實戰】Python操作Excel/WORD/PDF:openpyxl與docx庫詳解

在現代辦公環境中&#xff0c;我們經常需要處理各種文檔格式&#xff0c;如Excel表格、Word文檔和PDF文件。手動處理這些文檔不僅耗時&#xff0c;而且容易出錯。Python提供了多個強大的庫來實現文檔處理的自動化&#xff0c;本文將重點介紹如何使用openpyxl和docx庫來操作Exce…