Page 210 - 《软件学报》2025年第9期
P. 210
王鑫澳 等: 基于联邦学习的 BERT 模型高效训练框架 4121
[3, 6) 层的 Transformer 层参数, 从本地参数池 P k 中的第 [3, 12) 层的 Transformer 层参数进行采样映射得到. 比如
采样序列可以是 [5,7,9], 或者 [7,7,11]. 对采样序列进行升序排序之后, 根据本地参数池 P k 中对应的 Transformer
参数构建本地模型的深层 Transformer 参数. 深层采样算法可以帮助浅层 Transformer 参数训练时充分获得服务端
全局模型的深层知识, 从而保证浅层 Transformer 参数的更新符合全局模型, 达到更好的训练效果. 本文将在第 5
节实验部分详细验证这一点.
4 高效微调训练框架
4.1 框架总览
对于 BERT 模型, 除了需要使用各个客户端上的专业语料进行进一步的预训练, 还存在一种常见情境, 即使用
各个客户端上的有标注数据进行下游任务的微调. 服务端拥有某个领域的少量测试数据, 需要使用 BERT 模型对
这些数据进行文本分类 (CLS) 或命名实体识别 (NER) 等任务. 各个客户端同样拥有相同领域的有标注数据, 但出
于隐私问题, 无法将客户端上的数据上传到服务端进行集中训练. 因此, 可以利用联邦学习将 BERT 模型在各个客
户端的专业数据上进行微调, 从而解决服务端的下游任务.
本节描述的框架旨在解决以下问题: 在联邦学习场景下, 利用各个资源受限客户端上存在的专业领域标注数
据, 对 BERT 模型进行微调, 来解决服务端上的具体下游任务, 同时尽量减小客户端的计算开销和通信开销. 为了
解决此问题, FedBT 在下游任务微调阶段提出了如下解决方案.
(1) 客户端模型在下游任务微调阶段仅更新深层 Transformer, 这是因为深层 Transformer 在下游任务微调阶
段更加重要, 本文在第 1.4 节进行了相应的探讨.
(2) 客户端在本地使用完整的模型计算更新部分深层 Transformer 参数, 通过固定其余参数不参与更新的方式
u
来节约计算开销, 即 L k = L G ,L ⩽ 6.
k
这是因为在下游任务微调阶段, FedBT 框架需要更新的是深层 Transformer 参数, 浅层 Transformer 参数仅用
于前向传播, 无需参与反向传播, 可以更有效地节约计算资源. 而在进一步预训练阶段, 更新浅层 Transformer 参数
时, 深层 Transformer 参数不仅需要前向传播, 还需进行辅助反向传播 (但并不保存梯度和更新参数). 因此客户端
本地模型的 Transformer 层数 L k 更多地影响模型表现效果, 而非计算开销. 综合考虑模型表现效果与计算资源之
间的关系后, FedBT 在下游任务微调阶段选择 L k = L G = 12 来平衡模型的表现效果与训练开销, 让模型得到更充分
的训练.
同时在下游任务微调过程中, 客户端本地数据不够充分, 微调训练过程为有监督训练, 深层 Transformer 离输
出层更近, 模型对数据更加敏感. 需要让模型的多层深层 Transformer 参数协同训练, 才能确保重要参数都能够得
到有效更新. 本文将在第 5 节实验章节对所提出的策略进行详细的实验验证.
(3) 客户端在联邦聚合过程中仅传输和下载所训练的 Transformer 参数和输出层参数, 通过减少传输参数量来
减少通信开销.
(4) 客户端的训练策略 π 为: 通过循环递减训练算法, 让 FedBT 框架下游任务微调阶段尽可能地节约计算开销
和通信开销, 同时协同多层深层 Transformer 参数进行高效训练, 保证模型的训练效果.
FedBT 在高效微调阶段的整体训练框架如图 4 所示, 图中的 T-Layer 指代的是模型的 Transformer 参数, 整体
的框架流程如下.
C k 从服务器获取全局模型的参数, 并将获取的参数保存在本地模型
● S0: 联邦学习初始阶段, 每个客户端
M k 中.
C k 的本地模型中要训练和更新的最浅
● S1: 客户端 C k 从服务器接收到一个索引号 l, 该索引号表示在客户端
层 Transformer 层索引号; 如果不是首轮联邦学习, 客户端还将接收到服务端下发的聚合之后的参数, 客户端使用
M k , 关于层索引号 将在第 4.2 节详细说明.
此参数更新本地模型 l
● S2: 客户端之间在并行的条件下进行本地训练, 对本地模型的第 [l, L k ) 层的 Transformer 参数和输出层参数

