真实面经题目 · 原创解析
投机解码如何通过 draft model 和 target model 的接受/拒绝机制降低大模型推理延迟?服务化落地时如何评估吞吐、首 token 延迟、接受率、显存和成本收益?
这道题考察投机解码原理与服务化评估。回答要讲清 draft model 先生成多个 token,target model 并行验证接受/拒绝,并用接受率、吞吐、TTFT、显存和成本衡量收益。
真实面经题目 · 原创解析
这道题考察投机解码原理与服务化评估。回答要讲清 draft model 先生成多个 token,target model 并行验证接受/拒绝,并用接受率、吞吐、TTFT、显存和成本衡量收益。
投机解码的思路是用一个更快的 draft model 先猜接下来若干 token,再让 target model 一次前向验证这些 token 是否与自身分布一致。如果 draft token 被接受,就相当于 target model 用一次计算推进多个 token;如果某个 token 被拒绝,就按 target 与 draft 的校正残差分布采样替代 token,并回到下一轮流程。正确实现不会改变 target model 的目标分布,关键是用便宜模型减少 target model 的自回归步数。 服务化落地不能只说延迟下降。收益取决于 draft 模型速度、draft length、接受率、target 验证批处理效率、额外显存、调度复杂度和请求长度。评估要分 prefill 和 decode:TTFT 主要受 prefill 和排队影响,投机解码更直接改善 decode tokens/s 和长回答延迟;短请求可能收益不明显甚至变慢。指标上看吞吐 tokens/s、TPOT、TTFT、P95/P99、接受率、拒绝位置分布、GPU 利用率、显存、成本/千 token、输出质量一致性和与连续 batching/KV cache 的兼容性。上线时要做按场景开关和动态 draft length。
draft model 生成多个候选 token,target model 对这些 token 做并行验证。连续接受越多,target 自回归步数减少越多,整体 decode 越快。
验证过程要保证输出分布与 target model 一致。被接受的 token 直接并入序列,被拒绝的位置按 target 与 draft 的校正残差分布采样,之后重新进入下一轮。
draft 必须足够快且足够接近 target。draft 太弱接受率低,额外计算浪费;draft 太大又失去速度优势。draft length 也要和接受率匹配。
看 tokens/s、TPOT、TTFT、P95/P99、接受率、显存和成本。投机解码常对长输出 decode 更有收益,对短请求和排队主导场景收益有限。
要考虑 continuous batching、paged KV cache、prefix cache、采样参数、流式输出和多租户调度。draft 与 target 的状态管理会增加实现复杂度。
理论上保持 target 分布,但工程实现仍要验证输出一致性、采样参数、拒绝逻辑和边界 case。不能让加速破坏安全策略或格式遵循。
可以换更接近 target 的 draft、缩短 draft length、按领域微调 draft、使用 n-gram/Medusa 类方法,或只对接受率高的场景开启。
正确实现下目标分布应与 target 一致。但工程中采样参数、数值精度、拒绝逻辑和安全过滤可能出错,所以仍要做一致性和业务评测。
短回答 decode token 少,draft/target 切换、验证和调度开销可能抵消收益。若瓶颈是排队或 prefill,投机解码也帮不上太多。
按模型、请求长度、当前负载、历史接受率和延迟预算决策。低接受率或短输出场景关闭,高接受率长输出场景开启。