人人都会AI编程

4.2 掩码语言建模(MLM)与编码器架构的适配场景

更新时间:2026-07-09

如果说 4.1 节的因果语言建模(CLM)是 GPT 路线、解码器-only 架构的灵魂,那么掩码语言建模(MLM)则是 BERT 路线、编码器架构的根基。在 1.2 节的历史回顾中,我们曾提到 2018 年 BERT 与 GPT-1 的“路线分野”;在 3.7 节中,我们又指出当前主流大模型普遍选择了解码器-only 架构。这很容易给人一种错觉:MLM 已经是过时的技术。

但事实恰恰相反。MLM 并未被淘汰,它只是退回到了自己最擅长的战场。 在现代 AI 系统的技术栈中,基于 MLM 训练的编码器模型依然承担着大量“幕后工作”。理解它的原理与边界,是你在设计 RAG 系统、语义检索或信息抽取方案时不可绕过的一环。


一、MLM 的工作原理:双向“完形填空”

与 CLM 的“从左到右预测下一个 Token”不同,MLM(Masked Language Modeling)玩的是一个双向的完形填空游戏

具体过程如下:

  1. 掩码:在输入文本中,随机挑选约 15% 的 Token,用 [MASK] 特殊符号替换(或用随机词、保持原词等策略混合);
  2. 编码:文本通过 Transformer 的双向注意力层(Bidirectional Self-Attention),每个位置都能看到左右两边的完整上下文;
  3. 预测:模型仅针对那些被掩码的位置,输出预测——即在给定上下文的条件下,被盖住的词原本是什么。

从技术本质上看,MLM 属于去噪自编码器(Denoising Autoencoder):输入是带噪声(被挖空)的句子,输出是还原后的完整语义。这种训练目标迫使模型不只要懂“上文怎么接下文”,还要懂“下文如何反过来限定上文的含义”。


二、编码器架构的技术特征

BERT 及其后继者(RoBERTa、DeBERTa、ALBERT 等)采用 Transformer 的 Encoder 栈(3.2 节),与 GPT 的 Decoder 栈存在三个关键差异:

| 维度 | 编码器(BERT-style) | 解码器(GPT-style) |
|------|---------------------|-------------------|
| 注意力方向 | 双向(Bidirectional):每个 Token 可 attend 到所有位置 | 因果/单向(Causal):每个 Token 只能 attend 到左侧 |
| 训练目标 | MLM + NSP(下一句预测,后续被简化) | CLM(Next Token Prediction) |
| 输出形态 | 上下文向量(Contextualized Embedding) | 自回归生成序列 |

核心后果:编码器天然适合表示学习(Representation Learning),而解码器天然适合序列生成(Sequence Generation)


三、为什么“大语言模型”主流选择了 CLM,而非 MLM?

在 3.7 节中我们提到,当前 GPT、Llama、Qwen、Claude 等主流大模型清一色采用解码器-only 架构。这并非因为 MLM 效果差,而是由大模型的核心交付形态决定的:

  1. 统一生成接口:CLM 只练一个“续写”技能,却可以通过 Prompt 包揽问答、摘要、翻译、代码等多种任务。用户需要的正是“给一段指令,返回一段文本”的交互方式。
  2. Scaling 与涌现:当参数规模突破百亿后,解码器-only 模型在 Few-shot / Zero-shot 场景下的涌现能力(如 6.1 节的上下文学习)更为显著。
  3. 工程一致性:训练、微调、推理使用同一套自回归逻辑,系统复杂度更低。

但这并不意味着 MLM 失去了价值。恰恰相反,在“不需要生成华丽文本,只需要精准理解语义”的场景中,MLM 编码器往往效率更高、成本更低、效果更可靠。


四、MLM 与编码器架构的五大适配场景

场景 1:语义检索与 RAG 的向量表示(最主流的当代用途)

这是目前 MLM 编码器最繁忙的“工作岗位”。在 RAG(检索增强生成)系统中,第一步就是把海量文档切成 Chunk,并转成向量存入向量数据库。

承担这一任务的 Embedding 模型(如 BGE、GTE、E5、OpenAI 的 text-embedding-3 等),绝大多数底层都是基于 MLM 思想训练的编码器或其变体。原因很直接:

  • 双向注意力能充分捕捉 query 与 document 中关键词的双向依赖;
  • 对比学习(Contrastive Learning)与 MLM 结合,能让语义相近的句子在向量空间中距离更近;
  • 相比用千亿参数解码器做嵌入,轻量级编码器(几十兆到几十亿参数)的推理成本极低,适合高并发检索。

实用建议:如果你在做企业知识库问答,不要直接用 GPT-4 做“全文语义匹配”,而应该用一个基于 MLM 的 Embedding 模型做召回,再用 GPT-4 做最终的生成总结。

场景 2:信息抽取与序列标注(NER、关系抽取、事件抽取)

在医疗、金融、法律等垂直领域,从非结构化文本中精准抽取实体(如疾病名、金额、法条)是刚需。

这类任务的本质是对每个 Token 进行分类(BIO 标注法),而非生成一段新文本。编码器+双向注意力的设计,能让模型看到实体词左右两边的修饰语和边界标志,准确率显著高于让生成模型“口述”抽取结果。

实用建议:用 Bert-CRF、RoBERTa-Linear 等编码器+标注头的经典组合,往往比用 Prompt 驱动大生成模型做抽取更稳定、更可控。

场景 3:文本分类与语义匹配

情感分析、垃圾邮件识别、重复内容检测、论文查重、客服对话分类……这些“输入一段文本,输出一个标签或一个相似度分数”的任务,正是 BERT 家族的舒适区。

编码器输出 [CLS] 位置的向量(或所有 Token 的 Pooling 向量),接一个轻量的 MLP 分类头,即可快速微调得到工业级分类器。相比调用大模型 API 做分类,本地部署的小编码器推理延迟在毫秒级,且无需联网。

场景 4:代码理解与表示(CodeBERT、GraphCodeBERT)

在软件开发场景中,除了生成代码(用 Copilot 这类生成模型),还有大量“理解代码”的需求:代码搜索、漏洞检测、克隆检测、代码摘要。

代码的结构化特征(如 AST、数据流)与文本不同,但核心训练目标仍大量借鉴 MLM:随机 mask 代码中的标识符、API 调用或代码 token,让模型通过上下文还原。这种双向理解能力,使得编码器模型能精准捕捉跨函数的依赖关系。

场景 5:多语言与科学文本的深层编码

在多语言对齐(XLM-RoBERTa)或科学文献挖掘(SciBERT、PubMedBERT)中,MLM 训练的编码器通过领域语料预训练,能学到比通用生成模型更密集、更专业的领域向量表示。这些表示可作为下游领域大模型的“知识底座”。


五、现代演进:从 BERT 到 T5/BART 的 span corruption

MLM 思想并未停留在“随机 mask 单个词”的原始形态。在 Encoder-Decoder 架构(3.2 节)中,它被升级为更强大的变体:

  • Span Corruption(T5):不是 mask 单个 Token,而是 mask 连续的一段文本(span),让解码器将其还原。这使得 T5 能同时利用编码器的双向理解和解码器的生成能力,适合做翻译、摘要等“理解+生成”的转换任务。
  • Prefix LM / 去噪(BART):结合多种噪声策略(删词、换序、旋转),让编码器做更鲁棒的表示学习,解码器做还原生成。

这类 Encoder-Decoder 模型虽然在“纯对话大模型”的浪潮中不如 GPT 路线耀眼,但在机器翻译、文案润色、数据到文本(Data-to-Text)等结构化转换任务中仍极具竞争力。


六、小结:如何在你的技术栈中安放 MLM?

在大模型技术体系里,CLM(解码器-only)是站在前台的明星,MLM(编码器)则是后台的骨干。两者的关系不是替代,而是分工:

| 需求 | 推荐架构 | 训练目标 |
|------|---------|---------|
| 开放域对话、创意写作、代码生成 | 解码器-only(GPT/Llama) | CLM |
| 语义检索、向量数据库 Embedding | 编码器(BERT/RoBERTa 系列) | MLM + 对比学习 |
| 实体抽取、文本分类、语义匹配 | 编码器 + 任务头 | MLM 预训练 + 微调 |
| 翻译、摘要、结构化数据生成 | 编码器-解码器(T5/BART) | Span Corruption / MLM 变体 |

关键 takeaway

  • MLM 的核心优势是双向上下文建模,代价是不能直接做自回归生成
  • 如果你的系统需要“精准理解”而非“开放生成”,或者在预算有限的情况下需要高并发、低延迟的语义编码,基于 MLM 的编码器模型仍是首选;
  • 在 4.1 与 4.2 节之间,本质上划分了现代 NLP 的两大能力象限:生成靠 CLM,理解靠 MLM。而真正成熟的生产系统,往往是两者拼接(如 RAG = MLM 编码器做检索 + CLM 解码器做生成)。

在 4.3 节中,我们将进入训练过程的数学核心——交叉熵损失函数。无论是 CLM 还是 MLM,最终都要靠这个“裁判函数”来告诉模型:你预测的下一个词(或被 mask 的词),到底离正确答案有多远。