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
   206   207   208   209   210   211   212   213   214   215   216