因果语言建模(Causal Language Modeling)一句话概括:让模型预测下一个词时,只能看已经出现的前文,绝不能偷看后面的答案。
训练时的“遮答案”
训练样本就是一段普通文本,比如“会议改到周三下午三点”。模型看到前几个字“会议改到周三”,任务就是猜下一个字是“下”还是“三”。猜完往后挪一格,继续猜。
关键在于一个叫“因果掩码”(causal mask)的机制。模型内部是把整句话一起喂进去算的,理论上每个位置都能看到所有词;掩码把当前位置之后的部分强制置零(遮住),让第 3 个词永远看不到第 4 个词。这像考试时老师用纸盖住答案,你只能顺着已给的线索往下推;也像读悬疑小说,物理上翻不到最后一页。
这种训练方式叫自回归(autoregressive):输出一个个往前滚,每一步的输出都成为下一步的输入。
与相邻概念的区别
最容易混的是AI 词典:掩码语言建模">掩码语言建模(Masked Language Modeling,BERT 那一派)。它做的是完形填空:把句子中间挖掉一个词,让模型同时看左右两边猜。两边信息都有,理解题做得好,但没法直接“往下写”——推理时你手上没有那个“空”。
| 类型 | 生成时能看到的上下文 | 典型任务 | 能否直接续写 |
|---|---|---|---|
| 因果 LM | 只有左边前文 | 对话、续写、代码补全 | 能,逐词吐 |
| 掩码 LM | 左右两边都看到 | 分类、抽取、检索匹配 | 不能直接续写 |
| 编码器-解码器 | 输入双向、输出因果 | 翻译、摘要 | 能,但要先给完整输入 |
对从业者和普通人的意义
对做模型的人,预训练目标基本决定了模型能干什么。主流大模型走的是因果 LM 这条路,推理时只缓存前文(KV cache),也是因果结构带来的红利。一个常见坑是掩码写错:训练损失掉得飞快,上线却表现很差——那是模型偷看了答案,学到的是抄,不是推。
对用模型的人,有三点能直接感受到:
- 它写东西是一次一个词往前走,写完不能回头大改结构,所以长文越到后面越容易“顺着前面的调子”跑偏;
- 前文一旦写错,后面只能基于错的前文继续预测,错误会被自己放大;
- 它优化的是“下一个词的概率”,不是“这句话是否真实”。这就是幻觉的机制根源之一:通顺和正确是两件事。
理解这一点,写提示词时的直觉就变了:与其在末尾抱怨“你错了”,不如把正确的约束放在前文里——因为它真的只能看前文。
