基于英语语言、采用掩码语言模型(MLM)目标进行预训练的模型。该模型在 this paper 中被提出,并首次在 this repository 中发布。此模型为不区分大小写版本:即“english”和“English”之间没有区别。
与其他 BERT 模型不同,该模型采用了一种新技术进行训练:全词掩码(Whole Word Masking)。在这种情况下,一个单词所对应的所有 tokens 会被同时掩码。整体掩码率保持不变。
训练过程是相同的——每个被掩码的 WordPiece token 都是独立进行预测的。
预训练完成后,我们使用自己的微调脚本在 SQuAD 数据集上对该模型进行了微调。有关此微调的更多信息,请参见下文。
免责声明:发布 BERT 的团队并未为此模型编写模型卡片,因此本模型卡片由 Hugging Face 团队编写。
使用openmind接口
>>> from openmind import pipeline
>>> pipe = pipeline('question-answering', model=model_path, device=device)
>>> question = "Where do I live?"
>>> context = "My name is Tim and I live in Sweden."
>>> print(pipe(question = question, context = context))
{'score': 0.9705850481987, 'start': 29, 'end': 35, 'answer': 'Sweden'}调用example下的inference.py
cd examples
python inference.pyBERT 是一种基于 Transformer 的模型,它在大量英文语料库上以自监督的方式进行预训练。这意味着它仅在原始文本上进行预训练,无需人工对文本进行任何形式的标注(因此可以利用大量公开可用的数据),并通过自动流程从这些文本中生成输入和标签。更准确地说,它通过两个目标进行预训练:
通过这种方式,模型学习到英语语言的内部表示,这些表示可用于提取对下游任务有用的特征:例如,如果您有一个带标签的句子数据集,就可以使用 BERT 模型生成的特征作为输入来训练一个标准分类器。
该模型具有以下配置:
该模型应用作问答模型。您可以在问答流水线中使用它,或者在给定查询和上下文的情况下使用它输出原始结果。您可以在 Transformers 文档的任务摘要中查看其他使用案例。
BERT 模型在 [BookCorpus](一个包含 11,038 本未出版书籍的数据集)和 [English Wikipedia](不包括列表、表格和标题)上进行了预训练。
文本会被转换为小写,并使用WordPiece进行分词,词汇表大小为30,000。模型的输入格式如下:
[CLS] Sentence A [SEP] Sentence B [SEP]以50%的概率,句子A和句子B对应原始语料库中的两个连续句子,在其他情况下,则是语料库中的另一个随机句子。请注意,此处所指的“句子”是一段连续的文本,通常比单个句子更长。唯一的限制是,这两个“句子”组合后的总长度需少于512个token。
每个句子的掩码处理细节如下:
[MASK]。该模型在采用Pod配置的4个云TPU(共16个TPU芯片)上进行训练,训练步数为一百万步,批处理大小为256。在90%的训练步骤中,序列长度限制为128个token,其余10%的步骤则限制为512个token。使用的优化器为Adam,学习率为1e-4,$\beta_{1} = 0.9$,$\beta_{2} = 0.999$,权重衰减为0.01,学习率预热10,000步,之后进行学习率的线性衰减。
获得的结果如下:
f1 = 93.15
exact_match = 86.91