自回归生成
自回归生成 (Autoregressive Generation)
一句话定义
LLM 生成文本的核心范式:逐 token 预测,每步用模型预测的下一个 token 作为下一步输入;联合分布按链式法则分解:
P(x₁, x₂, …, xₙ) = ∏ᵢ P(xᵢ | x₁, …, xᵢ₋₁)
这是 Transformer decoder 系列模型的根本生成模式,也是当前 LLM 推理成本 / 延迟结构的物理根源。
推理的两个阶段 — Prefill vs Decode
| 阶段 | 输入 | 算力特性 | 内存特性 | 瓶颈 |
|---|---|---|---|---|
| Prefill | 整段 prompt | compute-bound | 一次性吃显存(KV 增量构建) | FLOPs (高 MFU 70%+) |
| Decode | 单 token | memory-bound | 每步读完整 KV Cache | 显存带宽 (MFU < 10%) |
这是自回归最反直觉的代价:算力是浪费的。Decode 阶段 H100 的算力利用率长期跑在 5-10%,瓶颈在 GPU HBM 把权重和 KV 搬到计算单元的速度。
为什么慢 — 物理因果链
- 逐字串行:第 i 步必须等第 i-1 步完成才能开始 → 无法并行
- 每步读全部权重:13B 模型每生成 1 token 需把 26GB 权重读一遍(FP16)→ 显存带宽是天花板
- 每步读全部 KV:上下文越长 KV 越大 → 长上下文场景内存带宽更紧
- batch size 难以放大:用户请求异步进来,凑不齐 batch 时算力空转
加速技术谱系(按”打破自回归串行”的力度排)
1. 不动语义、动调度
- Continuous Batching (vLLM/Orca):动态拼 batch,每步换出已结束的请求 → 吞吐 5-10×
- PagedAttention (vLLM):KV Cache 分页管理,显存碎片减少 → 并发数翻倍
- Speculative Decoding:用小模型先猜 K 个 token,大模型并行验证 → 1.5-3× 端到端
- Medusa:在大模型上接多 head 并行猜 → 类似 spec decoding 但无小模型依赖
- Lookahead Decoding (LMSys):用 n-gram 模式猜,无需小模型
- EAGLE / EAGLE-2:state-of-art speculative decoding,加速 2-4×
2. 动语义、保兼容
- Parallel Decoding(草稿 + 校验范式):思路同 spec decoding,但用同一模型
- Skeleton-of-Thought:先生成大纲再并行填正文,但仍是 AR
- Chain-of-Draft:先快速草稿,再 critique 修
3. 改根本架构
- Diffusion-LLM(如 LLaDA / DiffuLLaMA 2024):把文本生成视作离散扩散过程,可以并行迭代全文,从随机噪声去噪到可读文本——理论上消除自回归串行瓶颈
- Mamba / SSM:状态空间模型,inference 步可常数时间(不需读全 KV)
- Hybrid 架构(Jamba / Zamba / Samba):Transformer + Mamba 交错,前缀 attention 优势 + 长序列 SSM 效率
- MoE 推理优化:稀疏激活降低单步成本,但仍 AR
4. 改 token 粒度
- Byte-level / Patch-level (BLT 2024):动态聚合 byte 到 patch,长 token 步少
- Sparse Decoding:跳过低不确定性 token,只在 high-perplexity 节点生成
投机解码 (Speculative Decoding) — 深一层
是目前唯一规模化部署且无需改模型架构的 AR 加速,2024-2026 几乎所有商业推理服务都用了它的变体。
机制:
1. Draft Model (小模型,如 8B) 生成 K 个候选 token [t₁, t₂, ..., tₖ]
2. Target Model (大模型,如 70B) 一次前向,并行验证 K 个位置
3. 验证:对每个位置 i,比较 P_draft(tᵢ) 与 P_target(tᵢ)
- 接受:rand < P_target/P_draft → 保留
- 拒绝:从修正分布重采 → 该位置之后丢弃
4. 平均能"白嫖"出 1.5-3 个 token / 步
关键 trade-off:draft 模型越好(接近 target),接受率越高,但成本也高。EAGLE 系列用同模型的 draft head,免去 draft 模型独立训练。
Autoregressive vs Diffusion vs Mamba — 范式对比
| 维度 | 自回归 (Transformer) | 扩散模型 | Mamba/SSM |
|---|---|---|---|
| 训练 | 教师强制 (Teacher Forcing),并行 | 去噪目标,并行 | 平行扫描算法,并行 |
| 推理时间复杂度 | O(N²) attention | O(K) 步去噪 | O(N) 状态更新 |
| KV/State | KV Cache 线性增长 | 无需 KV | 固定大小状态向量 |
| 严格逻辑链 | ✅ 强 | ⚠️ 弱(全局先生成) | ✅ 中等 |
| 长上下文 | 受限于 KV 大小 | 不直接适用 | 优势明显(线性) |
| 代表 | GPT / Claude / LLaMA | Sora / Stable Diffusion | Mamba-2 / Jamba |
| 主流应用 | 文本 / 代码 / 推理 | 图 / 视频 / 音频 | 长序列 / 边缘部署 |
当前判断 (2026-06):Transformer AR 仍是 LLM 推理首选;Mamba 在边缘 / 长上下文 / 状态机场景渗透;Diffusion-LLM 仍属实验前沿,未上规模。三者融合(Jamba/Hymba/Hybrid)是工程主流。
与 KV Cache 的本质关系
自回归推理的成本 = 模型权重读取 + KV Cache 读取。两者都是 memory-bound:
- 短上下文:权重读取主导
- 长上下文:KV 读取主导(超过约 32K token 后)
→ Decode 阶段所有优化(KV Cache 压缩 / Prompt Caching / continuous batching)本质都在攻击同一个目标:让 memory 带宽不要成为天花板。
与产品 / PM 的连接点
- 延迟体感:TTFT (Time To First Token) 由 prefill 主导,TPS (Tokens Per Second) 由 decode 主导——优化目标不同
- 长输出贵:模型 KPI”短答案优先”不仅是体验,也是成本 (decode token 数 × 单位成本)
- 流式 vs 全量:流式是 AR 物理决定的,不是产品选项
- Speculative Decoding 在产品侧不可见:它不改 API 行为,但能让单次请求成本下降 30-50%——评估 vendor 时是隐形 moat
- 非 AR 替代路线判读:客户问”diffusion-LLM 能不能取代 GPT”——目前不行,但 sora 类视频/音频/图像必须是非 AR
相关章节与节点
- c05 算力物理
- c06 SSM / Hybrid
- c08 解码策略
- c11 Test-Time Compute
- KV Cache / Prompt Caching / Attention
- 多模型分层 — speculative decoding 的 draft model 是其特例