在前面的文章中我们已经讲过 Transformer Encoder、Transformer Decoder、以及位置编码等核心内容。现在我们需要进一步补上一个非常关键的问题大语言模型到底是怎么训练出来的或者说不同模型为什么会形成不同能力例如BERT 更擅长文本理解、分类、匹配、抽取 GPT 更擅长文本生成、对话、续写、代码 T5 / BART 更擅长输入到输出的转换任务这些差异不仅来自模型结构也来自训练目标。在预训练语言模型中最常见的训练目标主要有三类MLMMasked Language Modeling掩码语言模型 CLMCausal Language Modeling因果语言模型 Seq2Seq LMSequence-to-Sequence Language Modeling序列到序列语言模型它们分别对应三条重要路线BERT 路线MLM GPT 路线CLM T5 / BART 路线Seq2Seq LM这一篇我们就系统讲清楚1. 什么是 MLM 2. 什么是 CLM 3. 什么是 Seq2Seq LM 4. 三者分别适合什么模型结构 5. 为什么 BERT 使用 MLMGPT 使用 CLMT5/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 能力差异的根本来源之一。二、MLMMasked Language ModelingMLM 的全称是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 作为预测目标。对于这些被选中的 token80% 替换成 [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 强在理解不强在生成。七、CLMCausal Language ModelingCLM 的全称是Causal Language Modeling中文可以叫因果语言模型它的核心思想是给定前面的 token预测下一个 token。例如句子我 今天 去 学校 上课CLM 的训练方式是给定我 预测今天 给定我 今天 预测去 给定我 今天 去 预测学校 给定我 今天 去 学校 预测上课也就是说CLM 是从左到右建模文本。这正是 GPT 系列模型的训练目标。八、CLM 的训练目标给定序列CLM 将联合概率分解为其中表示当前位置之前的所有 token。训练损失可以写成这表示模型在每个位置都要预测当前 token。实际训练时通常会进行右移一位输入bos 我 今天 去 学校 目标我 今天 去 学校 上课也就是模型看到前面的 token预测后面的 token九、CLM 为什么需要 Causal MaskCLM 的关键要求是预测当前位置时不能看到未来 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 ↓ memoryDecoder 生成德文时每一步都利用两类信息1. 已经生成的德文 token 2. Encoder 编码后的英文信息例如生成到Ein Mann spielt下一步要预测GitarreDecoder 会通过 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 位置算 loss2. CLM 训练数据构造tokens [bos, 我, 今天, 去, 学校, 上课] input_tokens [bos, 我, 今天, 去, 学校] target_tokens [我, 今天, 去, 学校, 上课] logits model(input_tokens) loss CrossEntropy(logits, target_tokens)CLM 的关键是输入右移一位 目标是下一个 token 模型不能看到未来 token 所有位置都可以计算 loss3. 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 对比现在我们把三者放到一张表中。对比维度MLMCLMSeq2Seq LM全称Masked Language ModelingCausal Language ModelingSequence-to-Sequence LM代表模型BERT、RoBERTaGPT、LLaMA、QwenT5、BART常见架构Encoder-onlyDecoder-onlyEncoder-Decoder可见上下文双向上下文只能看左侧上下文Encoder 看完整输入Decoder 看目标端左侧训练方式遮住部分 token预测被遮住 token给定前文预测下一个 token给定输入序列生成输出序列是否需要 Causal Mask不需要需要Decoder 需要是否适合生成不擅长长文本生成非常擅长擅长条件生成是否适合理解非常适合可以但不是最自然适合输入理解 输出生成典型任务分类、匹配、抽取、NER对话、续写、代码、推理翻译、摘要、改写、问答十九、为什么 GPT 路线最终成为主流大语言模型路线从今天的大语言模型发展来看Decoder-only CLM 成为了最主流的路线。原因主要有几个。第一CLM 训练目标简单统一。只需要给定前文预测下一个 token就可以利用海量文本进行训练。第二训练和推理一致。训练时预测下一个 token推理时也是生成下一个 token。第三任务可以通过 prompt 统一成文本续写。例如请翻译... 请总结... 请解释... 请写代码...模型都可以继续生成答案。第四Decoder-only 架构更容易扩展到超大规模。相比 Encoder-DecoderDecoder-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 模型也可以通过特殊方式做填空和抽取。但从训练目标的天然适配性来看这个划分仍然非常清晰。