下面来详细解释一下 BERT 的两个核心训练策略(或称为预训练任务):Masked Language Model(MLM,掩码语言模型) 和 Next Sentence Prediction(NSP,下一句预测)

这两个任务是 BERT 在没有人工标注的海量文本上学习语言知识的关键。


1. Masked Language Model(MLM,掩码语言模型)

这是 BERT 能够实现“双向”表示的最核心的训练策略。

背景:为什么需要 MLM?

在 BERT 之前,传统的语言模型通常是单向的(比如 GPT-1,只能从左到右看),或者只是将两个单向模型进行浅层拼接。这是因为如果让模型在训练时就能双向地看到所有词,那么预测某个词就变成了“看图说话”,模型只需复制上下文即可,无法真正学习到语言的内在规律。

MLM 的核心思想:完形填空

MLM 的灵感来源于中学英语的“完形填空”。它的操作非常简单:

  1. 随机掩盖(Mask):在训练时,对于输入的文本序列,随机选择 15% 的词元(Token)。然后对这些被选中的词元进行如下操作(这是一个细分的策略):

    • 80% 的概率:将其替换为特殊的 [MASK] 标记。

    • 10% 的概率:将其替换为一个随机的其他词元。

    • 10% 的概率:保持不变(即还是用原来的词元)。

  2. 预测(Predict):模型的任务是根据序列中其他所有未被掩盖的词(即上下文),来预测这些被选中位置原本是什么词。

为什么这样做能实现“双向”?

要正确预测被 [MASK] 掩盖的词,模型必须同时利用这个词的左边和右边的所有信息。

  • 例子:句子“我 [MASK] 苹果”。

    • 模型看到左边的“我”和右边的“苹果”,就能推断出中间这个词很可能是一个动词,而且大概率是“吃”、“摘”、“买”等与“我”和“苹果”都相关的词。

    • 它必须融合双向的语境信息才能做出准确预测。

为什么要设计 80-10-10 的策略?(即为什么要引入随机替换和保持不变)

这是一个非常巧妙的设计,主要是为了解决 预训练-微调阶段的不一致性(Discrepancy)

  • 问题:在预训练阶段,模型会频繁地看到 [MASK] 标记。但在后续的下游任务微调(Fine-tuning)阶段,输入的数据中是完全没有 [MASK] 标记的。这会导致模型在微调时感到不适应。

  • 解决方案

    • 80% [MASK]:让模型主要学习根据上下文预测被掩盖的词,这是主要目标。

    • 10% 随机词:迫使模型必须学习依赖于上下文的真实表示,而不是简单地记住被掩盖位置的统计信息。如果模型发现当前位置是一个随机词(比如“我 足球 苹果”),它必须通过上下文判断“足球”这个词在这里是不合理的,并在预测时纠正它。这增强了模型的鲁棒性。

    • 10% 保持不变:这会让模型在预测时,把注意力更多地放在上下文上,而不是仅仅关注被掩盖的位置本身。这也缓解了预训练和微调阶段的差异,因为在微调时,所有词都是“保持不变”的。


2. Next Sentence Prediction(NSP,下一句预测)

这个任务是为了让 BERT 能够理解两个句子之间的关系,特别是对于需要句子级别理解的下游任务(如问答、自然语言推理)至关重要。

核心思想:判断两句话是否连续

在预训练时,为 BERT 构建如下的输入数据:

  • 输入:由两个句子 A 和 B 组成的句子对,中间用 [SEP] 标记分隔,开头加上 [CLS] 标记。

    • 例如:[CLS] 今天天气真好 [SEP] 我们一起去公园吧 [SEP]

  • 正例(50% 概率):句子 B 是句子 A 在原文中真实的下一句。标签为 IsNext

  • 负例(50% 概率):句子 B 是从整个语料库中随机抽取的其他句子,与句子 A 无关。标签为 NotNext

模型如何完成 NSP 任务?

BERT 取输入序列中第一个特殊标记 [CLS] 的最终输出向量。因为 [CLS] 的表示经过了所有层的双向交互,理论上汇聚了整个输入句子对的聚合信息。在这个向量之上,添加一个简单的二分类层,来预测 IsNext 或 NotNext

NSP 的作用

通过这个看似简单的二分类任务,BERT 学会了:

  • 篇章连贯性:理解句子在逻辑和主题上的连贯性。

  • 指代关系:理解句子 B 中的代词(如“我们”)是如何指代句子 A 中的人或物(如“我”)的。

  • 句子间的关系:为后续的问答(问题与段落的匹配)、推理(前提与假设的关系)等任务打下了坚实的基础。


总结:MLM 和 NSP 如何协同工作?

可以把这两个任务看作是 BERT 在预训练阶段的两个“导师”,它们从不同层面指导模型学习:

任务 学习层面 目标 类比
MLM 词元级别 学习词语在双向上下文中的准确含义,掌握语法和语义知识。 相当于让学生在句子层面做完形填空,理解每个词的用法。
NSP 句子级别 学习两个句子之间的逻辑和语义关系,掌握篇章理解能力。 相当于让学生判断两段话是否逻辑连贯,来自同一篇文章。

通过同时优化这两个任务的损失函数,BERT 的 Transformer 层最终被训练成了一个强大的特征提取器:它不仅知道每个词在句子中是什么意思(来自 MLM),还知道句子在整个篇章中扮演什么角色(来自 NSP)。这就是 BERT 在各种 NLP 任务上都能取得巨大成功的基础。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐