1. vLLM 的 PagedAttention 与连续批处理(continuous batching)原理与运维收益?
vLLM 的 PagedAttention 技术与连续批处理(continuous batching)机制的原理是什么?二者在运维上能带来哪些收益?
- PagedAttention 的显存分页复用机制
- 连续批处理与静态批处理(static batching)的差异
- 对吞吐、显存利用率与延迟的运维收益
PagedAttention 借鉴操作系统的虚拟内存分页思想,将 KV cache 按固定大小的块(block)分配,而非为每个请求连续预留整段显存。这样既避免了因预留不足导致的显存浪费,也消除了请求长度变化造成的显存碎片,GPU 显存利用率得以提升,吞吐量(tokens/s)较传统批处理方案可提升 2-4 倍。连续批处理(continuous batching / iteration-level scheduling)则是在每个解码步骤(iteration)动态地加入新请求、移出已完成请求,而不是像传统静态批处理那样等待一个 batch 全部完成才释放资源。两者结合,使吞吐量(tokens/s)大幅提升,同时保持较低的 TTFT 与 TPOT。
传统自回归解码中,一个 batch 中所有请求必须同步推进,慢请求会拖累整个 batch(头部阻塞)。连续批处理在 token 粒度调度,让 GPU 始终处于接近满载状态;PagedAttention 则从显存层面消除"预留浪费"与"碎片",二者是吞吐优化的一体两面。运维上意味着同样显存可服务更多并发、支持更长上下文,从而降低单位 token 成本。
# vLLM 部署关键参数(提升吞吐与显存利用率)
resources:
limits:
nvidia.com/gpu: "1"
args:
- --max-model-len=8192
- --max-num-seqs=64 # 并发序列数,配合连续批处理
- --gpu-memory-utilization=0.90
- --enable-chunked-prefill # 分块预填充,降低长 prompt 的 TTFT