Page 212 - 《软件学报》2025年第9期
P. 212

王鑫澳 等: 基于联邦学习的       BERT  模型高效训练框架                                             4123



                 12.  //服务端聚合客户端所上传参数
                                 i
                                       i
                       i
                 13.   W ← Merge(W ,...,W )
                       G
                                       N
                                 1
                 14.  //根据循环递减训练策略决定接下来训练的             Transformer 层编号  l
                 15.  l ← Next(l, i, c, L G )
                         W  到每个客户端
                           i
                 16.  发送   G
                 17. end for

                 4.2   训练策略的选择
                    BERT  模型的深层    Transformer 参数在下游任务微调时会发挥更加重要的作用, 因此当                FedBT  框架用于下游
                 任务时, 可以着重训练模型的深层           Transformer 参数. 同  FedBT  框架在进一步预训练场景下采用的渐进式采样映
                 射算法不同, 在下游任务微调阶段, FedBT          框架使用的是循环递减训练算法, 如图            5  所示, 描述了如何确定训练的
                 Transformer 层.


                                                        End
                                                       Yes
                                                                            l=L−(i%c)
                                        Start
                                       i=0, c=6,        i=I?      No        i=i+1
                                       l=L=11                               FL training




                                                 图 5 循环递减训练算法流程

                    图  5  中的  i  为当前训练的联邦学习迭代轮次索引号,   为联邦学习迭代总轮数,   为循环因子. 在微调阶段,
                                                              I
                                                                                   c
                 BERT  模型的高  6  层  Transformer 要比低  6  层的  Transformer 更加重要, 因此设置循环因子  c = 6. 初始阶段, 需要训
                 练的最浅层    Transformer 层索引号  l 同模型最深层    Transformer 层索引号  L G −1 一致, 为  11. 随着联邦学习的进行,
                 每一轮训练的最浅层        Transformer 层索引号  l 都会逐步减  1, 直到达到循环因子设置的边缘, 也就是           l = 6 之后,   重
                                                                                                      l
                                                        l
                 置为最深层索引号       L G −1 继续训练. 假如   I = 10, 则   的取值为  [11,10,9,8,7,6,11,10,9,8].
                                   [l, L k )  层的                                  D k  进行下游任务训练, 其他
                    在训练过程中, 第               Transformer 参数和输出层参数会使用本地数据
                 层  (包括嵌入层) 保持冻结, 仅用于辅助计算, 不进行更新, 从而在训练过程中减小训练开销; 并且只传输所更新
                 参数到服务端进行聚合来节约通信开销, 从而在资源有限的客户端上面完成模型的微调. 通过循环递减训练算
                 法, 可以有效节约计算开销与通信开销, 同时协同多层深层                    Transformer 参数进行高效训练, 保证模型的训练
                 效果.
                    同第  3  节中介绍的一样, FedBT    框架在下游阶段同样可以使用参数池和更小的模型来微调全局模型的重要参
                                 M k  的            L k  比全局模型的                          L k = 8, 则二者的参数
                 数. 如果客户端模型          Transformer 层数             Transformer 层数   L G  更少, 比如
                 之间的对应关系如图       6  所示, 描述了如何构建客户端的本地模型.
                    如果全局模型的       Transformer 层数  L G = 12, 客户端模型的  Transformer 层数  L k = 8, 则当服务端需要训练的最
                 浅层  Transformer 层索引号为   l = 10 时, 则客户端需要训练的最浅层索引号为        l k = l−(L G − L k ) = 6. 本地模型第  [l k , L k )
                 层的  Transformer 参数同全局模型第     [l, L G )  层的  Transformer 参数一一对应; 本地模型第  [0 , l k ) 层的  Transformer
                                [0, l k )  层的  Transformer 参数一一对应; 其余  Embedding  层参数和  Output 层参数一一对应. 在
                 参数同全局模型第
                 模型使用本地数据进行微调时, 将更新本地模型的第                 [l k , L k )  层的  Transformer 参数和  Output 层参数, 并上传服务
                 端进行聚合. 但客户端使用更小的模型, 并不能很好的平衡模型的训练开销与表现效果, 本节将在后续实验中验证
                 这一点.
   207   208   209   210   211   212   213   214   215   216   217