TL;DR
大模型生成回复时是一个字一个字蹦出来的,这是它慢的根本原因。DSpark 这篇新论文提出了一种"先猜后验"的加速方法:让一个轻量模型快速草拟多个候选字,大模型再一次性验货,同时根据自信程度动态决定"多猜几个还是赶紧验"。这就像一个有经验的编辑和一个快手写手的配合——写手负责快速堆草稿,编辑负责把关,自信时多写几行再交,没把握时写完一句就交。本文用人话拆解这套机制。
1. 大模型为什么"慢"?
要理解 DSpark 在加速什么,得先理解大模型生成文本的方式。
GPT、Claude、文心一言这些大模型,生成回复时是一个 token(可以理解为一个字或一个词)接一个 token 地生成的。每次生成下一个 token,都要跑一遍整个模型的全部参数。这个过程叫做自回归生成(Autoregressive Generation)。
用一个比喻:你让一个大厨炒菜。这位大厨的规矩很奇怪——每切一刀菜,就必须把整个厨房从头到尾检查一遍,确认所有调料、锅具、火候都对,才切下一刀。菜最终很好吃,但慢得令人发指。
大模型的"厨房检查"就是跑一遍几十亿甚至上千亿参数的神经网络。token 越多越慢,这是物理规律。
过去两年,业界的加速思路主要有两条:一条是优化硬件和模型本身(量化、蒸馏、Flash Attention 等),另一条是改变生成方式。DSpark 走的是第二条路,它属于一个叫做推测解码(Speculative Decoding)的技术家族。
2. 推测解码的核心思想:“先猜后验”
推测解码的基本思路其实很朴素:
与其让大模型一个字一个字地写,不如让一个小模型先草拟几个字,大模型再一次性"验货"。
具体流程是这样的:
用一个轻量级的小模型(draft model)快速生成 K 个候选 token。比如"今天天气"后面,小模型猜是"真不错"。小模型参数少,跑得快,生成这 3 个字几乎不花时间。
大模型一次性把这 3 个候选 token 和前面的上下文一起输入,并行验证。验证的意思是:大模型自己算一遍"如果是我,我会不会也生成’真不错’这三个字?"
如果大模型认可了前两个(“真不”),但第三个(“错”)不认可,那就只接受前两个,第三个用自己的版本替换。
这个过程相当于:快手写手(小模型)疯狂堆草稿,资深编辑(大模型)快速把关。写手猜对几个字,就省了几次"大模型跑一遍全部参数"的时间。
但这里有三个关键问题,之前的方法没解决好:
- 一次猜几个字最划算?猜少了浪费大模型的并行验货能力,猜多了猜错的概率高,浪费小模型的草稿。
- 小模型的草稿质量怎么保证?如果小模型猜得太离谱,大模型验货时全部否决,等于白猜。
- 不同场景下策略要不要变?写代码时模型很自信(语法确定性高),写诗时模型不自信(创意空间大),猜字策略应该不同。
DSpark 的创新点就是在这三个问题上给出了更聪明的答案。
3. DSpark 的两个核心创新
创新一:半自回归生成(Semi-Autoregressive Generation)
传统推测解码中,小模型也是一个字一个字猜的,只是猜得快。DSpark 让草稿模型一次性猜出多个 token——比如同时猜"真"、“不”、“错"三个字,而不是先猜"真”,再基于"真"猜"不"。
这叫做半自回归:不完全是一个字一个字,也不完全是整句话同时出,而是一小段一小段地并发生成。效果是:草稿阶段也加速了。
创新二:置信度调度(Confidence-Scheduled Verification)
这是 DSpark 最核心的贡献。它的思路是:根据大模型当前的"自信程度",动态决定一次验证多少个 token。
怎么判断自信程度?看大模型对前几个 token 的概率分布。如果大模型对下一个 token 的选择非常确定(比如"1+1=“后面,99.9% 的概率是"2”),说明这个位置确定性高,可以多猜几个再验。如果概率分布很均匀(比如"我最喜欢的颜色是"后面,红蓝绿黄各有 20%),说明不确定性高,应该少猜、快验。
DSpark 把这个过程自动化了:不需要人工设置"一次猜几个",而是让系统根据实时的置信度信号,动态调整草稿长度和验证频率。
回到那个编辑和写手的比喻:自信时写手多写几段再交稿(“这章我很确定”),不自信时写一句就交(“这段我不太确定,您先看看方向对不对”)。
4. 这对普通用户意味着什么?
你不需要看懂论文里的公式。作为大模型的使用者,DSpark 这类技术落地后,你会感受到几个变化:
对话更"跟手"。现在很多大模型聊天时有一种"打字机"的感觉——字一个字地往外蹦。推测解码成熟后,回复会更像"一段一段地弹出来",体感更快。
长文本生成不再煎熬。让大模型写一篇 3000 字的文章,现在可能要等 20 秒。推测解码理论上可以把生成速度提升 2-3 倍,同样的文章可能 7 秒就出来了。
API 成本下降。对开发者来说,更快的推理速度意味着同样的 GPU 可以服务更多用户,API 调用的成本也会随之下降。DSpark 的论文特别强调了"实时生产环境中的每用户生成速度和总吞吐量",说明它的设计目标就是生产级部署。
但不会改变模型"智力"。推测解码是无损加速——大模型最终输出的每个 token 都经过了自己验证,不会因为加速而变笨。它只是省掉了"大模型亲自写"的时间,没有省掉"大模型亲自审"的环节。
5. 推测解码不是唯一的路,但是最实用的路
在大模型推理加速这个方向上,有三条主流技术路线:
- 模型压缩(量化、蒸馏、剪枝):让模型本身变小。代价是可能损失精度。
- 硬件优化(专用芯片、更好的 GPU 调度):从底层加速。代价是贵。
- 推测解码:不改变模型,不换硬件,只改变生成策略。
DSpark 属于第三条路,这也是它实用价值最高的地方——它不需要重新训练模型,不需要买新 GPU,只要部署一套草稿-验证机制就能提速。对于已经跑着大模型的服务来说,这是一条"零成本加速"的路。
当然,推测解码也有代价:需要额外部署一个草稿模型(虽然很小),而且草稿模型和主模型之间的协调本身也有开销。DSpark 的置信度调度本质上就是在最小化这个开销——让草稿和验证之间的"配合"更聪明,减少无效劳动。
6. 参考资料
- DSpark: Confidence-Scheduled Speculative Decoding with Semi-Autoregressive Generation
- Leviathan et al., Fast Inference from Transformers via Speculative Decoding (ICML 2023) — 推测解码的开山之作
- Chen et al., Accelerating Large Language Model Decoding with Speculative Sampling (2023) — DeepMind 同期独立提出的类似方法