<论文>如何构建一个更鲁棒的Bert?

一、摘要

今天我们来聊一聊论文《RoBERTa: A Robustly Optimized BERT Pretraining Approach》。这篇论文提出了一种更优的Bert训练方案,并将该方案训练的模型称为------RoBERTa。

译文:

语言模型的预训练已经带来了显著的性能提升,但不同方法之间的仔细比较仍然具有挑战性。训练过程计算量大,通常在不同规模的私有数据集上进行,并且正如我们将展示的那样,超参数选择对最终结果有显著影响。我们进行了一项BERT预训练(Devlin等,2019)的复现研究,仔细测量了许多关键超参数和训练数据规模的影响。我们发现BERT显著地训练不足,并且可以匹配或超过之后发布的每一个模型的性能。我们的最佳模型在GLUE、RACE和SQuAD上达到了最新的最先进结果。这些结果突显了之前被忽视的设计选择的重要性,并对最近报告的改进来源提出了质疑。我们发布了我们的模型和代码。

二、模型核心创新点

RoBERTa模型在架构上仍然与Bert类似,同样都是多层Transformer模型编码器的堆叠。二者主要的区别在于预训练任务的设计,RoBERTa采用的动态掩码的机制来替代MLM中的静态掩码,同时变更预训练输入文本的格式并取消NSP任务,还采用了新的文本编码方式。

1、动态掩码(dynamic masking)

BERT 依赖于随机进行Mask和预测Token,其实现方式是在数据预处理阶段进行一次Mask,从而产生单一的静态Mask,也就是说每条文本Mask的位置是固定的,无论在哪一轮的训练迭代时都不会发生变化。为此,**作者提出了动态Mask的概念,即每向模型输入一个序列时,都会生成一次Mask,这样一来,即便是同一条样本在不同的训练阶段所Mask的Token也是不同的。**实验效果表明,动态掩码效果的确略优于静态掩码,毕竟一定程度上提升了训练文本的多样性。

2、改进预训练输入格式

经过多种策略的比较,作者最终使用了一种叫Full Sentences的预训练输入策略 。具体来说:每个输入都填充有从一个或多个文档中连续采样得到的完整句子 ,使得总长度最多为 512 个词元。输入可能跨越文档边界,当到达一个文档末尾时,就开始从下一个文档中采样句子,并在文档之间添加一个额外的分隔符词元。同时,作者移除了下一句预测NSP任务的损失

3、改进文本编码方式

这里需要知道什么是字节对编码。字节对编码(BPE)是字符级和词级表示之间的一种混合形式 ,它能够处理自然语言语料库中常见的大型词汇表。字节对编码依靠子词单元,而非完整的单词,这些子词单元是通过对训练语料库进行统计分析提取出来的。Radford等人引入了一种巧妙的字节对编码实现方式,它使用字节而非 Unicode 字符作为基础子词单元。使用字节使得学习一个规模适中(5 万个单元)的子词词汇表成为可能,该词汇表仍能对任何输入文本进行编码,且不会引入任何 "未知" 词元。

原始的 BERT 实现方式使用了一个规模为 3 万个单元的字符级BPE词汇表,这个词汇表是在用启发式分词规则对输入进行预处理之后学习得到的。参照Radford等人(2019 年)的做法,RoBERTa的作者转而考虑使用包含 5 万个子词单元的更大的字节级BPE码词汇表来训练 BERT,且不对输入进行任何额外的预处理或分词操作。通过这个操作,RoBERTa的参数量比原始的Bert增加了15M-20M不等。

三、总结

总的来说,RoBERTa还是Bert的衍生模型,只不过作者通过上述的操作并加上更大的Batch Size和更多的数据量等,非常暴力地提升了原始Bert的性能表现。从这里也可以窥见,更大的模型参数量、更多的数据以及更多的训练资源等的确能够提升预训练模型的性能。近几年各大顶流团队的大模型军备竞赛也很好地印证了这一点,谁的数据多、谁的模型大、谁的训练时间长,那他的模型就更牛X。

相关推荐
井底哇哇33 分钟前
ChatGPT是强人工智能吗?
人工智能·chatgpt
Coovally AI模型快速验证38 分钟前
MMYOLO:打破单一模式限制,多模态目标检测的革命性突破!
人工智能·算法·yolo·目标检测·机器学习·计算机视觉·目标跟踪
AI浩1 小时前
【面试总结】FFN(前馈神经网络)在Transformer模型中先升维再降维的原因
人工智能·深度学习·计算机视觉·transformer
可为测控1 小时前
图像处理基础(4):高斯滤波器详解
人工智能·算法·计算机视觉
Milk夜雨2 小时前
头歌实训作业 算法设计与分析-贪心算法(第3关:活动安排问题)
算法·贪心算法
一水鉴天2 小时前
为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约
开发语言·人工智能·python
BoBoo文睡不醒2 小时前
动态规划(DP)(细致讲解+例题分析)
算法·动态规划
倔强的石头1062 小时前
解锁辅助驾驶新境界:基于昇腾 AI 异构计算架构 CANN 的应用探秘
人工智能·架构
apz_end3 小时前
埃氏算法C++实现: 快速输出质数( 素数 )
开发语言·c++·算法·埃氏算法
佛州小李哥3 小时前
Agent群舞,在亚马逊云科技搭建数字营销多代理(Multi-Agent)(下篇)
人工智能·科技·ai·语言模型·云计算·aws·亚马逊云科技