详细探讨大型语言模型(LLM)核心预训练任务之一:掩码语言建模(Masked Language Modeling, MLM)。这是驱动像 BERT 及其众多变体(如 RoBERTa, ALBERT, DistilBERT)取得突破性成功的关键技术。

核心思想: 人为地“破坏”输入文本(随机掩盖一些单词/子词),然后训练模型根据双向上下文来预测被掩盖的原始内容。

MLM 的工作原理与步骤

  1. 输入文本准备:

    • 取一个句子或一段文本,例如:“The quick brown fox jumps over the lazy dog.”

  2. 随机掩码 (Masking):

    • 随机选择: 随机选择输入序列中一定比例(通常为 15%)的 token(单词或子词)进行“掩盖”。

    • 掩盖策略 (三种主要方式,随机应用):

      • 替换为 [MASK] 标记 (80% 概率): 这是最直接的方式,明确告诉模型这里有东西被掩盖了,需要预测。例如:“The quick brown [MASK] jumps over the lazy dog.”

      • 替换为随机 token (10% 概率): 用词汇表中的另一个随机 token 替换选中的 token。这迫使模型不仅要理解上下文以识别错误,还要预测正确的词。例如:“The quick brown *apple* jumps over the lazy dog.” (假设 apple 是随机选中的)

      • 保持原 token 不变 (10% 概率): 虽然 token 被“选中”,但实际上没有被改变。这有助于模型在微调阶段更好地处理那些没有 [MASK] 标记的真实数据,并让模型倾向于“相信”看到的词是正确的。例如:“The quick brown fox jumps over the lazy dog.” (选中的 fox 没变,但模型在训练时会被要求预测它)。

    • 目的: 引入噪声和不确定性,防止模型简单地记住输入或走捷径。10% 的随机替换和 10% 的保留原词是为了减少预训练(大量 [MASK])和微调(无 [MASK])之间的差异。

  3. 模型输入:

    • 将经过掩码处理后的句子,加上必要的特殊标记(如 [CLS] 用于分类,[SEP] 用于分隔句子),输入到 Transformer 编码器(通常是多层堆叠的)中。

    • 输入表示 = 词嵌入 + 位置编码 + (可选的)段落嵌入等。

  4. 双向上下文编码:

    • Transformer 编码器利用 Self-Attention 机制,处理掩码后的序列。

    • 关键点: Self-Attention 允许序列中的每个 token(包括 [MASK])同时关注序列中的所有其他 token(左边和右边)。这是 MLM 与传统的自回归语言模型(如 GPT 使用的 CLM)最核心的区别。模型能看到被掩盖位置两侧的全部上下文信息!

    • 编码器输出每个输入位置(包括被掩盖位置)的上下文相关向量表示。

  5. 预测被掩码的 token:

    • 对于每个被掩盖的位置 i(即输入是 [MASK]、随机 token 或未改变原 token 的位置):

      • 取出编码器在该位置输出的上下文向量表示 h_i

      • 将 h_i 通过一个(通常是线性的)输出层,映射到整个词汇表大小的向量上。

      • 对这个向量应用 softmax 函数,得到词汇表中每个 token 作为该位置原始 token 的预测概率分布。

    • 公式简化表示: P(word_i | context_all) = softmax(W * h_i + b)

  6. 损失计算与优化:

    • 损失函数: 对于所有被掩盖的位置(无论它们是被替换为 [MASK]、随机 token 还是保留了原 token),计算模型预测的概率分布与真实的原始 token 之间的交叉熵损失 (Cross-Entropy Loss)

    • 优化: 通过反向传播算法计算损失函数关于模型所有参数(Transformer 权重、嵌入层、输出层权重等)的梯度,并使用优化器(如 AdamW)更新参数,以最小化预测损失。目标就是让模型更准确地根据上下文猜出被掩盖的词。

MLM 的核心优势与意义

  1. 利用双向上下文 (Bidirectional Context): 这是 MLM 最革命性的贡献。传统的从左到右或从右到左的语言模型只能利用单向上下文(预测下一个词只看左边词,预测上一个词只看右边词)。MLM 让模型在预测每个被掩盖的词时,都能同时看到它左边和右边所有的词,从而学习到更丰富、更深刻的词语义和句法关系。这对于理解歧义、指代、长距离依赖等至关重要。

  2. 深度上下文词表示: 通过预测被掩盖词的任务,模型被迫学习为输入序列中的每个 token 生成一个高质量的、融合了全局上下文信息的向量表示 (h_i)。这些表示捕捉了词语在特定语境下的含义(一词多义),是下游任务(如分类、问答、NER)的强大基础特征。

  3. 自监督学习 (Self-Supervised Learning): MLM 不需要人工标注的数据!它直接从海量无标签文本中生成训练样本(掩盖词本身就是“标签”)。这使得利用互联网规模的文本数据进行预训练成为可能。

  4. 训练高效: 相比于自回归模型逐个预测 token,MLM 在一次前向传播中可以预测所有被掩盖的 token,计算上更高效(尽管掩盖比例限制了同时预测的数量)。

  5. 为下游任务奠定基础: 在 MLM 任务上预训练得到的模型(如 BERT),其学到的通用语言知识和上下文表示能力,可以通过简单的微调(Fine-tuning)或提示(Prompting)快速迁移到各种各样的 NLP 任务上,并取得显著性能提升。

MLM 的挑战与变体

  1. 预训练-微调不一致性: 预训练时大量看到 [MASK] 标记,而下游任务微调和推理时输入是真实的、没有 [MASK] 的文本。上文提到的 10% 随机替换和 10% 保留原词的策略就是为了缓解这个问题,但不能完全消除。像 ELECTRA 这样的模型提出了替代方案(Replaced Token Detection)。

  2. 预测独立性: MLM 假设被掩盖的 token 是相互独立的(模型独立预测每个掩盖位置)。但在现实中,被掩盖的词之间可能存在依赖关系(例如,连续两个词被掩盖)。一些改进尝试建模这种依赖。

  3. 掩盖策略优化: 掩盖比例(15%)、选择哪些词掩盖(均匀随机 vs 基于重要性)、掩盖连续片段(Whole Word Masking, WWM)或实体等策略都经过了研究并证明有效(如 RoBERTa 采用动态掩码和 WWM)。

  4. 效率提升: MLM 只计算被掩盖位置的损失。像 BERT 这样只使用编码器的模型,其 MLM 预训练通常比 GPT 这类解码器模型的 CLM 预训练更快收敛。

MLM 与 CLM 的对比

特性 掩码语言建模 (MLM - BERT 风格) 因果语言建模 (CLM - GPT 风格)
上下文方向 双向 (可同时看左右) 单向 (只能看左侧/历史)
模型架构 (仅)编码器 (仅)解码器
训练目标 预测输入序列中被随机掩盖/替换的词 预测序列中的下一个词 (自回归)
核心优势 深度上下文理解,一词多义表示能力强 天然适合文本生成任务
典型代表 BERT, RoBERTa GPT 系列, LLaMA
预训练效率 相对较高 (一次预测多个掩盖词) 相对较低 (需逐个预测)
微调任务 更擅长理解类任务 (分类、抽取、问答) 更擅长生成类任务

总结

MLM 是一种强大的、自监督的预训练目标,它通过随机掩盖输入文本的部分内容,并强制模型利用双向上下文信息来预测被掩盖的原始词。这种方法的核心价值在于:

  1. 解锁双向上下文理解能力: 使模型能够同时考虑词语左右两侧的信息,学习到更深层次、更准确的语义表示。

  2. 生成高质量的上下文词向量: 这些向量是各种 NLP 任务的强大基础。

  3. 实现大规模自监督学习: 利用海量无标签文本数据训练强大的通用语言模型。

  4. 推动预训练-微调范式: 成为 BERT 及类似模型取得巨大成功的关键,奠定了现代 NLP 的基础。

尽管后续出现了更高效的预训练任务(如 ELECTRA 的 RTD),MLM 作为一项开创性的技术,其核心思想——利用双向上下文进行深度语言表示学习——仍然是 LLM 预训练领域的重要基石。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐