自回归(Autoregressive)

逐步生成序列的范式:每一步基于已生成的所有前缀预测下一个元素。GPT 就是自回归语言模型——逐 token 生成,每次只看"左边"已有的内容,通过 Causal Mask 保证不偷看未来。

自回归(Autoregressive)

一句话理解

自回归就是"写作文"的方式——一个字一个字地写,每写一个字都要回头看前面已经写了什么。

核心思想

自回归模型将序列生成分解为一连串条件概率:

P(x1,x2,...,xn)=i=1nP(xix1,...,xi1)P(x_1, x_2, ..., x_n) = \prod_{i=1}^{n} P(x_i \mid x_1, ..., x_{i-1})P(x1,x2,...,xn)=i=1nP(xix1,...,xi1)

翻译成白话:生成一个序列的概率 = 每一步"基于前文预测下一个"的概率之积。

自回归生成的过程

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 中采样,兼顾多样性和质量