联邦优化目标 F(w)=∑k=1NpkFk(w) 提出了一个主要的设计考量,即如何协调客户端训练和服务器聚合的各个阶段。由此衍生出两种主要的运行模式:同步联邦学习和异步联邦学习。两者的选用对系统表现、收敛特性以及对客户端速度差异和可用性等实际条件的适应程度有很大影响。
同步联邦学习
同步联邦学习以明确、协调的回合方式运行。它是与经典联邦平均(FedAvg)算法关联最紧密的模型。该过程通常遵循以下步骤:
- 选择: 中心服务器从可用客户端中选择一个子集(Ct)参加当前训练回合 t。
- 分发: 服务器将当前全局模型状态(wt)发送给选定的客户端。
- 本地训练: 每个选定的客户端 k∈Ct 基于其本地数据 Dk 进行本地计算,通常是从 wt 开始执行多步梯度下降,以生成本地模型更新 Δwkt+1 或新的本地模型 wkt+1。
- 上传与等待: 客户端将其计算出的更新上传至服务器。服务器会等待,直到收到所有选定客户端的更新(或达到预设的最小数量/比例)。
- 聚合: 一旦收到所需更新,服务器会聚合它们(例如,使用加权平均:wt+1=wt+∑k∈CtpkΔwkt+1 或 wt+1=∑k∈Ctpkwkt+1)以生成新的全局模型 wt+1。
- 重复: 该过程从步骤1开始,为下一回合(t+1)重复进行。
同步联邦学习运行示意图。服务器等待所有选定的客户端,包括速度较慢的客户端(滞后者),然后进行聚合并进入下一回合。
优点:
- 简单: 这种步调一致的特性简化了实现和理论分析。聚合时使用的是从相同全局模型版本(wt)得到的更新。
- 收敛保证: 分析收敛特性更为简便,且基于标准的分布式优化理论。许多成熟的联邦学习算法(FedAvg、FedProx、SCAFFOLD)最初都是在同步环境下提出的。
缺点:
- 滞后者问题: 整体回合时间由所选组中速度最慢的客户端决定。这会导致对较快客户端的利用效率低下,并可能显著减缓训练速度,特别是在系统异构性较高(计算能力、网络带宽各不相同)的环境中。
- 资源未充分利用: 较快的客户端闲置等待滞后者。
- 对掉线的敏感性: 如果客户端在回合中途掉线,服务器可能会无限期等待,除非实施了如超时或最低参与阈值等机制,但这可能引入偏差。
异步联邦学习
异步联邦学习旨在通过解耦客户端计算和服务器聚合来缓解滞后者问题。它没有一个单一的定义,但其核心是服务器不会在步调一致的回合中等待固定的客户端群体。
一种常见方法如下所示:
- 客户端就绪: 客户端向服务器表明其可用状态。
- 分发: 服务器将当前全局模型状态(wserver)发送给客户端。请注意,wserver 可能在其他客户端开始计算后就已经更新了。
- 本地训练: 客户端根据接收到的模型及其本地数据执行本地计算,生成更新 Δwk。
- 上传: 客户端将其更新 Δwk 上传至服务器。
- 即时聚合(或缓冲): 收到更新 Δwk(该更新可能基于较旧的模型版本 wclient_received 计算得出)后,服务器会立即更新全局模型。此更新可能采用对陈旧性敏感的调整。例如,一个简单的更新可以是 wserver←wserver+αΔwk,其中 α 是学习率或权重。另外,服务器也可能缓冲更新并周期性地应用它们。
- 持续运行: 该过程持续运行;客户端独立请求模型并提交更新,无需同步回合。
异步联邦学习运行示意图。客户端独立获取最新模型、计算并上传更新。服务器在收到更新后即进行聚合,这可能使用到陈旧信息。
优点:
- 效率提升: 克服了滞后者瓶颈。较快的客户端贡献更频繁,可能导致挂钟时间收敛更快。
- 更高吞吐量: 系统持续处理更新,从而提高资源利用率,尤其在异构环境中。
- 对可用性的韧性: 自然地处理客户端的加入、离开或响应时间的变化。
缺点:
- 陈旧性: 客户端更新是基于全局模型的旧版本计算的。聚合这些“陈旧”的更新可能会阻碍收敛或导致震荡,因为这些更新可能未指向当前全局模型状态的正确方向。陈旧程度(tcurrent−tclient_received)是一个重要因素。
- 收敛挑战: 由于陈旧性,理论分析更为复杂。如果陈旧性管理不当,与同步方法相比,在所需更新数量方面,收敛可能较慢(尽管在挂钟时间上可能更快)。
- 实现复杂性: 需要仔细管理模型版本,以及可能需要考虑陈旧性的复杂聚合函数(例如,根据更新的时效性进行加权)。
比较与权衡
| 特性 |
同步联邦学习 |
异步联邦学习 |
| 回合结构 |
离散、同步的回合 |
持续运行,无固定回合 |
| 速度 |
受限于最慢参与者(滞后者) |
由平均客户端速度决定;进展更快 |
| 更新陈旧性 |
低(所有更新基于相同的 wt) |
高(更新基于不同的、较旧的 wserver) |
| 系统利用率 |
可能因等待而偏低 |
通常较高,闲置时间较少 |
| 收敛理论 |
更成熟,分析较简单 |
因陈旧性更复杂 |
| 实现 |
服务器逻辑较简单 |
服务器逻辑更复杂(版本管理、聚合) |
| 异构性 |
对系统异构性敏感(滞后者) |
对系统异构性更敏感 |
| 容错能力 |
对回合内掉线敏感 |
自然处理客户端可用性波动 |
同步联邦学习和异步联邦学习的选择在很大程度上取决于具体的应用背景:
- 对于客户端相对一致且网络可靠的环境,同步联邦学习提供了简洁性,并可能在每个通信回合中实现更稳定的收敛。
- 对于高度异构的环境(在跨设备联邦学习中很常见),客户端速度各异且可用性不可预测,异步联邦学习在挂钟训练时间方面能提供显著加速,前提是通过本课程后续讨论的技术(例如,考虑陈旧性的聚合、自适应学习率)充分管理陈旧性的负面影响。
在审视旨在改进聚合、隐私和效率的更先进算法之前,理解这些基本操作模式是必要的,因为许多技术可以适应同步或异步设置,尽管其影响有所不同。