Page 403 - 《软件学报》2026年第3期
P. 403
1366 软件学报 2026 年第 37 卷第 3 期
当客户端 k 收到更多的全局模型块时, 客户端需要消耗更多的通信时间来进行通信, 同时在本地更新时需要
更多的计算时间进行计算. 因而客户端 k 接收的全局模型的数量 m k 应与客户端 k 的计算时间和通信时间成反比.
即客户端的通信能力和计算能力越强, 客户端的通信时间和计算时间越短, 需要接收的全局模型块就越多.
Z k,m . 它表示当客户端 k 收到 m 个本地模型块之后回馈给服务器相
基于上述分析, 我们设计了一个反馈变量
关信息, 并综合这些信息算出来的能反映客户端状态的一个变量. 然后, 服务器根据这个算出来的反馈变量进行决
策. 我们将 Z k,m 定义如下:
Z t = θ k ·∆L ce (16)
k,m H ′ +β·H ′
e k,c k,b
其中, 使用指数函数是为了增加通信时间和计算时间对反馈变量的影响程度, β (β ⩽ 0) 表示客户端的计算能力对
反馈变量的影响, L ce 是客户端本地损失函数中的本地损失项, ∆ζ L 象征着客户端 k 的本地模型的精度提升. 使用超
参数 β 的原因是当瓶颈层参数数量相对模型的总参数数量很小时, 各个客户端之间的计算时间与接收的模型块数
量相关性较小, 因而算法可以将 β 设置成较小的值. ∆L ce 的值为上一个全局轮次的 L ce 减去本轮全局轮次 L ce 的值.
Z k,m 的值, 并根据反馈变量做出下一个全局轮次的决策.
服务器会根据每个客户端的反馈信息来计算出反馈变量
4.2 算法详细描述
为了决策出每一个客户端应当接收的模型块的数量, 我们设计了如下算法. 服务器需要存储一个变量 R k 来存
储客户端 k 之前全局轮次的反馈信息, 我们将 R k 定义如下:
R k = {R k,0 ,R k,1 ,...,R k,M−1 } (17)
其中, R k,m 对应着给客户端 k 发送 m 个全局模型块后收到的反馈信息, 而 R k,0 对应的则是服务器给客户端 k 发送整
个全局模型块后收到的反馈信息. 我们需要记住先前轮次的反馈信息从而避免某一轮次带来的错误的反馈信息的
干扰, 因此 R k,m 应该按照如下规则进行更新:
(18)
R k,m = ηZ k,m +(1−η)R k,m
其中, η (0 ⩽ η ⩽ 1) 代表实时反馈信息的权重. 由于全局模型块的数量在算法开始时是被随机选择的, 并且客户端
R k,m 最大的 m 作为应发送给客户端 k 的全局模型块
的状态在训练过程中会发生变化, 因而我们不能总是选择对应
的数量. 因此, 我们为反馈信息添加了一个惩罚项, 最终我们使用决策变量 D k,m 来决策发送给客户端 k 的全局模型
D k,m 定义如下:
块的数量,
√
ln(t +1)
D k,m = R k,m + (19)
F k,m +1
其中, F k,m 表示客户端 k 接收 m 个全局模型块的全局轮次的频次. 我们选择 D k,m 对应的最大的 m 作为最终的客户
端 k 接收的全局模型块的数量, 即 m = argmaxD k,m . 在公式 (19) 中, 第 2 项的分母项表示对于客户端 k 而言经常被
m
服务器选择的 m 的优先级减弱, 分子项则表示随着训练的进行, 公式 (19) 的第 2 项对决策变量 D 的影响将会变
弱. 具体的算法如算法 1 和算法 2 所示. 注意, 当全局轮次 m = 0 并传送整个的
t
τ+1 的倍数时, 服务器直接使
t 为
k
全局模型, 而客户端则是直接将接收的全局模型用作组合模型.
算法 1. 服务器分发模型块算法 (BMD).
输入: 参与训练的客户端数量 K, 超参数 β、 η, 间隔 τ;
T
输出: 全局模型 x .
0
x R k = 0 F k,m = 0 m = M/2;
0
1. 初始化 x , , , , 1
k k
2. for 对于每个全局轮次 t = {1,2,...,T} do
3. for 对于每个客户端 k ∈ {1,2,...,K}, 服务器 do
4. 根据公式 (15)、(16)、(17) 和 (18) 更新 R k,m ;

