自回归(Autoregressive)
逐步生成序列的范式:每一步基于已生成的所有前缀预测下一个元素。GPT 就是自回归语言模型——逐 token 生成,每次只看"左边"已有的内容,通过 Causal Mask 保证不偷看未来。
自回归(Autoregressive)
一句话理解
自回归就是"写作文"的方式——一个字一个字地写,每写一个字都要回头看前面已经写了什么。
核心思想
自回归模型将序列生成分解为一连串条件概率:
P(x1,x2,...,xn)=i=1∏nP(xi∣x1,...,xi−1)翻译成白话:生成一个序列的概率 = 每一步"基于前文预测下一个"的概率之积。
自回归生成的过程
text
输入: "今天天气"
第1步: P(? | "今天天气") → "真" → "今天天气真"
第2步: P(? | "今天天气真") → "不" → "今天天气真不"
第3步: P(? | "今天天气真不") → "错" → "今天天气真不错"
第4步: P(? | "今天天气真不错") → <EOS> → 结束
每一步只看左边、预测右边——这就是为什么 GPT 需要 Causal Mask 来遮住未来位置。
自回归 vs 非自回归
| 特性 | 自回归(GPT) | 非自回归(BERT) |
|---|---|---|
| 生成方向 | 从左到右,逐 token | 不生成,只理解 |
| 能否看未来 | ❌ 不能(Causal Mask) | ✅ 能(双向注意力) |
| 典型任务 | 文本生成、对话、代码补全 | 文本分类、情感分析、NER |
| 推理速度 | 慢(逐 token 串行) | 快(一次前向传播) |
为什么 GPT 选择自回归
自回归的优势在于通用性——任何任务都可以表述为"给定上文,预测下文":
- 翻译:"Translate to English: 你好" → "Hello"
- 摘要:"Summarize: [长文]" → "[摘要]"
- 代码:"def fibonacci(n):" → "函数体"
这种统一范式让同一个模型无需修改就能处理多种任务——这正是 GPT 从 GPT-2 开始押注的方向,后来被证明是正确的赌注。
temperature 与采样
自回归生成时,每一步可以选择不同的采样策略:
- 贪心(temperature → 0):每步选概率最高的 token,生成最"安全"但可能无聊的文本
- 高温(temperature > 1):拉平概率分布,增加随机性,生成更"有创意"但可能不通顺的文本
- Top-k / Top-p:只在最有可能的 k 个或累积概率达到 p 的 token 中采样,兼顾多样性和质量