BERT 101: 理解Transformer的双向编码器表示

BERT(双向编码器表示来自Transformer)是一种用于自然语言处理(NLP)的机器学习模型,可作为超过11种常见语言任务的通用解决方案。由Google AI Language在2018年开发,BERT通过提供单一模型在广泛应用中超越以前任务特定模型,彻底改变了该领域。

核心能力和使用场景

BERT旨在处理各种NLP任务,从情感分析到复杂的阅读理解。主要应用包括:

  • 情感分析: 确定文本的极性(正面或负面),如电影评论。
  • 问答: 为聊天机器人提供准确回答用户查询的能力。
  • 文本预测和生成: 预测电子邮件中的后续文本(例如Gmail)或从短输入生成文章。
  • 摘要: 将长文档(如法律合同)浓缩为较短的摘要。
  • 多义性消解: 根据上下文区分具有多种含义的词(例如“bank”)。

自2020年11月起,BERT已集成到Google Search中,以提高对英文查询的理解。例如,它使搜索引擎能够识别处方相关搜索中的短语“for someone”指的是为他人取药,而不仅仅是填写处方。

技术架构和训练

BERT的性能得益于其使用Transformer架构以及两步训练过程:在巨大无标签数据上进行无监督预训练,随后在少量人工标注数据上进行微调。

训练数据和基础设施

BERT在33亿词的数据集上进行训练,包括维基百科(约25亿词)和Google的BooksCorpus(约8亿词)。为了处理此数据量,Google使用了张量处理单元(TPU)。BERTbase在4个TPU上训练了4天,而BERTlarge在16个TPU上训练了4天。

掩码语言模型(MLM)

BERT采用掩码语言模型(MLM)来强制双向学习。在训练过程中,随机15%的分词词被隐藏(掩码),模型必须利用掩码左右两侧的上下文来预测这些词。这与之前通常线性读取文本的模型不同。

下一句预测(NSP)

为了理解句子之间的关系,BERT使用下一句预测(NSP)。模型在正确句子对(第二句紧随第一句)和随机句子对的50/50混合上进行训练,以预测给定句子是否在逻辑上紧随另一句。

Transformer编码器

BERT使用Transformer架构的编码器部分,该部分利用注意力机制对词语分配不同权重,聚焦关键信息同时忽略无关数据。与某些其他Transformer模型不同,BERT不使用解码器。

模型变体和规格

BERT提供不同规模以在性能和计算需求之间取得平衡。

模型 Transformer层数 隐藏大小 注意力头数 参数量 处理 训练时长
BERTbase 12 768 12 110M 4 TPUs 4 天
BERTlarge 24 1024 16 340M 16 TPUs 4 天

为了满足如手机等小型计算环境的需求,2020年3月发布了23个更小的BERT模型。此外,DistilBERT提供了一个更轻量的版本,运行速度快60%,同时保持超过95%的BERT性能。

性能基准

BERT在11项常见NLP任务上达到了最先进的准确率,并且是首个在多个基准上超越人类水平表现的模型:

  • SQuAD(斯坦福问答数据集): 包含108k个问题的阅读理解数据集。BERT的表现优于之前的最先进模型和人类。
  • SWAG(含对抗生成的情境): 包含113k个选择题的常识推理数据集。BERT在此也超越了人类水平。
  • GLUE(通用语言理解评估): 由九项困难任务组成的基准,用于比较测量和分析语言模型。

开源影响和伦理考量

BERT的源代码在GitHub上公开可访问,使开发者能够为特定用例微调模型,而无需承担巨大的初始预训练成本。这种民主化导致了数千个专门的开源模型,包括用于Twitter情感分析、临床笔记分析和有毒评论检测的模型。

环境影响

训练大型模型在计算上昂贵且具有显著的碳足迹。开源共享预训练模型被呈现为降低AI社区整体计算成本和环境影响的主要方法。

模型偏见

BERT表现出其训练数据中固有的偏见。例如,在提示"The man worked as a [MASK]"中预测职业时,BERT建议的职业如木匠和机械师。对于提示"The woman worked as a [MASK]",它建议的职业如护士、服务员和女仆,展示了职业角色中的明显性别偏见。

Sources

相关

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch