赞
踩
作者发现BERT以及提供的预训练语言模型并没有得到充分的训练,因此本文提出RoBERTa以挖掘BERT模型,并提供充分的训练。作者认为,扩增训练语料、增大预训练的迭代次数、去掉Next Sentence Prediction、在更长的序列上训练、动态Masking等策略(Trick)可以大幅度提升BERT的性能。
简要信息:
序号 | 属性 | 值 |
---|---|---|
1 | 模型名称 | RoBERTa |
2 | 所属领域 | 自然语言处理 |
3 | 研究内容 | 预训练语言模型 |
4 | 核心内容 | BERT改进 |
5 | GitHub源码 | https://github.com/pytorch/fairseq |
6 | 论文PDF | https://arxiv.org/pdf/1907.11692.pdf |
可直接参考BERT讲解。
BERT只用了Wikipedia和BookCorpus,RoBERTa又额外扩增了训练语料。RoBERTa一共在5个语料上训练,包括Wikipedia、BookCorpus、CC-News、OpenWebText和Stories。后续的实验均在这5个语料上完成。
Masked Language Modeling是BERT中非常重要的预训练目标,但是,在BERT训练过程中,带有随机Mask的语料是数据预处理阶段得到的,而在训练过程中则固定不变(Static Masking)。因此BERT在训练时,对于每一个句子,每次都将见到相同Mask。
因此RoBERTa提出动态地改变每次训练时Mask采样位置(Dynamic Masking)。即每迭代一次训练,重新对每个句子的Mask进行采样。该策略间接实现了数据增强,且提高了鲁棒性。通过改变Mask策略,在QA、NLI以及分类任务上有提升:
Next Sentence Prediction(NSP)通常对sentence-pair的输入进行训练,目标是预测两个句子是否存在前后关系。但RoBERTa发现去掉NSP效果反而更好:
在BERT中,batch size设置为256,一个epoch需要训练超过1M步。RoBERTa训练过程中,增大了batch size。如下表:
不同的batch size以及对应的学习率。实验发现当batch size为2k时,效果可以达到最好。batch size设置大可以采用数据并行方法进行训练。
Byte-Pair Encoding(BPE)由Neural Machine Translation of Rare Words with Subword Units提出解决在机器翻译领域中出现的Out-of- Vocabulary(OOV)问题。主要通过wordpiece技术将word分解为更为细粒度的片段。RoBERTa采用BPE,获得了超过5w个token(BERT只有3w)。
BPE的详解可参考:BPE(Byte Pair Encoding)算法
RoBERTa参与了SQuAD、RACE和GLUE的打榜,并与当时最好的模型XLNet进行比对,结果如下:
其中SG-Net是一个抽取式问答的模型,博主做过论文解读,可参考:机器阅读理解算法集锦
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。