Page 211 - 《软件学报》2025年第9期
P. 211
4122 软件学报 2025 年第 36 卷第 9 期
D k 进行下游任务训练, 其他层 (包括嵌入层) 保持冻结, 仅用于辅助计算, 不进行更新.
使用本地数据
● S3: 每个客户端 C k 上传当前训练的第 [l, L k ) 层 Transformer 参数和输出层参数到服务端.
● S4: 服务端会把所有客户端上传的参数进行聚合, 本应用场景下, 使用典型的 FedAVG 算法来得到聚合的参
数, 如公式 (1) 所示, 由客户端 C k 的训练数据量决定参数聚合的权重, 用于处理客户端数据分布不均匀的场景.
● S5: 服务端使用聚合后的参数更新全局模型, 并基于第 4.2 节所述的循环递减训练策略决定之后训练的
Transformer 层最浅层索引号 l.
● S6: 如果需要继续训练, 则重复步骤 S1, 客户端下载新的参数, 否则结束当前联邦学习流程.
服务端 Output g T-Layer* 更新 Transformer 层
全局模型
S4: T-Layer 11 g T-Layer 固定 Transformer 层
S3: 聚合参数 T-Layer 10 g
上传参数 Output* ... T-Layer g 全局 Transformer 层
Output*
T-Layer(s)* T-Layer 1 g l 训练层序号
T-Layer(s)*
T-Layer 0 g
S5: l
更新参数并决定训练层序号 l Embedding g Output*
S2: T-Layer(s)* (已更新)
训练本地模型第 l 层
本地模型 本地模型 S6: 本地模型
C 1 C k C N
重复步骤 S1
S1:
下载新参数 Embedding g T-Layer T-Layer ... T-Layer T-Layer* T-Layer* Output* Embedding g T-Layer T-Layer ... T-Layer T-Layer* T-Layer* Output* 或结束流程 Embedding g T-Layer T-Layer ... T-Layer* T-Layer* Output*
和训练层序 ... ... T-Layer
号
l l l
本地数据 本地数据 本地数据
图 4 FedBT 下游任务微调框架
FedBT 在下游任务微调场景下的算法如算法 2 所示. 整体框架同算法 1 类似, 为联邦学习框架. 具体区别在于
每次联邦学习训练过程中更新的参数不同以及本地模型构造的不同, 包括算法 2 中的初始化、第 8, 9 行和第 14,
15 行. 在第 4.2 节会进行详细的介绍.
算法 2. FedBT 下游任务微调算法.
0
I
输入: 数据集 {D 1 ,...,D N }, 全局模型 M G , 初始参数为 W , 联邦学习迭代轮次 , 本地下游任务训练轮次 , 当前训
e k
G
练层编号 l, 训练循环因子 c;
I
输出: 最终全局模型 M G 的参数 W .
G
P k ; 初始训练 l = L G −1
初始化: 每个客户端 C k 的本地参数池 Transformer 层编号
1. //执行 I 轮联邦学习迭代
2. for i = 0 to I −1 do
3. //各个客户端并行执行
4. for each client C k do
5. if i > 0 then
6. 使用服务端的 W i−1 更新 M k
G
7. end if
8. //在客户端使用本地模型训练第 [l, L k ) 层 Transformer 层和输出层参数
i
9. W ← Fine_Tune(M k ,D k ,P k ,l,L k ,e k )
k
i
10. 上传 W 到服务端
k
11. end for

