Open Sourcing BERT:自然语言处理的先进预训练技术
在自然语言处理(NLP)领域,训练数据的短缺是一大挑战。NLP 是一个多元化的领域,包含许多不同的任务,而大多数特定任务的数据集只有几千或几十万个人工标注的训练示例。然而,现代基于深度学习的 NLP 模型从大量数据中受益,当在数百万或数十亿个标注训练示例上进行训练时,性能会得到提升。
为了缩小数据差距,研究人员开发了各种使用网络上大量未标注文本进行通用语言表示模型训练的技术(称为预训练)。预训练模型随后可以在小数据的 NLP 任务上进行微调,如问答和情感分析,与从头开始在这些数据集上训练相比,能显著提高准确性。
本周,我们开源了一种新的 NLP 预训练技术,名为 Bidirectional Encoder Representations from Transformers(BERT)。通过此次发布,世界上任何人都可以在单个 Cloud TPU 上约 30 分钟内,或在单个 GPU 上几个小时内训练自己的先进问答系统(或其他多种模型)。该发布包括基于 TensorFlow 构建的源代码和一些预训练的语言表示模型。
在相关论文中,我们在 11 个 NLP 任务上展示了最先进的结果,包括竞争激烈的斯坦福问答数据集(SQuAD v1.1)。
BERT 的独特之处
BERT 建立在近期预训练上下文表示的工作基础上,包括 Semi-supervised Sequence Learning、Generative Pre-Training、ELMo 和 ULMFit。然而,与这些以前的模型不同,BERT 是第一个仅使用纯文本语料库(在本例中为维基百科)进行预训练的深度双向无监督语言表示。
预训练表示可以是无上下文的或上下文相关的,而上下文相关表示可以进一步是单向的或双向的。像 word2vec 或 GloVe 这样的无上下文模型为词汇表中的每个单词生成一个单一的词嵌入表示。例如,在“bank account”和“bank of the river”中,单词“bank”会有相同的无上下文表示。
上下文模型则根据句子中的其他单词为每个单词生成一个表示。例如,在句子“I accessed the bank account”中,单向上下文模型会根据“I accessed the”而不是“account”来表示“bank”。然而,BERT 从深度神经网络的最底层开始,使用其前后上下文(“I accessed the... account”)来表示“bank”,使其成为深度双向的。
双向性的优势
如果双向性如此强大,为什么以前没有实现呢?要理解原因,考虑到单向模型通过根据句子中的前一个单词预测每个单词来进行有效训练。然而,通过简单地根据每个单词的前一个和后一个单词来训练双向模型是不可能的,因为这会允许在多层模型中被预测的单词间接地“看到自己”。为了解决这个问题,我们使用了一种简单的技术,即在输入中屏蔽一些单词,然后双向地条件每个单词来预测被屏蔽的单词。
BERT 还通过在一个可以从任何文本语料库生成的非常简单的任务上进行预训练来学习建模句子之间的关系:给定两个句子 A 和 B,B 是语料库中 A 之后的实际下一个句子,还是一个随机句子?
使用 Cloud TPUs 进行训练
Cloud TPUs 为我们提供了快速实验、调试和调整模型的自由,这对于我们超越现有的预训练技术至关重要。由 Google 研究人员在 2017 年开发的 Transformer 模型架构,也为 BERT 的成功奠定了基础。Transformer 在我们的开源发布以及 tensor2tensor 库中实现。
BERT 的结果
为了评估性能,我们将 BERT 与其他最先进的 NLP 系统进行了比较。重要的是,BERT 在几乎没有对神经网络架构进行任何特定任务更改的情况下实现了所有结果。在 SQuAD v1.1 上,BERT 实现了 93.2%的 F1 分数(一种准确性度量),超过了之前的最先进分数 91.6%和人类水平分数 91.2%。
BERT 还在非常具有挑战性的 GLUE 基准上提高了 7.6%的绝对性能,这是一组 9 个不同的自然语言理解(NLU)任务。这些任务中的人工标注训练数据量从 2,500 个示例到 400,000 个示例不等,BERT 在所有这些任务上都大大提高了最先进的准确性。
让 BERT 为您服务
我们发布的模型可以在几个小时或更短的时间内对各种 NLP 任务进行微调。开源发布还包括运行预训练的代码,尽管我们认为大多数使用 BERT 的 NLP 研究人员永远不需要从头开始预训练自己的模型。
我们今天发布的 BERT 模型仅适用于英语,但我们希望在不久的将来发布在多种语言上进行预训练的模型。开源的 TensorFlow 实现和指向预训练 BERT 模型的指针可以在 找到。或者,您可以通过 Colab 上的“BERT FineTuning with Cloud TPUs”笔记本开始使用 BERT。您还可以阅读我们的论文“BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding”以获取更多详细信息。