首页 › cost-hacks › 验证比生成便宜:投机解码砍掉五成账单

验证比生成便宜:投机解码砍掉五成账单

一句话信息差:大模型推理真正的瓶颈不是算力,而是"内存搬运税";而一个反直觉的事实是——让大模型验证 5 个 token 的成本,几乎等于让它从头生成 1 个 token。海外厂商据此搞出了"投机解码"(speculative decoding),让小模型先草拟、大模型批量验货,匹配的全白赚,在 H100 上把 70B 模型的解码成本从 \$0.46/1M 砍到 \$0.06/1M,且输出数学等价、质量零损失。AWS、vLLM 在 2026 年初已把它推到主流,而国内九成开发者还以为这玩意"会降质量、是玄学"。


一、你烧的 token,一半钱花在搬运,不在计算

先把一个根深蒂固的误区打掉:很多人觉得大模型慢、贵,是因为"算力不够"。错了。

在自回归生成阶段,每吐出 1 个 token,GPU 都要把整套模型权重(70B 模型就是 700 亿参数)从显存(VRAM)搬到计算核心里。搬运这趟路,比真正做矩阵乘法还慢。这就是 Spheron 在 2026 年生产指南里点破的那句话——LLM 解码是 memory-bandwidth-bound(内存带宽受限),不是 compute-bound。

直接后果:一张 H100 PCIe(每小时 \$2.01)跑 Llama 3.3 70B(FP8),batch size 1–4 时,标准解码只能挤出 ~1,200 tokens/秒,每 100 万输出 token 成本 ~\$0.46。你以为这卡在算 700 亿次乘法,其实它在反复搬运同一堆权重,一趟一趟又一趟。

这是整篇情报的物理基础:搬运才是税,算力是顺带的。

二、一个让 AWS 和 vLLM 集体押注的反直觉

既然搬运是瓶颈,那就有了一条惊人的等式:

让目标大模型"验证" N 个候选 token 的成本 ≈ 让它从头"生成" 1 个 token 的成本。

因为验证 N 个 token 可以在一个 forward pass 里并行完成,搬运那趟昂贵的路只走一次。

那么——谁说候选 token 必须大模型自己生成?派一个小模型(草稿模型)先猜 N 个,大模型只负责批量验货,猜中的全收下,猜错的位置由大模型纠正、丢弃后面。这就是投机解码(speculative decoding)。

举个具体例子,草稿模型猜 5 个、目标模型验 4 个就碰壁:

草稿模型: [tok1] [tok2] [tok3] [tok4] [tok5]   <-- 1B 小模型秒出
目标模型:   ✓     ✓     ✓     ✗               <-- 1 次 forward 验完
结果: tok1/tok2/tok3 全部接受,从 tok4 重来

加速多少?取决于"接受率" alpha(草稿模型猜对的概率)。当 alpha=0.8、N=5 时,平均每步接受约 3.7 个 token,即 3.7x 加速。

flowchart LR
    subgraph 传统解码["传统解码(1 token / 每趟搬运)"]
        A1["搬 700 亿权重"] --> A2["算 1 token"] --> A3["搬 700 亿权重"] --> A4["算 1 token"]
    end
    subgraph 投机解码["投机解码(N token / 每趟搬运)"]
        D0["1B 草稿模型<br/>快速猜 5 token"] --> D1["搬 700 亿权重<br/>(只走一趟)"]
        D1 --> D2["目标模型批量验证 5 token"] --> D3["接受约 3.7 个<br/>输出等价"]
    end
    style A1 fill:#f5c6c6
    style A3 fill:#f5c6c6
    style D1 fill:#c6e0c6
    style D3 fill:#c6e0c6

最关键的信息差在这里:投机解码的输出和标准解码数学等价,完全无损。 任何被拒绝的 token 都会被目标模型的真实输出替换,目标模型的概率分布被 100% 保留。它不是"近似"、不是"采样抖动"——这是很多国内团队一听"投机"两个字就误以为"会牺牲质量"而拒用的根因。你只要不换模型、不换卡,解码就能白赚一倍速度。

三、2026 年草稿模型的三代进化:从 2x 到 6x

投机解码的威力取决于草稿模型猜得多准。2024 年的朴素版接受率只有 0.6–0.75,加速 2–3x;到 2026 年,这条路线已经卷出三代,加速翻倍:

变体 原理 接受率/加速 代表
Draft Model(朴素) 独立小模型猜 token 0.6–0.75,2–3x Llama 3.2 1B 配 70B
EAGLE / EAGLE-2 草稿模型吃大模型的内部特征(不是 token embedding),动态候选树 3x+ HuggingFace 有 Llama/Qwen/Mistral 全家桶
EAGLE-3(2026) 改吃多层隐藏态、直接预测 token HumanEval 上 ~4.8x yuhuili/EAGLE3-LLaMA3.3-Instruct-70B
P-EAGLE(2026) 并行起草,K 个候选一次出,再构验证树 4–5x,比 EAGLE-3 再快 20–30% AWS 在 2026 年初贡献进了 vLLM 主线
DFlash block diffusion,块级并行 6x+ 新生代,checkpoint 较少

落到真金白银,Spheron 用 Llama 3.3 70B(FP8)在 H100 PCIe 上的实测(2026-03-24 定价),每 100 万输出 token 成本的塌缩曲线:

解码模式 tokens/秒 每 1M token 成本 相对标准解码
Standard(标准) ~1,200 ~\$0.46 100%
Draft model(Llama 3.2 1B) ~2,600 ~\$0.21 −54%
EAGLE-3 ~3,600 ~\$0.15 −67%
DFlash ~9,000 ~\$0.06 −87%

同一张卡、同一个模型,什么都没换,只是把解码方式从"逐个搬"换成"草稿+批量验",成本直接砍掉一半到八成。在更小的 Llama 3.1 8B + L40S 上,EAGLE-3 把成本压到 \$0.06/1M,吞吐冲到 ~10,000 tokens/秒——这个价位已经比绝大多数国内 API 转售商还便宜,而且是你自建、数据不出门。

四、五个 flag,本地立刻复刻

不需要自研框架,开源 vLLM(≥ v0.8.0)原生支持。给容器加这几个参数:

docker run --gpus all --ipc=host -p 8000:8000 \
  -e HUGGING_FACE_HUB_TOKEN=your_token \
  vllm/vllm-openai:v0.8.0 \
  --model meta-llama/Llama-3.3-70B-Instruct \
  --quantization fp8 \
  --speculative-model yuhuili/EAGLE3-LLaMA3.3-Instruct-70B \
  --num-speculative-tokens 6 \
  --speculative-draft-tensor-parallel-size 1 \
  --gpu-memory-utilization 0.94 \
  --speculative-disable-by-batch-size 32 \
  --host 0.0.0.0 --port 8000

五个 flag 各管一摊:

  1. --speculative-model:指草稿模型。硬规矩是草稿必须和目标同架构家族(Llama 配 Llama、Qwen 配 Qwen),tokenizer 要一致。EAGLE-3 的 checkpoint 在 HuggingFace 公开,无需 token。
  2. --num-speculative-tokens:每次猜几个。从 5 起调;若生产流量的接受率稳定 >0.8,再加到 7–8;若 <0.5,砍到 3。
  3. --speculative-draft-tensor-parallel-size 1:草稿模型再小也够,固定 1 卡,省 VRAM。
  4. --gpu-memory-utilization 0.94:默认 0.90 装不下两个模型,抬高到 0.94。草稿只多吃 2–6GB(H100 80GB 跑 70B FP8 + 1B 草稿约占 76GB)。
  5. --speculative-disable-by-batch-size 32:这个是救命 flag,见下一节。

验货标准看一个指标就够:

curl http://localhost:8000/metrics | grep spec_decode

盯 vllm:spec_decode_draft_acceptance_rate——目标 >0.70;跌破 0.50 说明草稿模型和你的真实流量分布不匹配,要么换 EAGLE-3 checkpoint,要么把猜的 token 数砍到 3。

五、致命陷阱:这三类场景,投机解码反而更贵

这才是海外生产实战里、国内文档几乎不讲的高价值信息差——投机解码不是万能开关,装错地方反而倒扣 30–40% 吞吐。

# 一条够用的决策规则
if batch_size > 32 or output_tokens < 50 or task == "embedding" or task == "creative_random":
    use_standard_decoding      # 老老实实别开
else:
    enable_speculative_decoding

三个"绝对别开"的场景:

记住一句话:投机解码吃的是"低并发 + 低熵 + 中长输出"的流量,其他场景请走标准解码。

六、信息差总结:你知道的 vs 别人白赚的

维度 多数人的认知(贵) 海外生产实况(便宜)
解码瓶颈 算力不够,要换更大的卡 内存带宽,改解码方式即可
投机解码质量 "投机=近似,会降质量" 数学等价,零损失
70B 解码成本 \$0.46/1M(标准) \$0.06–0.15/1M(EAGLE-3/DFlash)
加速天花板 换 H200、加卡 软件层 4–6x,P-EAGLE 已进 vLLM 主线
适用边界 以为全能提速 batch>32 / <50 token / 高熵时反而更贵
谁在用 少数 infra 团队 AWS、vLLM、SGLang 已默认押注

对比参照:同样是为了省钱,已被讲烂的路由(RouteLLM 那套,省 85%、保 95% GPT-4 性能)是"按难度换模型",会动质量边界;而投机解码是"同模型、同质量、纯加速"——两者可以叠加:路由决定用哪个模型,投机解码决定这个模型解码多快。中国团队大多只抄到了路由那一层,解码这一层几乎没人动。

七、行动指南:今晚就能上手

  1. 自建推理的同学:如果你的业务是聊天 API、代码补全、agent 长对话这类低并发低熵流量,挑一个和你目标模型同家族的 EAGLE-3 checkpoint,在 vLLM 加上那 5 个 flag,A/B 对比 acceptance_rate 和 tokens/秒。预计当晚就能看到成本对半砍。
  2. 用国内 API 转售的同学:挑明问服务商"你们后端开了投机解码吗"——开了的(同等 token 价)实际吞吐和延迟会明显更好,这是选型的隐藏维度。
  3. 跑 MoE 模型(GLM-5.1、DeepSeek V4)的同学:注意,MoE 的专家路由会让草稿预测变复杂,需要专门的 MoE 版 spec 方案,别拿稠密模型的 checkpoint 直接套,接受率会很差。
  4. 避免踩坑:开之前先用 benchmark_serving.py 量真实流量的 batch 分布;高并发场景务必带 --speculative-disable-by-batch-size 32,否则流量一来就翻车。
  5. 进阶玩家:把草稿模型量化到 FP8/INT4(ModelOpt PTQ 流水线)进一步压延迟,再叠 prompt cache,三件套一起上,解码账单能压到原来的 1/4 以下。

核心一句话:当搬运贵于计算时,"先猜后验"就是结构性的套利空间。 海外已经把这套机制做进了开源框架主线,国内还在讨论"该不该上 4090"。这就是这一轮的 information gap。

参考来源


本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入