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

4118                                                       软件学报  2025  年第  36  卷第  9  期


                 对  BERT  模型进行进一步预训练, 以提升其在专业领域任务中的表现, 以满足服务端专业领域下游任务的需求, 同
                 时尽可能降低客户端的计算和通信成本.
                    为了解决此问题, FedBT     在进一步预训练阶段提出了如下解决方案.
                    (1) 在进一步预训练阶段, 客户端模型仅对浅层             Transformer 进行更新, 因为浅层   Transformer 在预训练过程中
                 起到更为关键的作用, 这一点在第          1.4  节中已作详细探讨.
                    (2) 客户端构建规模更小的模型用来辅助浅层              Transformer 训练, 并且每次只更新一层      Transformer 参数和输
                                                u
                 出层参数来节约计算开销, 即         L k ⩽ L G , L = 1. 这是因为, 在预训练过程中语料充分, 预训练过程为无监督训练, 并
                                                k
                 且浅层   Transformer 离输出层较远, 只要最关键的参数能够得到有效更新, 就能够实现同训练完整参数接近的表现
                 效果.
                    (3) 客户端在联邦聚合过程中仅传输和下载一层               Transformer 参数和输出层参数, 通过传输参数量的减少来降
                 低通信成本.

                    (4) 客户端的训练策略       π  为: 通过渐进式训练算法将有限的计算资源尽可能多地用于训练更重要的浅层
                 Transformer, 同时兼顾深层  Transformer 的更新; 通过深层采样算法帮助浅层          Transformer 参数训练时充分获得服
                 务端全局模型的深层知识. FedBT        框架通过两个算法的结合来保证模型训练效果.
                    FedBT  在进一步预训练阶段的整体训练框架如图              1  所示, 图中的  T-Layer 表示模型的   Transformer 参数, 整体
                 的框架流程如下.

                                                 服务端                   Output g      T-Layer*  更新 Transformer 层
                                                             全局模型
                                                     S4:              T-Layer 11 g   T-Layer  固定 Transformer 层
                                 S3:                 聚合参数             T-Layer 10 g
                                 上传参数                                                T-Layer g
                                                        Output*           ...               全局 Transformer 层
                                     Output*
                                                       T-Layer*        T-Layer 1 g
                                     T-Layer*                          T-Layer 0 g     l    训练层序号
                                                 S5:                                            l
                                                 更新参数并决定训练层序号 l       Embedding g      Output*
                      S2:                                                             T-Layer*  (已更新)
                      训练本地模型第 l 层
                           C     本地模型                      本地模型           S6:         C N   本地模型
                            1                         C k
                 S1:                                                      重复步骤 S1
                 下载新参数和                                                   或结束流程
                 训练层序号,      Embedding g  T-Layer  T-Layer  T-Layer*  T-Layer  T-Layer  T-Layer  Output*  Embedding g  T-Layer  T-Layer  T-Layer*  T-Layer  T-Layer  T-Layer  Output*  Embedding g  T-Layer  T-Layer  T-Layer*  T-Layer  T-Layer  T-Layer  Output*
                 并构建本地模                        ...                           ...
                 型 M k
                                   l  参数池                    l  参数池                           l  参数池
                           本地数据                       本地数据                             本地数据
                                                图 1 FedBT  进一步预训练框架

                    ● S0: 联邦学习初始阶段, 客户端       C k  从服务器获取全局模型的参数, 并将获取的参数保存在本地参数池                   P k  中.
                                                         l
                    ● S1: 客户端  C k  从服务器接收到一个索引号  , 该索引号表示在客户端               C k  的本地模型中要训练和更新的
                 Transformer 层索引号. 如果不是首轮联邦学习, 客户端还将接收到服务端下发的聚合后参数, 客户端使用此参数
                 更新本地参数池      P k . 之后客户端  C k  根据本地的参数池   P k  构建本地模型, 关于层索引号      l 确定和如何构建本地模型
                 将在第   3.2  节详细说明.
                    ● S2: 客户端之间并行地进行本地训练, 对本地模型的第               l 层  Transformer 和输出层参数使用本地数据     D k  进行
                 掩码语言模型     (MLM) 训练, 其他层   (包括嵌入层) 保持冻结, 仅用于辅助计算, 不进行更新.
                    ● S3: 客户端  C k  上传当前训练的第   l 层  Transformer 和输出层参数到服务端.
                    ● S4: 服务端将所有客户端上传的参数进行聚合, 本应用场景下, 使用典型的                      FedAVG  算法来得到聚合的参
                 数, 如公式  (1) 所示, 根据客户端的数据量来决定参数聚合过程中的权重, 可以有效层处理客户端数据分布不均匀
                 的场景.
   202   203   204   205   206   207   208   209   210   211   212