L13: Reasoning 2/2

Week 7 · Tue Feb 17 2026 08:00:00 GMT+0800 (中国标准时间)

进度: 0/22 (0%)
下载 PDF
/ 0
100%
正在加载 PDF...

L13: Reasoning 2/2

  • Lecturer: Yejin Choi

Slides

中英交替版(推荐)

L13 双语 (PDF)

英文原版

L13 EN (PDF)

中文翻译版

L13 ZH (PDF)

核心知识点

1. Speculative Decoding(推测解码)

  • 问题:大型 LM 生成速度慢(memory-bound,逐 token 自回归)
  • 核心直觉:不是所有 token 都同样难生成

标准 Speculative Decoding

Slide 1
Slide 1
Slide 2
Slide 2
Slide 3
Slide 3
  • Step 1:小模型 MpM_p 自回归生成 K 个 draft token
  • Step 2:大模型 MqM_q 单次前向传播验证所有 K 个 token
  • 接受规则:
    • Case 1: qipiq_i \geq p_i -> 直接接受
    • Case 2: qi<piq_i < p_i -> 以概率 qi/piq_i/p_i 接受
    • Case 3: 拒绝 -> 从 (qipi)+(q_i - p_i)_+ 重新采样
  • 数学保证:输出分布等价于直接从大模型采样(rejection sampling)
  • 实际加速:T5-small (60M) + T5-XXL (11B) 达到 2-3x 加速

Dynamic Speculative Decoding

Slide 4
Slide 4
Slide 5
Slide 5
  • 自适应调整 lookahead 大小(候选 token 数量)

Universal Speculative Decoding

Slide 6
Slide 6
Slide 7
Slide 7
Slide 8
Slide 8
  • 允许 draft 和 target 模型使用不同 tokenizer(通过 re-encoding 和 alignment)

EAGLE 系列(1/2/3)

Slide 9
Slide 9
Slide 10
Slide 10
  • EAGLE-1:draft head 读取 target model 的顶层特征(features-level speculation)
  • EAGLE-2:上下文感知的动态 draft tree
  • EAGLE-3:跨层 fused features,加速可达 5.6x

SuffixDecoding(Oliaro et al., 2025)

Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17
  • Model-free:用 Suffix Tree 缓存和匹配重复序列模式
  • CPU-bound(GPU 空闲时 CPU 做推测),零训练开销
  • 最适合高重复任务(代码、Agent 循环、RAG、SQL)
  • 在 AgenticSQL 上达到 5.3x 加速

SuffixDecoding vs EAGLE-3 对比

Slide 18
Slide 18
Slide 19
Slide 19
  • SuffixDecoding:Model-free,CPU-bound,~20us/token,适合重复任务
  • EAGLE-3:Model-based,GPU-bound,需要训练 draft head,适合开放任务

🔢 数值计算示例

γ=4\gamma = 4(草稿模型先生成 4 个 token)

草稿模型生成:[“The”, “cat”, “sat”, “on”]

目标模型评估概率比:

  • “The”:q/p=0.92/0.88>1q/p = 0.92/0.88 > 1α=1\alpha = 1,直接接受
  • “cat”:q/p=0.75/0.70>1q/p = 0.75/0.70 > 1α=1\alpha = 1,直接接受
  • “sat”:q/p=0.30/0.50=0.6q/p = 0.30/0.50 = 0.6 → 以 60% 概率接受,假设接受
  • “on”:q/p=0.20/0.40=0.5q/p = 0.20/0.40 = 0.5 → 以 50% 概率接受,假设拒绝

结果:接受了 “The cat sat”(3 个 token),然后从修正分布重采样”on”的替代词。一次大模型调用 = 3+ 个有效 token;若直接用大模型,1次调用 = 1 个 token。本轮实际加速约 3x。

💡 为什么这样做?

草稿模型是”提案者”,大模型是”审核员”。草稿模型便宜快速,大模型昂贵但准确。大模型每次前向传播本来就能并行处理一整个序列——所以让它一口气批量审核草稿生成的多个 token,平均一次大模型调用批准多个 token,显著提速。本质是把自回归的串行瓶颈转化为批量并行审核。

⚠️ 常见误区

  1. 误区:Speculative Decoding 牺牲了输出质量换速度 → 正确:数学上已证明输出分布与直接用目标模型采样完全等价,不损失任何质量。
  2. 误区:草稿模型越小越好(节省时间)→ 正确:加速比依赖草稿和目标模型分布相似度——草稿模型和目标模型差距太大时接受率低,反而不如直接用目标模型。最佳选择是同家族小-大模型(如 Llama-7B 草稿 + Llama-70B 目标)。

2. Off-policy Drift & On-policy Distillation

Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34
  • On-policy vs Off-policy RL
    • On-policy:用当前 policy 采样数据训练(新鲜但低效)
    • Off-policy:用旧 policy/其他 policy 的数据训练(高效但有偏差)
  • RL 基础设施与 Off-policy Drift
    • 大规模 RL 训练中 actor 和 learner 不同步导致的分布漂移
    • 漂移越大,训练越不稳定
  • On-policy Distillation
    • 用 teacher 模型的 on-policy 输出蒸馏到 student

🔢 数值计算示例

Off-policy drift 的危害数值示例:

假设某 token 在 πold\pi_{old} 下概率 0.01,在 πθ\pi_\theta(训练后)下概率 0.1:

ρ=0.1/0.01=10\rho = 0.1 / 0.01 = 10

IS ratio = 10(高方差,数值不稳定)。未截断时梯度 = 10×advantage10 \times \text{advantage},若 advantage = 2,梯度放大到 20,可能导致梯度爆炸。

PPO clip(ϵ=0.2\epsilon = 0.2):ρclip=clip(10,0.8,1.2)=1.2\rho^{\text{clip}} = \text{clip}(10, 0.8, 1.2) = 1.2,有效梯度 = 1.2×2=2.41.2 \times 2 = 2.4,训练稳定。

⚠️ 常见误区

  1. 误区:off-policy 数据可以无限复用,多用旧数据提高样本效率 → 正确:IS ratio 方差随策略偏移指数增长,复用超过几个 epoch 就会训练不稳定甚至崩溃。实践中通常限制 off-policy 程度(PPO 每批数据只迭代 3-4 次)。
  2. 误区:On-policy Distillation 和普通 KD(知识蒸馏)一样 → 正确:关键区别在于训练数据是当前学生策略采样的,而非教师生成的固定数据集,这消除了 off-policy drift,但代价是每步推理开销大。

3. Long Context Extension(长上下文扩展)

Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46
  • 扩展 LLM 上下文窗口的技术
  • 位置编码外推:RoPE 扩展、ALiBi
  • 训练策略:渐进式扩展上下文长度

🔢 数值计算示例

位置插值数值示例:模型训练上下文 Ltrain=4096L_{\text{train}} = 4096,想扩展到 Ltest=16384L_{\text{test}} = 16384(4倍)。

PI 缩放因子:s=4096/16384=0.25s = 4096 / 16384 = 0.25

  • 原始位置 pos=8000pos = 8000(超出训练分布)→ 插值后 pos=8000×0.25=2000pos' = 8000 \times 0.25 = 2000(在训练范围内 ✓)
  • 原始位置 pos=16000pos = 16000(超出训练分布)→ 插值后 pos=16000×0.25=4000pos' = 16000 \times 0.25 = 4000(在训练范围内 ✓)

代价:相邻位置 pos=100pos=100pos=101pos=101 的间隔压缩为 pos=25.0pos'=25.0pos=25.25pos'=25.25(间距缩小4倍),模型需要通过 fine-tune 重新学习精细位置区分。

💡 为什么这样做?

RoPE 用旋转角度编码相对位置,注意力分数只取决于两个 token 的相对角差。训练时模型见过角差范围 [0,θiLtrain][0, \theta_i \cdot L_{\text{train}}];如果推理时出现更大角差,模型行为未知。Position Interpolation 把所有位置等比压缩,保证任意两点的角差都在训练范围内,用”位置精度略降”换”长度外推稳定”。

⚠️ 常见误区

  1. 误区:扩展 context window = 获得长文档理解能力 → 正确:长上下文能力 ≠ 长上下文理解能力。Lost in the Middle(Liu et al., 2023)实验表明:即使窗口够大,模型对文档中间部分的注意力显著弱于开头和结尾。窗口够大只是必要条件,不是充分条件。
  2. 误区:RoPE 外推不需要任何 fine-tune → 正确:直接外推(不做任何修正)在超出训练长度时通常性能骤降;PI 和 YaRN 都需要少量 fine-tune(通常几百步即可)才能稳定。

4. Inference-time Scaling(推理时缩放)

Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59
  • 核心思想:在推理时投入更多计算以提升性能
  • Best-of-N sampling + reward model
  • 多次采样 + 投票(Self-Consistency)
  • 推理时计算与训练时计算的权衡
  • Test-Time-Compute-Scaling

🔢 数值计算示例

OpenAI o1/o3 的推理时缩放数据(近似):

  • AIME 2024 数学竞赛题:o1 单次采样 44.6%\approx 44.6\%,Best-of-N(N=64N=64)可达 83%\approx 83\%
  • 这说明推理能力的瓶颈部分在于”试够多次”,而非”单次能力上限”
  • 换个角度:把推理预算(compute budget)全押在”更大模型”不如”更多尝试 + 验证”

💡 为什么这样做?

推理时 scaling 是在”用计算换准确率”——把推理预算(compute budget)用于”多尝试”而非”更大模型”。对于有明确正误判断的任务(数学、代码),可以自动判断哪个答案”最好”,Best-of-N 效果显著。这也是 o1/o3 类模型的核心思路:在推理时做更多”思考”(longer chain-of-thought + 多次采样),而非单纯靠更大模型。

⚠️ 常见误区

  1. 误区:推理时 scaling 普遍有效,对所有任务都适用 → 正确:在有明确验证函数的任务(数学、代码)效果很好;对开放式生成(创意写作、对话)难以定义”最好”,奖励模型评分不可靠,不要把数学上的成功推广到所有任务。
  2. 误区:推理时 scaling 和训练时 scaling 是竞争关系 → 正确:二者互补。训练好的基础模型是推理时 scaling 的前提;同等算力下,小模型 + 大量推理搜索有时能超越大模型单次采样,但不能替代大模型的知识和能力上限。

推荐阅读

关联概念

个人笔记