RoBERTa概述

RoBERTa相较于BERT最大的改进有三点:

  1. 动态Masking
  2. 取消NSP (Next Sentence predict) 任务
  3. 扩大Batch Size
静态Masking vs 动态Masking
  • 静态Maksing:在数据预处理期间Mask矩阵就已生成好,每个样本只会进行一次随机Mask,每个Epoch都是相同的
  • 修改版静态Maksing:在预处理的时候将数据拷贝10份,每一份拷贝都采用不同的Mask,也就说,同样的一句话有10种不同的mask方式,然后每份数据都训练N/10个Epoch
  • 动态Masking:每次向模型输入一个序列时,都会生成一种新的Maks方式。即不在预处理的时候进行Mask,而是在向模型提供输入时动态生成Mask

取消NSP任务

其实到2020年了,很多论文早已不再使用NSP任务,但是RoBERTa算是比较早的一批质疑NSP任务的模型。RoBERTa实验了4种方法:

  • SEGMENT-PAIR + NSP:输入包含两部分,每个部分是来自同一文档或者不同文档的 segment (segment 是连续的多个句子),这两个segment 的token总数少于 512 。预训练包含 MLM 任务和 NSP 任务。这是原始 BERT 的做法
  • SENTENCE-PAIR + NSP:输入也是包含两部分,每个部分是来自同一个文档或者不同文档的单个句子,这两个句子的token 总数少于 512 。由于这些输入明显少于512 个tokens,因此增加batch size的大小,以使 tokens 总数保持与SEGMENT-PAIR + NSP 相似。预训练包含 MLM 任务和 NSP 任务
  • FULL-SENTENCES:输入只有一部分(而不是两部分),来自同一个文档或者不同文档的连续多个句子,token 总数不超过 512 。输入可能跨越文档边界,如果跨文档,则在上一个文档末尾添加标志文档边界的token 。预训练不包含 NSP 任务
  • DOC-SENTENCES:输入只有一部分(而不是两部分),输入的构造类似于FULL-SENTENCES,只是不需要跨越文档边界,其输入来自同一个文档的连续句子,token 总数不超过 512 。在文档末尾附近采样的输入可以短于 512个tokens, 因此在这些情况下动态增加batch size大小以达到与 FULL-SENTENCES 相同的tokens总数。预训练不包含 NSP 任务

扩大Batch Size

其实之前我看到过一个说法(源自Chinese-BERT-wwm):降低batch size会显著降低实验效果

RoBERTa论文作者也做过相关实验,采用大的Batch Size有助于提高性能

其中,bsz是Batch Size;steps是训练步数(为了保证bsz*steps近似相同,所以大bsz必定对应小steps);lr是学习率;ppl是困惑度,越小越好;最后两项是不同任务的准确率

Reference
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数学家是我理想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值