09 语言模型训练目标:MLM、CLM、Seq2Seq LM 有什么区别?

在前面的文章中,我们已经讲过 Transformer Encoder、Transformer Decoder、以及位置编码等核心内容。

现在我们需要进一步补上一个非常关键的问题:

大语言模型到底是怎么训练出来的?

或者说:

不同模型为什么会形成不同能力?

例如:

复制代码
BERT 更擅长文本理解、分类、匹配、抽取
GPT 更擅长文本生成、对话、续写、代码
T5 / BART 更擅长输入到输出的转换任务

这些差异不仅来自模型结构,也来自 训练目标

在预训练语言模型中,最常见的训练目标主要有三类:

复制代码
MLM:Masked Language Modeling,掩码语言模型
CLM:Causal Language Modeling,因果语言模型
Seq2Seq LM:Sequence-to-Sequence Language Modeling,序列到序列语言模型

它们分别对应三条重要路线:

复制代码
BERT 路线:MLM
GPT 路线:CLM
T5 / BART 路线:Seq2Seq LM

这一篇我们就系统讲清楚:

复制代码
1. 什么是 MLM?
2. 什么是 CLM?
3. 什么是 Seq2Seq LM?
4. 三者分别适合什么模型结构?
5. 为什么 BERT 使用 MLM,GPT 使用 CLM,T5/BART 使用 Seq2Seq LM?
6. 三种目标如何影响模型能力?

一、为什么训练目标很重要?

语言模型训练的本质是:

设计一个任务,让模型从大量文本中学习语言规律。

但是,不同训练任务会让模型学到不同能力。

例如,同样一句话:

复制代码
我 今天 去 学校 上课

不同训练目标会提出不同问题。

MLM 会问:

复制代码
我 今天 去 [MASK] 上课
请预测 [MASK] 是什么?

CLM 会问:

复制代码
我 今天 去
请预测下一个 token 是什么?

Seq2Seq LM 会问:

复制代码
输入:我今天去学校上课
输出:I went to school for class today

或者:

复制代码
输入:一篇文章
输出:这篇文章的摘要

可以看到,虽然都在处理文本,但任务形式完全不同。

训练目标决定了模型学习时能看到什么信息,也决定了模型最终更擅长什么任务。

简单来说:

复制代码
MLM:让模型学会双向理解
CLM:让模型学会从左到右生成
Seq2Seq LM:让模型学会根据输入生成输出

这也是 BERT、GPT、T5/BART 能力差异的根本来源之一。


二、MLM:Masked Language Modeling

MLM 的全称是:

复制代码
Masked Language Modeling

中文可以叫:

复制代码
掩码语言模型

它的核心思想是:

随机遮住输入句子中的一部分 token,让模型根据左右上下文预测被遮住的 token。

例如原始句子是:

复制代码
我 今天 去 学校 上课

经过 mask 后变成:

复制代码
我 今天 去 [MASK] 上课

模型要预测:

复制代码
学校

这里最关键的是:模型可以同时看到左边和右边。

复制代码
左边:我 今天 去
右边:上课

因此,MLM 非常适合训练双向语言表示。


三、MLM 的训练目标

假设输入序列为:

随机选择一部分位置作为 mask 集合:

模型看到的是被遮挡后的输入:

MLM 的训练目标是预测被遮住的 token:

其中:

  • :被 mask 的位置集合;

  • :第 i个位置的真实 token;

  • :遮挡后的输入序列;

  • 模型只在被 mask 的位置上计算损失。

这点非常重要。MLM 不是对所有位置都计算损失,而是只对被选中的 mask 位置计算损失。

例如:

复制代码
输入:我 今天 去 [MASK] 上课
标签:学校

模型只需要在 [MASK] 位置预测"学校"。


四、BERT 中的 MLM 如何构造?

BERT 原论文中,并不是把所有被选中的 token 都替换成 [MASK]。它会随机选择 15% 的 token 作为预测目标。对于这些被选中的 token:

复制代码
80% 替换成 [MASK]
10% 替换成随机 token
10% 保持原 token 不变

例如原句:

复制代码
我 今天 去 学校 上课

可能变成:

复制代码
我 今天 去 [MASK] 上课

也可能变成:

复制代码
我 今天 去 苹果 上课

也可能保持:

复制代码
我 今天 去 学校 上课

但是无论输入如何变化,模型的目标都是预测原始 token:

复制代码
学校

为什么不全部替换成 [MASK]?因为下游任务中通常不会出现 [MASK]。如果预训练时模型总是看到 [MASK],而下游微调时看不到 [MASK],就会产生预训练和微调之间的不一致。所以 BERT 使用了 80/10/10 的策略。


五、MLM 适合什么模型结构?

MLM 最适合:

复制代码
Encoder-only 模型

典型代表是:

复制代码
BERT
RoBERTa
ALBERT
DeBERTa

原因很简单:

MLM 需要模型同时利用左右上下文,而 Encoder 的 Self-Attention 正好是双向的。

在 Encoder 中,每个 token 可以看到整个输入序列:

复制代码
左边 token
自己
右边 token

所以它非常适合做:

复制代码
根据完整上下文预测被遮住 token

这也是 BERT 使用 Transformer Encoder 的根本原因。


六、MLM 的优势和局限

MLM 的优势是:

复制代码
可以学习双向上下文表示
适合理解任务
适合分类、匹配、抽取、序列标注

例如:

复制代码
情感分类
自然语言推理
语义匹配
命名实体识别
阅读理解
文本检索

这些任务通常需要理解完整输入,而不是从左到右生成文本。但是 MLM 也有局限。第一,MLM 不适合直接生成长文本。因为 BERT 不是自回归模型,它不是按照:

复制代码
一个 token 一个 token 生成

的方式训练的。第二,MLM 存在 [MASK] 不一致问题。

预训练时有 [MASK],但下游任务中通常没有 [MASK]

第三,MLM 只在部分 token 上计算损失。

例如只 mask 15% token,那么每次训练真正参与预测的 token 只占一部分,训练效率可能不如 CLM 直接对所有位置预测。

所以,MLM 强在理解,不强在生成。


七、CLM:Causal Language Modeling

CLM 的全称是:

复制代码
Causal Language Modeling

中文可以叫:

复制代码
因果语言模型

它的核心思想是:

给定前面的 token,预测下一个 token。

例如句子:

复制代码
我 今天 去 学校 上课

CLM 的训练方式是:

复制代码
给定:我
预测:今天

给定:我 今天
预测:去

给定:我 今天 去
预测:学校

给定:我 今天 去 学校
预测:上课

也就是说,CLM 是从左到右建模文本。这正是 GPT 系列模型的训练目标。


八、CLM 的训练目标

给定序列:

CLM 将联合概率分解为:

其中:

表示当前位置之前的所有 token。

训练损失可以写成:

这表示模型在每个位置都要预测当前 token。实际训练时,通常会进行右移一位:

复制代码
输入:<bos> 我 今天 去 学校
目标:我 今天 去 学校 上课

也就是:

复制代码
模型看到前面的 token,预测后面的 token

九、CLM 为什么需要 Causal Mask?

CLM 的关键要求是:

预测当前位置时不能看到未来 token。

例如要预测"学校":

复制代码
我 今天 去 [学校]

模型只能看到:

复制代码
我 今天 去

不能看到:

复制代码
上课

否则模型就相当于偷看答案了。因此,GPT 这类 Decoder-only 模型必须使用 Causal Mask。Causal Mask 的形式是一个下三角矩阵:

复制代码
1 0 0 0
1 1 0 0
1 1 1 0
1 1 1 1

含义是:

复制代码
第 1 个 token 只能看第 1 个 token
第 2 个 token 可以看第 1、2 个 token
第 3 个 token 可以看第 1、2、3 个 token
第 4 个 token 可以看第 1、2、3、4 个 token

这保证了 CLM 的训练过程和生成过程一致:

复制代码
训练时不能看未来
推理时也只能根据已生成内容继续生成

十、CLM 适合什么模型结构?

CLM 最适合:

复制代码
Decoder-only 模型

典型代表是:

复制代码
GPT
GPT-2
GPT-3
LLaMA
Qwen
DeepSeek
ChatGPT 类模型

原因是:

Decoder 的 Causal Self-Attention 天然适合从左到右生成文本。

Decoder-only 模型的基本流程是:

复制代码
输入 token
  ↓
Causal Self-Attention
  ↓
预测下一个 token
  ↓
把预测 token 拼到输入后面
  ↓
继续预测下一个 token

这使得 CLM 非常适合:

复制代码
文本续写
对话生成
代码生成
文章写作
数学推理
工具调用
Agent 任务

现代大语言模型大多采用 CLM 训练目标。


十一、CLM 的优势和局限

CLM 的优势是:

复制代码
训练目标简单
所有 token 都能参与预测
训练和推理形式一致
天然适合生成任务
容易扩展到大规模预训练

CLM 的最大特点是统一性强。很多任务都可以变成:

复制代码
给定前文,继续生成答案

例如:

复制代码
问题:Transformer 是什么?
答案:

模型只需要继续生成:

复制代码
Transformer 是一种基于注意力机制的神经网络结构......

翻译也可以写成:

复制代码
English: I love machine learning.
Chinese:

摘要也可以写成:

复制代码
Article: ...
Summary:

所以 CLM 非常适合 prompt-based 使用方式。但是 CLM 也有局限。

第一,它不能在当前位置直接看到右侧上下文。

这对一些纯理解任务不如 Encoder 自然。

第二,它生成时容易出现幻觉。

因为它本质上是在预测高概率文本,并不天然保证事实正确。

第三,长文本生成时可能出现重复、跑题、上下文遗忘等问题。

所以 CLM 强在生成,但理解和事实可靠性还需要通过指令微调、RAG、工具调用、偏好对齐等方法进一步增强。


十二、Seq2Seq LM:序列到序列语言模型

Seq2Seq LM 的全称是:

复制代码
Sequence-to-Sequence Language Modeling

它的核心思想是:

给定一个输入序列,生成一个输出序列。

例如机器翻译:

复制代码
输入:I love machine learning.
输出:我喜欢机器学习。

文本摘要:

复制代码
输入:一篇长文章
输出:文章摘要

文本改写:

复制代码
输入:一句表达不通顺的话
输出:改写后的句子

问答任务:

复制代码
输入:问题 + 文档
输出:答案

Seq2Seq LM 通常使用 Encoder-Decoder 架构。

Encoder 负责理解输入,Decoder 负责生成输出。


十三、Seq2Seq LM 的训练目标

假设输入序列是:

输出序列是:

Seq2Seq LM 建模的是条件概率:

其中:

  • X:输入序列;

  • Y:输出序列;

  • :第 (t) 个目标 token;

  • :目标端当前 token 之前的 token。

训练损失是:

这和 CLM 很像,都是从左到右生成目标 token。但区别是:

Seq2Seq LM 的生成条件不仅包括目标端前文 ,还包括输入序列 (X)。

也就是说,Decoder 每一步生成时,都可以通过 Cross-Attention 查看 Encoder 输出。


十四、Seq2Seq LM 为什么需要 Encoder-Decoder?

以翻译任务为例:

复制代码
输入:A man is playing guitar.
输出:Ein Mann spielt Gitarre.

Encoder 先编码英文句子:

复制代码
A man is playing guitar.
  ↓
Encoder
  ↓
memory

Decoder 生成德文时,每一步都利用两类信息:

复制代码
1. 已经生成的德文 token
2. Encoder 编码后的英文信息

例如生成到:

复制代码
Ein Mann spielt

下一步要预测:

复制代码
Gitarre

Decoder 会通过 Cross-Attention 去关注英文中的:

复制代码
guitar

所以 Seq2Seq LM 的核心结构是:

复制代码
Encoder:理解输入序列
Decoder:根据输入序列和已生成内容生成输出序列

这和纯 GPT 的 CLM 不同。GPT 只有 Decoder,没有单独的 Encoder。它通常把输入和输出拼成一个长序列,让模型继续生成。而 Seq2Seq LM 更明确地区分:

复制代码
输入端
输出端

十五、Seq2Seq LM 适合什么模型?

Seq2Seq LM 适合:

复制代码
Encoder-Decoder 模型

典型代表是:

复制代码
原始 Transformer
T5
BART
mT5
PEGASUS
MarianMT

这些模型特别适合输入输出结构明显的任务。

例如:

复制代码
翻译:英文 → 中文
摘要:长文 → 摘要
纠错:错误句子 → 正确句子
改写:原句 → 改写句
问答:问题 + 文档 → 答案
代码生成:需求描述 → 代码

T5 的核心思想就是:

把所有 NLP 任务都统一成 text-to-text 格式。

例如:

复制代码
translate English to German: A man is walking.
→ Ein Mann geht.

summarize: [article]
→ [summary]

question: ... context: ...
→ answer

这就是 Seq2Seq LM 的强大之处。


十六、Seq2Seq LM 的优势和局限

Seq2Seq LM 的优势是:

复制代码
输入和输出分工清晰
适合条件生成任务
Encoder 可以充分理解输入
Decoder 可以逐步生成输出
适合翻译、摘要、改写等任务

它结合了 Encoder 和 Decoder 的优点。Encoder 负责双向理解输入。Decoder 负责自回归生成输出。但是它也有局限。

第一,结构比 Encoder-only 或 Decoder-only 更复杂。需要同时维护 Encoder、Decoder 和 Cross-Attention。

第二,在通用对话和开放生成任务中,现代大模型更多选择 Decoder-only。因为 Decoder-only 可以通过 prompt 把任务统一成续写形式,结构简单、扩展方便。

第三,Encoder-Decoder 在超大规模通用 LLM 中不如 Decoder-only 主流。但在翻译、摘要、文本改写等任务中,Seq2Seq 结构仍然非常重要。


十七、三种训练目标的代码直观理解

下面用非常简化的伪代码理解三种训练目标。

1. MLM 训练数据构造

复制代码
tokens = ["我", "今天", "去", "学校", "上课"]

# mask 一个位置
input_tokens = ["我", "今天", "去", "[MASK]", "上课"]
target = "学校"

# 模型根据完整上下文预测 mask 位置
loss = CrossEntropy(
    model(input_tokens)[mask_position],
    target_id
)

MLM 的关键是:

复制代码
输入中有 mask
模型看左右上下文
只在 mask 位置算 loss

2. CLM 训练数据构造

复制代码
tokens = ["<bos>", "我", "今天", "去", "学校", "上课"]

input_tokens = ["<bos>", "我", "今天", "去", "学校"]
target_tokens = ["我", "今天", "去", "学校", "上课"]

logits = model(input_tokens)

loss = CrossEntropy(logits, target_tokens)

CLM 的关键是:

复制代码
输入右移一位
目标是下一个 token
模型不能看到未来 token
所有位置都可以计算 loss

3. Seq2Seq LM 训练数据构造

复制代码
src_tokens = ["A", "man", "is", "walking", "."]

tgt_tokens = ["<bos>", "Ein", "Mann", "geht", ".", "<eos>"]

tgt_input = ["<bos>", "Ein", "Mann", "geht", "."]
tgt_output = ["Ein", "Mann", "geht", ".", "<eos>"]

logits = model(src_tokens, tgt_input)

loss = CrossEntropy(logits, tgt_output)

Seq2Seq LM 的关键是:

复制代码
Encoder 输入源序列
Decoder 输入目标端前文
目标是预测目标端下一个 token
Decoder 通过 Cross-Attention 读取 Encoder 输出

十八、MLM、CLM、Seq2Seq LM 对比

现在我们把三者放到一张表中。

对比维度 MLM CLM Seq2Seq LM
全称 Masked Language Modeling Causal Language Modeling Sequence-to-Sequence LM
代表模型 BERT、RoBERTa GPT、LLaMA、Qwen T5、BART
常见架构 Encoder-only Decoder-only Encoder-Decoder
可见上下文 双向上下文 只能看左侧上下文 Encoder 看完整输入,Decoder 看目标端左侧
训练方式 遮住部分 token,预测被遮住 token 给定前文,预测下一个 token 给定输入序列,生成输出序列
是否需要 Causal Mask 不需要 需要 Decoder 需要
是否适合生成 不擅长长文本生成 非常擅长 擅长条件生成
是否适合理解 非常适合 可以,但不是最自然 适合输入理解 + 输出生成
典型任务 分类、匹配、抽取、NER 对话、续写、代码、推理 翻译、摘要、改写、问答

十九、为什么 GPT 路线最终成为主流大语言模型路线?

从今天的大语言模型发展来看,Decoder-only + CLM 成为了最主流的路线。原因主要有几个。

第一,CLM 训练目标简单统一。只需要:

复制代码
给定前文,预测下一个 token

就可以利用海量文本进行训练。

第二,训练和推理一致。训练时预测下一个 token,推理时也是生成下一个 token。

第三,任务可以通过 prompt 统一成文本续写。

例如:

复制代码
请翻译:...
请总结:...
请解释:...
请写代码:...

模型都可以继续生成答案。

第四,Decoder-only 架构更容易扩展到超大规模。相比 Encoder-Decoder,Decoder-only 结构更简单,工程扩展更直接。所以 GPT、LLaMA、Qwen、DeepSeek 等现代大语言模型大多采用 CLM。但是,这并不代表 MLM 和 Seq2Seq LM 不重要。BERT 类模型在表示学习、检索、分类和匹配任务中仍然很重要。T5/BART 类模型在翻译、摘要、改写和条件生成任务中仍然很有价值。


二十、如何选择训练目标?

可以根据任务目标来选择。如果你的目标是:

复制代码
学习句子表示
文本分类
语义匹配
命名实体识别
阅读理解抽取

那么 Encoder-only + MLM 是非常自然的选择。如果你的目标是:

复制代码
文本生成
对话
代码生成
续写
开放问答
多任务 prompt 统一

那么 Decoder-only + CLM 更合适。如果你的目标是:

复制代码
翻译
摘要
文本改写
纠错
输入到输出转换

那么 Encoder-Decoder + Seq2Seq LM 更合适。可以简单记成:

复制代码
理解:MLM
生成:CLM
转换:Seq2Seq LM

当然,今天的模型边界已经越来越模糊。Decoder-only 模型也可以做理解任务。Seq2Seq 模型也可以做生成任务。Encoder 模型也可以通过特殊方式做填空和抽取。但从训练目标的天然适配性来看,这个划分仍然非常清晰。


相关推荐
卡梅德生物科技小能手1 小时前
卡梅德生物科技深度解析LAG3(淋巴细胞活化基因3)
网络·人工智能·经验分享
糖果店的幽灵1 小时前
Claude Code 完全实战指南 - 第一章:安装配置与本地大模型
人工智能·claude
大鹏的NLP博客1 小时前
AI 正在改变软件工程:我的 AI 协同开发实践
人工智能·软件工程
大江东去浪淘尽千古风流人物1 小时前
【ACE-SLAM】场景坐标回归实时神经 SLAM:TriMLP 架构与隐式回环闭合
人工智能·神经网络·数据挖掘·回归·实时·slam·场景坐标回归
2601_956414141 小时前
2026年DTC独立站开发与小语种独立站设计的优质服务选择指南
人工智能
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月3日
大数据·人工智能·python·信息可视化·自然语言处理
m沐沐1 小时前
【机器学习】信用卡欺诈检测实战:逻辑回归 + 过采样
人工智能·算法·机器学习·pycharm·逻辑回归
code_pgf1 小时前
SFT 过程及技巧详解
人工智能·机器学习
七牛开发者1 小时前
从 Claude 案例看 Coding Agent 的计划层设计
人工智能·ai·agent·claude·claudecode