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 参数和输出层参数
   205   206   207   208   209   210   211   212   213   214   215