先这样答
大模型解码慢的根源不是算力不够,是每生成一个 token 都要把全部权重从显存搬一遍,显存带宽先到顶,计算单元反而在等数据。投机解码的思路是:让一个小得多的草稿模型连猜几个 token,大模型用一次前向(完整过一遍网络)把这串猜测并行验证,猜对的直接采纳,遇到第一个错的就从那里重猜。权重还是只读一次,却可能产出好几个 token,搬运成本被摊薄了。
关键在验证环节的接受准则。每个被猜中的 token 都要按概率准则校验,整个方案在数学上保证最终输出和大模型自己逐个生成完全同分布,所以它被称为无损加速,质量不打折。加速比取决于草稿命中率:小模型和大模型口味越接近,猜中被接受得越多,单步产出越多;命中太低,验证就成了白做的功,速度甚至可能变慢。
所以回答「小模型凭什么给大模型加速」,核心两句话:一是解码瓶颈在带宽不在算力,一次前向顺带验证多个 token 不亏;二是小模型只管起草,大模型负责定稿,质量由大模型的分布兜底。这项技术现在已是各家推理框架的常见配置,属于推理方向必会的内容。
面试官会怎么追问
- 「为什么验证比逐个生成快?」 逐个生成 k 个 token 要做 k 次前向,每次都完整读一遍权重;验证 k 个 token 是一次前向并行处理 k 个位置,权重只读一次。解码阶段卡的是带宽,多算一点不算贵,少搬几次权重才是真省。
- 「没有小模型怎么办?」 可以在大模型自己身上找起草者:比如给模型加浅层预测头,一次猜出多个 token;或者让部分层提前输出候选。思路相同,都是找个便宜的起草方式,再走同样的验证流程。
- 「什么任务收益最大?」 草稿命中率高的任务收益最大。代码、格式化文本这类可预测性强的内容,小模型猜得准,加速明显;发挥空间大的创意写作命中率低,收益就缩水。先看任务的可预测性,再谈加速比。
回答的坑
- 说成「小模型生成、大模型润色」。草稿 token 逐个过接受准则,不是事后润色,输出的每一步都由大模型的分布把关,省掉这一步就不再是无损加速。
- 张口就承诺固定加速倍数。加速比取决于草稿命中率,随模型组合和任务变化,给数字前必须先说清这个前提。
同系列的题
—— 本题完 ——