中文 RoBERTa
一、基础介绍
作者按照 RoBERTa 论文主要精神训练了这一模型,并进行了多项改进和调整:
- 数据生成方式和任务改进:取消下一个句子预测,并且数据连续从一个文档中获得 (见:Model Input Format and Next Sentence Prediction,DOC-SENTENCES);
- 更大更多样性的数据:使用 30G 中文训练,包含 3 亿个句子,100 亿个字 (即 token)。由于新闻、社区讨论、多个百科,保罗万象,覆盖数十万个主题;
- 训练更久:总共训练了近 20 万,总共见过近 16 亿个训练数据 (instance); 在 Cloud TPU v3-256 上训练了 24 小时,相当于在 TPU v3-8(128G 显存) 上需要训练一个月;
- 更大批次:使用了超大(8k)的批次 batch size;
- 调整优化器参数;
-
使用全词 mask(whole word mask)。
全词mask
二、改进
RoBERTa 模型更多的是基于 BERT 的一种改进版本。是 BERT 在多个层面上的重大改进。
RoBERTa 在模型规模、算力和数据上,主要比 BERT 提升了以下几点:
- 更大的模型参数量(从 RoBERTa 论文提供的训练时间来看,模型使用 1024 块 V 100 GPU训练了 1 天的时间)
- 更多的训练数据(包括:CC-NEWS 等在内的 160GB 纯文本)
此外如下所示,RoBERTa 还有很多训练方法上的改进。
1. 动态掩码
BERT 依赖随机掩码和预测 token。原版的 BERT 实现在数据预处理期间执行一次掩码,得到一个静态掩码。而 RoBERTa 使用了动态掩码:每次向模型输入一个序列时都会生成新的掩码模式。这样,在大量数据不断输入的过程中,模型会逐渐适应不同的掩码策略,学习不同的语言表征。
2. 更大批次
RoBERTa 在训练过程中使用了更大的批数量。研究人员尝试过从 256 到 8000 不等的批数量。
3. 文本编码
Byte-Pair Encoding(BPE)是字符级和词级别表征的混合,支持处理自然语言语料库中的众多常见词汇。
原版的 BERT 实现使用字符级别的 BPE 词汇,大小为 30K,是在利用启发式分词规则对输入进行预处理之后学得的。Facebook 研究者没有采用这种方式,而是考虑用更大的 byte 级别 BPE 词汇表来训练 BERT,这一词汇表包含 50K 的 subword 单元,且没有对输入作任何额外的预处理或分词。
三、效果
虽然没有中文预训练模型的效果比较,但 RoBERTTa 的作者对比了 RoBERTA(large)、BERT(large)和 XLNET 在不同任务上的表现结果。
roberta效果
1、内容转载:RoBERTa中文预训练模型,你离中文任务的「SOTA」只差个它
2、Roberta项目github地址:https://github.com/brightmart/roberta_zh
3、 模型下载地址:https://storage.googleapis.com/roberta_zh/roberta_model/roeberta_zh_L-24_H-768_A-12.zip
网友评论