一句话定义
自回归生成(Autoregressive Generation)是指:模型每次只预测下一个 token(词元,可粗略理解为「字」或「词片段」),然后把预测结果接到输入末尾,再预测下一个,如此循环,直到输出结束符或达到长度上限。整个过程像词语接龙——只能看着前面已经说过的内容,决定下一个说什么。
原理:为什么不能一次全吐出来
关键在于概率的写法。语言模型建模的是条件概率 P(x_t | x_1, ..., x_{t-1}):第 t 个 token 的概率分布,依赖前面 t-1 个 token。而第 t-1 个 token 本身又是采样出来的结果。链条没生成完,下一个位置的「依据」就不存在。于是只能串行:算一次 → 采样一个 → 追加回去 → 再算一次。
打个比方,像一群人玩接龙讲故事。每个人只能听到前面已经讲出来的句子,再根据这些内容接一句。你没法让所有人同时开口,因为第三个人要等第二个人说完,才知道自己该接什么。
| 维度 | 自回归生成 | 非自回归 / 掩码式 |
|---|---|---|
| 生成顺序 | 从左到右,逐个 token | 一次预测全部位置,或迭代去噪 |
| 典型代表 | GPT 类解码器模型 | BERT(掩码语言模型)、扩散模型 |
| 可见上下文 | 只能看左边(因果掩码) | 可同时看左右两侧 |
| 常见用途 | 对话、写作、代码补全 | 理解类任务、填空、图像生成 |
| 速度特征 | 与输出长度线性相关,较慢 | 可并行,但一致性较难保证 |
这里有个容易混淆的点:训练时其实可以并行。因为训练语料里正确答案是现成的,把整句话一次性喂进去,让每个位置都去预测它的下一个词,一次前向就能算出所有位置的损失,这叫 teacher forcing。但推理时没有标准答案,必须自己采样出来再喂回去,并行不了。
和相邻概念的区别
- 自编码器(Autoencoder):把输入压缩再还原,目标是重建,不是逐词续写。
- 掩码语言模型(Masked LM):随机挖空、双向补全,本质是「填空」而不是「续写」。
- 非自回归生成:一次吐出所有位置,快但容易出现前后不连贯,常用于对延迟极敏感的场景。
对从业者和普通人的意义
1. 延迟是结构性的。输出越长,总耗时越长,因为每蹦一个 token 都要跑一次前向。首 token 时间(TTFT)和每 token 延迟是两个不同的优化指标,别混为一谈。
2. AI 词典:KV Cache">KV Cache 是刚需。把历史 token 的键值缓存起来,避免每一步都重新计算前面所有内容。
3. 误差会累积。前面选错一个词,后面只能在这个基础上继续,可能越走越偏,这也是幻觉(hallucination)的来源之一。思维链(Chain-of-Thought)本质上是把中间推理也当作 token 一步步生成出来。
4. 流式输出天然契合。既然是一个一个蹦,就能边生成边显示,体验上像打字机。
一句话记住:大模型不是「想好了整段话再一口气说完」,而是「边想边说,说出来的每个字都变成下一句的输入」。具体产品的计费方式与参数以官方页面为准。
