量化、KV Cache、并行与推理部署
面试问题 高级 重要度 4/5 知识骨架 提取阶段

Continuous Batching 为什么提高吞吐?

解释不同长度请求如何在 token 级动态组成批次,以及吞吐与单请求延迟的权衡。

发布于 2026-08-31

当前显示参考答案
本文目录

    Serving load pattern examples。请求长度与到达时间不齐时,连续批处理通过动态重组减少空槽。

    图:请求长度与到达时间不齐时,连续批处理通过动态重组减少空槽。 来源:Serving load pattern examples,作者 vLLM Project contributors,许可 Apache-2.0。

    考察意图

    考察在线生成请求长度不一致时的 GPU 调度与服务权衡。

    60–90 秒口述答案

    静态批处理要等同一批所有序列结束,短请求完成后仍可能占据批次位置。Continuous Batching 在 token 迭代边界动态移除完成请求并加入新请求,让设备持续处理有效 token,降低空槽和等待,因此提高总体吞吐。它需要调度器管理每条序列的状态和 KV Cache。批次变大可能提高吞吐,却增加排队、每 token 延迟和尾延迟,所以还要按优先级、上下文和 SLO 做准入与调度。

    深入解释

    Prefill 与 Decode 的计算特征不同,调度器可能拆分大 Prefill,避免阻塞正在生成的请求。

    工程权衡

    吞吐优先、延迟优先和公平性策略不能同时最大化;长上下文和长输出请求应有独立配额。

    完整复习答案

    先拆开一次请求

    画出每个迭代步移除已完成序列、插入新请求的调度过程,并比较静态批次的 padding 与尾部空槽。

    用数量级定位瓶颈

    吞吐收益以排队和公平性为代价;需要 token budget、抢占/换出、chunked prefill 与优先级策略。

    静态批次中四个请求分别生成 10、40、80、100 token,短请求完成后槽位长期空闲。连续批处理每个 decoding step 移除完成请求并补入新请求,提高有效 token 占比;但若不断插入长 Prefill,也可能阻塞正在 Decode 的交互请求。

    这个估算给出量级。代入项目参数时需要写明忽略项,并保持单位一致。

    压测应回答什么

    围绕“Continuous Batching 为什么提高吞吐”,压测写明模型、dtype、并行度、硬件、输入输出长度分布和到达方式,同时报告 TTFT、TPOT、端到端尾延迟、tokens/s 与显存水位。容量取满足 SLO 的安全点。

    追问参考

    吞吐提升但 P99 变差,调度器可能做了什么?

    对“Continuous Batching 为什么提高吞吐”而言,吞吐提高而 P99 变差通常来自更大批次、更长等待窗口或 Prefill 抢占 Decode;查看 queue time、batch token 数和每阶段时间即可区分。

    OOM 是权重、激活、临时 workspace 还是 KV Cache 导致?

    回到“Continuous Batching 为什么提高吞吐”,需要区分:OOM 要按权重、KV、激活、workspace 与碎片拆账,并用输入/输出长度、并发和块水位复现,不能只归因于“模型太大”。

    怎样判断方案已经达到上线条件?

    “Continuous Batching 为什么提高吞吐”进入发布方案前,性能结论需绑定硬件、dtype、模型、并行度、长度分布、并发模型和 SLO;离线峰值不能直接当线上容量。

    常见错误回答

    把 Continuous Batching 当成简单增大 batch size,忽略请求在生成过程中动态进出。

    连续追问

    • Prefill/Decode 如何共同调度?
    • Chunked Prefill 解决什么问题?
    • 怎样控制尾延迟?

    项目结合

    准备并发阶梯压测,报告吞吐、TTFT、TPOT、P95/P99 与拒绝率,而不只给平均延迟。

    来源与关联知识

    输入关键词,查找全部技术文章。

      搜索范围:正文、标题、分类和标签