英文

BERT 大型模型(cased)使用SQuAD进行整词屏蔽微调

预训练模型,使用屏蔽语言建模(MLM)作为目标,在英语语言上进行训练。它在 this paper 白皮书中被介绍,并于 this repository 首次发布。此模型是带大小写的,它区分英语和English。

与其他BERT模型不同,此模型采用了新的技术:整词屏蔽(Whole Word Masking)。在这种情况下,与一个词对应的所有标记一次性被屏蔽。整体上的屏蔽率保持不变。

训练过程是相同的 - 每个屏蔽的WordPiece标记都是独立预测的。

在预训练完成后,此模型使用我们的微调脚本之一,在SQuAD数据集上进行了微调。有关此微调的更多信息,请参见下文。

声明:BERT发布团队没有为此模型编写模型卡,因此这个模型卡是由Hugging Face团队编写的。

模型描述

BERT是一个基于transformer的模型,采用自监督方式在大规模英语语料库上进行预训练。这意味着它仅使用原始文本进行预训练,没有任何人工标注的方式(这就是为什么它可以使用大量公开可用的数据),使用自动处理方法从这些文本中生成输入和标签。更准确地说,它通过两个目标进行预训练:

  • 遮蔽语言建模(MLM):对于一个句子,模型随机遮蔽输入中的15%单词,然后将整个遮蔽后的句子输入模型,并预测其中的遮蔽词。这与通常依次查看单词的传统循环神经网络(RNN)不同,也与内部遮蔽未来令牌的自回归模型(如GPT)不同。它使模型能够学习句子的双向表示。
  • 下一个句子预测 (NSP):模型在预训练期间将两个遮蔽句子拼接为输入。它们有时与原始文本中相邻的句子相对应,有时不相对应。然后模型需要预测这两个句子是否相邻。

这样,模型学习到了英语语言的内部表示,这可以用于提取用于下游任务的有用特征:如果你有一个带标签的句子数据集,你可以使用BERT模型生成的特征作为输入训练一个标准的分类器。

此模型具有以下配置:

  • 24层
  • 1024隐藏维度
  • 16注意力头
  • 336M参数

预期用途和限制

这个模型应该被用作问答模型。你可以在问答流水线中使用它,或者在给定查询和上下文的情况下使用它输出原始结果。你可以在 transformers 文档 的 task summary 中看到其他用途。## 训练数据

BERT模型是在 BookCorpus 上进行了预训练的,该数据集包含了 11038 本未发表的书籍和 English Wikipedia 个(列表、表格和标题除外)。

训练流程

预处理

对文本进行小写处理,并使用WordPiece和30000个词汇大小进行标记化。模型的输入形式如下:

[CLS] Sentence A [SEP] Sentence B [SEP]

有50%的概率,句子A和句子B对应于原始语料库中的两个连续句子,其他情况下,是语料库中的另一个随机句子。注意这里所说的句子是一个连续的文本片段,通常比单个句子更长。唯一的约束是两个“句子”的结果的长度小于512个标记。

每个句子的屏蔽过程的细节如下:

  • 15%的标记被屏蔽。
  • 在80%的情况下,屏蔽的标记被替换为 [MASK] 。
  • 在10%的情况下,屏蔽的标记被替换为一个随机标记(与所替换的标记不同)。
  • 在剩余的10%情况下,屏蔽的标记保持不变。

预训练

模型在Pod配置的4个云TPU上进行了训练(总共16个TPU芯片),训练时间为一百万步,每批次大小为256。序列长度在90%的步骤中限制为128个标记,在剩余的10%步骤中限制为512个标记。使用的优化器是Adam,学习率为1e-4,β1 = 0.9,β2 = 0.999,权重衰减为0.01,学习率热身进行了1万步,在之后的学习率进行线性衰减。

微调

在预训练之后,此模型使用我们的微调脚本之一在SQuAD数据集上进行了微调。为了重现训练,您可以使用以下命令:

python -m torch.distributed.launch --nproc_per_node=8 ./examples/question-answering/run_qa.py \
    --model_name_or_path bert-large-cased-whole-word-masking \
    --dataset_name squad \
    --do_train \
    --do_eval \
    --learning_rate 3e-5 \
    --num_train_epochs 2 \
    --max_seq_length 384 \
    --doc_stride 128 \
    --output_dir ./examples/models/wwm_cased_finetuned_squad/ \
    --per_device_eval_batch_size=3   \
    --per_device_train_batch_size=3   \

BibTeX引用项和引用信息

@article{DBLP:journals/corr/abs-1810-04805,
  author    = {Jacob Devlin and
               Ming{-}Wei Chang and
               Kenton Lee and
               Kristina Toutanova},
  title     = {{BERT:} Pre-training of Deep Bidirectional Transformers for Language
               Understanding},
  journal   = {CoRR},
  volume    = {abs/1810.04805},
  year      = {2018},
  url       = {http://arxiv.org/abs/1810.04805},
  archivePrefix = {arXiv},
  eprint    = {1810.04805},
  timestamp = {Tue, 30 Oct 2018 20:39:56 +0100},
  biburl    = {https://dblp.org/rec/journals/corr/abs-1810-04805.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}