【关于 大 Bert 模型系列算法】

大BERT模型总结
名称 介绍 动机 预训练方法 微调 问题
Bert Transformer的双向编码器 多义词问题 && GPT 单向 Transformer Task 1:Masked LM && Task 2:Next Sentence Prediction 直接利用 特定任务数据 微调 1. [MASK]预训练和微调之间的不匹配2. Max Len 为 512
XLNet 广义自回归预训练方法 1. Bert 预训练和微调之间的不匹配 2. Bert 的 Max Len 为 512 (1)Permutation Language Modeling【解决Bert 预训练和微调之间的不匹配】(2)Two-Stream Self-Attention for Target-Aware Representations【解决PLM出现的目标预测歧义】(3)XLNet将最先进的自回归模型Transformer-XL的思想整合到预训练中【解决 Bert 的 Max Len 为 512】 直接利用 特定任务数据 微调 问题
RoBERTa A Robustly Optimized BERT Pretraining Approach 1. 确定方法的哪些方面贡献最大可能是具有挑战性的 2. 训练在计算上是昂贵的的,限制了可能完成的调整量 1. 去掉下一句预测(NSP)任务 2. 动态掩码 3. 文本编码 4. 更大的数据量 5. 更大的batch_size 直接利用 特定任务数据 微调 问题
ELECTRA 判别器 & 生成器 1. 只有15%的输入上是会有loss 利用一个基于MLM的Generator来替换example中的某些个token,然后丢给Discriminator来判别 直接利用 特定任务数据 微调 问题
ERNIE 1.0 ERNIE: Enhanced Representation through Knowledge Integration 随机【MASK】会让模型不能充分学习到语义信息 1. Knowledge Integration 2. Dialogue Language Model(DLM) 问题
ERNIE 2.0 ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding 之前的工作主要通过词或句子的共现信号,构建语言模型任务进行模型预训练。除了语言共现信息之外,语料中还包含词法、语法、语义等更多有价值的信息。 1. 预训练连续学习 2. 更多的无监督预训练任务 问题
ERNIE-T ERNIE: Enhanced Language Representation with Informative Entities 引入外部图谱 1. 引入知识图谱 2. 异构信息融合 2. dAE 问题
RoBERTa
  • 更大的模型参数量(论文提供的训练时间来看,模型使用 1024 块 V100 GPU 训练了 1 天的时间)
  • 更大bacth size。RoBERTa 在训练过程中使用了更大的bacth size。尝试过从 256 到 8000 不等的bacth size。
  • 更多的训练数据(包括:CC-NEWS 等在内的 160GB 纯文本。而最初的BERT使用16GB BookCorpus数据集和英语维基百科进行训练)
RoBERTa对BERT的改进
1. 动态掩码

BERT 依赖随机掩码和预测 token。原版的 BERT 实现在数据预处理期间执行一次掩码,得到一个静态掩码。 而 RoBERTa 使用了动态掩码:每次向模型输入一个序列时都会生成新的掩码模式。这样,在大量数据不断输入的过程中,模型会逐渐适应不同的掩码策略,学习不同的语言表征。

静态掩码:在数据预处理的时候,统计mask
动态掩码:将序列输入模型的时候,才进行mask

2. 去掉NSP任务
  • 动机:虽然是句子对输入,但其实一个句子不只有一句,而是文章里面的连续片段,可以包含多句。
  • 操作:采用去掉NSP而采用FULL - SENTENCES方式

RoBERTa去掉了NSP,而采用连续的抽取句子填充输入序列,直到最大长度512(可跨文章)。这种训练方式叫做(FULL - SENTENCES),而原来的BERT每次只输入两个句子。

3. 更大的数据量

在BERT采用的数据BOOKCORPUS + English WIKIPEDIA(共16G)基础上

  • 增加 CC-NEWS(76GB)
  • 增加 OPENWEBTEXT(38GB)
  • 增加 STORIES(31GB)
    也就是RoBERTa一共用了160GB语料进行预训练。
4. 更大的batch_size

BERT的batch_size是256,一共训练了1M步,实验证明,采用更大的batch_size以及训练更多步,可以提高性能。最后RoBERTa采用的batch_size是8K。

5. Byte-Pair Encoding 文本编码
  • BERT:采用的是基于character level的Byte-Pair Encoding(BPE)编码,词表大小是30K;
  • RoBERTa:文本编码。Byte-Pair Encoding(BPE)是字符级和词级别表征的混合,支持处理自然语言语料库中的众多常见词汇。原版的 BERT 实现使用字符级别的 BPE 词汇,大小为 30K,是在利用启发式分词规则对输入进行预处理之后学得的。Facebook 研究者没有采用这种方式,而是考虑用更大的 byte 级别 BPE 词汇表来训练 BERT,这一词汇表包含 50K 的 subword 单元,且没有对输入作任何额外的预处理或分词。

采用更大的BEP词汇表(50k)

《RoBERTa: A Robustly Optimized BERT Pretraining Approach》

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐