<论文>如何构建一个更鲁棒的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。

相关推荐
小七-七牛开发者26 分钟前
论文解读:DeepSeek DSpark 在真实高并发推理服务中,如何保证 Token 生成又好又快?
ai·大模型·编程·ai coding
得物技术30 分钟前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
HokKeung34 分钟前
飞书 lark-cli 如何存储 tenant_access_token 和 user_access_token
人工智能·go
Ralph_Salar35 分钟前
从0到1搭建AI智能支付风控助手Stage3-Function Calling — 让AI能动起来
人工智能
Ralph_Salar41 分钟前
从0到1搭建AI智能支付风控助手Stage4-Agent编排 — 让AI自己思考、决策、行动
人工智能
smallyoung41 分钟前
Spring AI 2.0 VectorStore实战:从原理到RAG落地
人工智能·后端
火山引擎开发者社区1 小时前
被 Vibe Coding 用户频点名的火山 Supabase 到底是个啥?一图来看懂
人工智能
火山引擎开发者社区2 小时前
动手做 AI 实验赢好礼!产品 + 大模型免费额度限时供应!
人工智能
字节跳动视频云技术团队2 小时前
从 VCloud 到 Agentic VCloud:Agent 时代的范式重构
人工智能·音视频开发
AKAMAI2 小时前
每百万 Token 成本砍六成,出海 AI 团队开始重算推理这笔账
人工智能·云计算