文章目录
0. 引言
本文对比介绍几类 BERT 改进版模型: RoBERTa、DistilBERT、ALBERT、ELECTRA 以及 DeBERTa,下面表格是汇总一览:
序号 | 名称 | 年份 | 核心思想 |
---|---|---|---|
1 | RoBERTa | 2019 | 增添数据集及训练批次、移除 NSP 目标、采用动态 Masking、采用字节级 BPE 词汇表 |
2 | DistilBERT | 2020 | 采用知识蒸馏技术精简 BERT 模型 |
3 | ALBERT | 2020 | 通过因子化嵌入参数化和跨层参数共享减少参数、移除 MLM 并增加 SOP |
4 | ELECTRA | 2020 | 采用生成器+判别器。生成器生成新的 token、判别器来区分生成的 token |
5 | DeBERTa | 2021 | 预训练采用分离注意力机制和增强型掩码解码器,微调阶段采用虚拟对抗训练方法 |
1. RoBERTa
1.1 概览
RoBERTa,来源于2019年论文*《RoBERTa: A Robustly Optimized BERT Pretraining Approach》*,是一种对 BERT 预训练方法的改进。它通过对 BERT 模型的预训练过程进行细致的调整和优化,以提高模型在各种自然语言处理任务上的性能。RoBERTa 的主要目标是通过对关键超参数和训练数据大小的影响进行仔细的测量,从而提出一种改进的 BERT 训练方法,这种方法能够匹配或超过 BERT 模型的性能。
论文:https://arxiv.org/pdf/1907.11692
1.2 改进点
RoBERTa 相对于原始 BERT 模型的改进点主要包括:
1.2.1 数据集
包含 BOOKCORPUS、CC-NEWS、OPENWEBTEXT、STORIES。研究者们收集了一个大型的新数据集 CC-NEWS,这个数据集包含了大量的新闻文章。
1.2.2 更大批次
训练更长时间,使用更大的批次大小,覆盖更多的数据。
从实验可以看出,大批次训练降低了掩蔽语言建模(masked language modeling)目标的困惑度,以及最终任务的准确性。大批量处理也更容易通过分布式处理进行数据并行训练,RoBERTa 后来的实验中用 8K 序列批量训练。
1.2.3 移除NSP目标
移除了 BERT 的 NSP(Next Sentence Prediction)目标 。
- **SEGMENT-PAIR+NSP:**原始 BERT 使用的输入格式,其中包含两个段落,中间用特殊的分隔符 [SEP] 隔开;
- **SENTENCE-PAIR+NSP:**与 SEGMENT-PAIR+NSP 类似,但输入由一对自然句子组成,而不是段落,句子可以来自同一个文档的连续部分,或者来自不同的文档;
- **FULL-SENTENCES(无 NSP):**输入由完整的句子组成,这些句子连续从一个或多个文档中采样。当达到一个文档的末尾时,模型会开始从下一个文档中采样句子,并在文档之间添加额外的分隔符。这种格式去除了 NSP 目标,因为它假设输入的连续性不再是预测任务的一部分。
**4. DOC-SENTENCES(无 NSP):**与 FULL-SENTENCES 类似,但它限制输入不能跨越文档边界。
从实验可以看出,无 NSP 的模型在 SQuAD 数据集上评测效果表现整体更好,其中 DOC-SENTENCES 输入格式效果则更佳。然而,由于 DOC-SENTENCES 导致批次大小可变,在其余的实验中使用 FULL-SENTENCES,以便于与相关工作进行比较。
1.2.4 采用动态 Masking 模式
训练时采用动态 Masking 模式
原始 BERT 模型在数据预处理阶段对每个样本只进行一次掩码操作,这可能导致模型在训练过程中多次看到相同的掩码模式。RoBERTa 通过动态改变掩码模式,即每次将数据输入模型时都重新生成掩码,增加了训练数据的多样性,迫使模型学习更加鲁棒的特征。
1.2.5 采用字节级BPE词汇表
使用更大的字节级 BPE (Byte-Pair Encoding)词汇表,而不是基于字符的 BPE 词汇表。
BERT 原始模型使用的是基于字符的 BPE 的 30K 词汇表,这限制了词汇表的大小和覆盖范围。RoBERTa 采用了一个更大的字节级 BPE 50K 词汇表,这允许模型处理更多样化的词汇,包括罕见词和专有名词,而不需要将它们替换为“unknown”标记。
2. DistilBERT
2.1 概览
DistilBERT 来源于2020年论文 《DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter》,在预训练阶段使用知识蒸馏技术将 BERT 模型精简。DistilBERT 在保持 BER T模型97%的语言理解能力的同时,减少了40%的模型大小,并且在推理速度上提高了60%。DistilBERT 不仅体积更小、速度更快,而且成本更低,更适合在设备上进行计算。
论文:https://arxiv.org/pdf/1910.01108
2.2 改进点
DistilBERT 核心的思想是知识蒸馏,所以这里主要介绍下知识蒸馏的核心流程。
《Distilling the Knowledge in a Neural Network》 是关于知识蒸馏(Knowledge Distillation)技术的重要论文,由 Hinton 等人于2015年提出。这篇论文详细介绍了如何将一个大型的、复杂的机器学习模型(教师模型)的知识转移到一个较小的模型(学生模型)中,从而使小模型能够在保留大部分性能的同时拥有更高的效率。
2.2.1 核心思想
知识蒸馏的核心思想是利用教师模型的软标签(soft labels)来训练学生模型。这里的软标签(soft labels)是指教师模型对输入数据预测的概率分布,传统的硬标签(hard labels)是指真实的分类标签。
(1)软标签(Soft Labels)
教师模型对输入样本的预测输出是一个概率分布,而不是单一的类别标签。这种概率分布包含了教师模型对于各个类别的置信度,比硬标签提供了更多关于类间关系的信息。
(2)温度参数(Temperature Parameter)
为了使概率分布更加平滑,引入了一个温度参数 T T T,它可以放大或缩小教师模型输出的 softmax 函数的值。
q i = e z i T ∑ e z i T q_i = \frac{e^{\frac{z_i}T}}{\sum e^{\frac{z_i}T}} qi=∑e