Page 203 - 《软件学报》2025年第9期
P. 203
4114 软件学报 2025 年第 36 卷第 9 期
精简不仅减少了模型的参数数量, 还加速了模型的训练和推理过程. 为了引导学生模型学习教师模型的知识,
DistilBERT 采用了一种特殊的蒸馏损失函数, 该损失函数不仅确保了模型收敛到正确的类别, 还考虑了教师模型
的输出. 这有助于学生模型更好地模拟教师模型的决策过程, 从而提高性能. DistilBERT 还引入了层融合的概念,
将原始 BERT 中的多个层合并为一个层. 这一层融合的过程通过学习来自不同层的信息, 使得模型在减小参数数
量的同时仍然能够捕获输入序列的丰富语义表示.
TinyBERT 是由华为 Noah’s Ark 实验室提出的一种轻量化的 BERT 模型, 旨在在保持高性能的同时减小模型
的体积和计算复杂度, 采用了一系列创新性的设计来实现轻量化. 和 DistilBERT 类似, TinyBERT 也使用了知识蒸
馏的方法, 它通过在一个较小的“学生模型”上学习一个大型的“教师模型”产生的软标签, 来传递原始 BERT 模型
的知识. 为了减小计算复杂度, TinyBERT 引入了动态掩码长度的概念. 在训练过程中, TinyBERT 根据每个实例的
输入长度动态地选择掩码的长度, 而不是使用固定的掩码长度, 这有助于降低计算量, 并使模型更适合处理不同长
度的输入. TinyBERT 引入了 intra-layer 交叉注意力, 即在同一层内的不同位置之间进行注意力交互, 这有助于提高
模型在保持语义表示的同时减小参数数量, 从而实现轻量化. TinyBERT 采用了隐式层交互的策略, 即通过将层间
的信息隐式地传递给同一层, 从而减小了模型的深度和参数数量, 这一设计有助于实现轻量级模型结构. TinyBERT
还引入了阈值分层的概念, 即通过使用不同的阈值来分层选择要保留的注意力头, 这有助于进一步减小模型的规
模, 使得模型更适用于资源受限的环境.
然而这些轻量化的模型通常以牺牲模型的精度为代价, 并且能够减少的模型规模有限, 在联邦学习的场景下
进行部署仍然有一定的限制.
1.4 联邦学习中的模型高效训练
在联邦学习场景进行模型的高效训练主要可以分为使用轻量化模型和使用高效训练算法两部分, 训练预训练
语言模型时的轻量化模型包括上文介绍的 DistilBERT 和 TinyBERT 等模型.
渐进式训练 [33] 是一种深度学习模型训练的策略, 其核心思想是通过逐步增加训练难度或复杂度来提高模型
性能. 这种方法与传统的一次性训练所有任务的方式有所不同, 更注重阶段性学习和逐步模型优化. 在渐进式训练
中, 模型首先在较为简单或具体的任务上进行初始化和训练, 然后逐步迭代地引入更复杂、抽象或广泛的任务, 使
模型逐渐适应和学习更高层次的知识表示. 这种逐步增加任务的方式有助于模型更好地利用已学到的知识, 在新
任务上表现更为出色. 在渐进式训练中, 任务被组织成层次结构, 每一层次解决一个相对简单或具体的问题. 模型
首先在低层次任务上进行初始化和训练, 然后逐步迭代地引入更高层次的任务. 模型在低层次任务上学到的知识
可以迁移到更高层次的任务中, 从而提高整体性能. 这种知识迁移的机制使得模型能够更好地利用已学到的信息,
减少在新任务上的学习负担.
渐进式训练最初提出是为了稳定训练过程, 如今已广泛应用于各种计算机视觉任务. ProgFed [15] 尝试将渐进式
训练引入联邦学习的场景下, 提出了一种名为 ProgFed 的新型联邦学习框架. 该框架通过采用渐进式训练来减少
计算和通信成本, 同时保持强大的性能. 该框架采用分阶段的方式逐步增加模型的复杂度, 从而降低了每个客户端
需要传输的数据量和计算量, 并提高了模型的收敛速度和性能. 此外, 该框架还引入了一种对称更新策略, 可更好地
处理模型参数不均匀分布的情况. 然而, ProgFed 的框架目前仅适用于普通的神经网络模型, 并未在基于 Transformer
的模型结构上进行实验.
FedSplitBERT [33] 提出了一种新型的框架, 旨在在联邦学习场景下对 BERT 模型进行下游隐私数据任务的微
调, 并辅助解决数据异质性的问题. FedSplitBERT 通过将 BERT 编码器层分割成本地部分和全局部分来降低通信
成本. 本地部分的参数仅由本地客户端训练, 而全局部分的参数则通过多个客户端的梯度聚合进行训练. 考虑到
BERT 的规模庞大, FedSplitBERT 还研究了一种量化方法, 以进一步减少通信成本, 并同时最小化性能损失. 此外,
它与许多现有的联邦学习算法兼容, 包括 FedAvg、FedProx 和 FedAdam. 然而, FedSplitBERT 仅适用于下游任务
的微调, 而在预训练任务方面的适配性有限. 此外, 虽然该框架成功地降低了客户端与服务端之间的通信开销, 但
并没有有效地减少计算开销. 对于计算资源受限的设备, FedSplitBERT 可能无法适配.

