BERT 101 – 解析最先进的NLP模型

BERT 101 - Analyzing the State-of-the-Art NLP Model

BERT 是什么?

BERT,全称为双向编码器表示来自 Transformer,是一种用于自然语言处理的机器学习(ML)模型。它由 Google AI Language 的研究人员于2018年开发,并作为一种瑞士军刀解决方案,适用于11多个最常见的语言任务,例如情感分析和命名实体识别。

长期以来,语言对于计算机来说一直很难“理解”。当然,计算机可以收集、存储和阅读文本输入,但它们缺乏基本的语言背景。

于是,自然语言处理(NLP)应运而生:这是一门旨在使计算机能够阅读、分析、解释和从文本和口语中提取含义的人工智能领域。这种实践结合了语言学、统计学和机器学习,以帮助计算机“理解”人类语言。

传统上,各个独立的 NLP 任务通常通过为每个具体任务创建独立的模型来解决。直到 BERT 出现!

BERT 通过解决11多个最常见的 NLP 任务(并且比之前的模型更好),彻底改变了 NLP 领域,使其成为全能的 NLP 专家。

在本指南中,您将了解 BERT 是什么,它与众不同的地方,以及如何开始使用 BERT:

  1. BERT 用于什么?
  2. BERT 如何工作?
  3. BERT 模型的大小和架构
  4. BERT 在常见语言任务上的性能
  5. 深度学习的环境影响
  6. BERT 的开源力量
  7. 如何开始使用 BERT
  8. BERT 常见问题解答
  9. 结论

让我们开始吧! 🚀

1. BERT 用于什么?

BERT 可以用于各种语言任务:

  • 可以确定一部电影的评论是积极的还是消极的。(情感分析)
  • 帮助聊天机器人回答您的问题。(问答)
  • 在写电子邮件(Gmail)时预测您的文本。(文本预测)
  • 只需几个句子输入,就可以写一篇关于任何主题的文章。(文本生成)
  • 可以快速总结冗长的法律合同。(摘要)
  • 可以根据周围的文本区分具有多个含义的词语(例如“bank”)。(多义词消歧)

还有更多语言/NLP 任务 + 每个任务背后的更多细节。

有趣的事实:您几乎每天都在与 NLP(很可能是 BERT)进行互动!

NLP 背后有 Google 翻译、语音助手(Alexa,Siri 等)、聊天机器人、Google 搜索、语音操作的 GPS 等等。


1.1 BERT 示例

从2020年11月起,BERT 帮助 Google 更好地展示(英文)搜索结果。

以下是 BERT 如何帮助 Google 更好地理解特定搜索的示例:

资源

在使用 BERT 之前,Google 展示了有关如何取得处方药的信息。

在使用 BERT 之后,Google 理解“为他人”与代取某人的处方药有关,搜索结果现在有助于回答这个问题。


2. BERT 如何工作?

BERT 通过利用以下内容来工作:

2.1 大量的训练数据

33亿个单词的庞大数据集为 BERT 的持续成功做出了贡献。

BERT 主要在维基百科(约25亿个单词)和谷歌的 BooksCorpus(约8亿个单词)上进行了训练。这些大型信息数据集不仅有助于 BERT 对英语的深度理解,还有助于对我们的世界有深入的了解!🚀

对这样大的数据集进行训练需要很长时间。BERT 的训练得益于新颖的 Transformer 架构,并通过使用 TPUs(Tensor Processing Units – 谷歌专为大型 ML 模型设计的定制电路)加速。64个 TPU 在4天的时间内训练了 BERT。

注意:由于使用 BERT 在较小的计算环境(如手机和个人电脑)中越来越普遍,对较小的 BERT 模型的需求也在增加。2020年3月发布了23个较小的 BERT 模型。DistilBERT 提供了一个更轻量级的 BERT 版本;运行速度比 BERT 快60%,同时保持了超过95%的性能。

2.2 什么是遮蔽语言模型?

遮蔽语言模型通过对句子中的一个单词进行遮蔽(隐藏),强制BERT在双向上使用覆盖单词两侧的单词来预测被遮蔽的单词,从而实现了从文本中进行双向学习。这在以前是从未做过的!

有趣的事实:我们人类天生就会这样做!

遮蔽语言模型示例:

想象一下,你的朋友在冰川国家公园露营时给你打电话,他们的信号开始不稳定。在通话中断之前,你听到的最后一句话是:

朋友:“天哪!我在钓鱼,有一条巨大的鳟鱼刚刚[空白]了我的鱼线!”

你能猜到你的朋友说了什么吗?

通过将缺失的单词的前后单词作为上下文线索(以及你对钓鱼工作方式的历史知识),你自然能够预测出缺失的单词。你猜到你的朋友说的是“断了”吗?我们也是这样预测的,但即使是我们人类也会在一些方法上出现错误。

注意:这就是为什么你经常会看到与语言模型的性能得分进行“人类表现”比较的原因。是的,像BERT这样的新模型可以比人类更准确!🤯

你刚才用于填充上述[空白]单词的双向方法与BERT实现最先进准确性的方法类似。在训练过程中,随机隐藏了15%的标记化单词,BERT的任务是正确预测隐藏的单词。因此,直接教授模型关于英语语言(以及我们使用的单词)的知识。这不是很棒吗?

尝试一下BERT的遮蔽预测:

9. 结论

BERT是一个高度复杂和先进的语言模型,帮助人们自动化语言理解。它能够实现最先进的性能,这得益于对海量数据进行训练,并利用Transformer架构来革新自然语言处理领域。

感谢BERT的开源库,以及令人难以置信的人工智能社区不断改进和分享新的BERT模型,未触及的自然语言处理里程碑的未来看起来非常光明。

你将用BERT创造什么?

学习如何为您特定的用例优化BERT 🤗