中等serving推理系统vLLM面试高频美团
Continuous Batching 下,如何设置 max-num-seqs 和 max-num-batched-tokens?
6 0 0
参考答案
这两个是 vLLM 连续批处理的核心调度参数,控制吞吐与延迟的权衡。 **`--max-num-seqs`**:一个调度步里最多同时处理的序列数(并发上限)。 - 太小:并发不足,GPU 吃不饱,吞吐低。 - 太大:单步 decode 变慢、KV Cache 压力大、易触发抢占,TPOT 变差。 - 设置:按期望峰值并发设(如高流量 API 设 256~512),并受 KV Cache 显存约束。 **`--max-num-batched-tokens`**:一个调度步里最多处理的 token 总数(prefill 的 token + decode 的 token)。 - 主要影响 prefill:一次能塞进多少 prompt token。 - 太小:长 prompt 的 prefill 被切太碎,TTFT 变长。 - 太大:一步做太多 prefill,阻塞 decode,抬高 TPOT。 - 高吞吐场景设 8192 或 16384。 **配合关系**: - 开启 chunked prefill 时,`max-num-batched-tokens` 决定每步 prefill chunk 大小,剩余预算给 decode。 - 二者共同决定 batch 的组成。需结合 `--gpu-memory-utilization`(KV 池大小)一起调。 **调优方法**:按 TTFT/TPOT 的 SLO 压测,从推荐值开始,观察 `gpu_cache_usage_perc` 和抢占次数,逐步调整。
讨论区(0)
还没有评论,来做第一个发言的人吧