AI Infra Academy
返回题库
困难serving推理系统Chunked PrefillvLLM面试高频腾讯

Chunked Prefill 是什么?解决了什么问题?

10 0 0

参考答案

Chunked Prefill(分块预填充)把一个长 prompt 的 prefill 拆成多个小块,分散到多个调度步中执行,并与其他请求的 decode 步**交错**进行。 **要解决的问题**: - Prefill 是 compute-bound 且一次处理大量 token,一个长 prompt 的 prefill 会长时间独占 GPU。 - 如果此时有其他请求正在 decode,它们会被这个长 prefill 阻塞,导致 TPOT(token 间延迟)出现毛刺、p99 抬高。 - 反之若优先 decode,长 prompt 的 TTFT 又会变长。 **做法**: - 设定单步 token 预算(如 `max_num_batched_tokens`)。 - 把长 prefill 切成若干 chunk,每步只做一个 chunk,剩余预算用来插入其他请求的 decode。 - 这样 prefill 和 decode 混合在同一步,GPU 既不空转也不被长 prefill 独占。 **收益**: - 平滑 TPOT,避免长请求阻塞短请求。 - 提高 GPU 利用率(prefill 的算力富余可与 decode 的带宽需求互补)。 - 在 TTFT 和 TPOT 之间取得更好平衡。 vLLM 通过 `--enable-chunked-prefill` 开启,是混合负载在线服务的常用手段。

讨论区(0)

还没有评论,来做第一个发言的人吧