为什么内存碎片化是生产环境中第一个出问题的环节
在生产环境中,KV缓存(即存储先前token的键值对)会随每个请求而增长和收缩,如果管理不当,会因碎片化和重复占用而浪费内存,从而限制可批量处理的请求数量。最初的PagedAttention论文(2023年)表明,现有系统在此方面浪费了大量内存,而通过借鉴虚拟内存分页技术,vLLM实现了近乎零浪费,并将吞吐量相比FasterTransformer和Orca等最先进系统提升了2–4倍[5]。这一吞吐量提升正是关键所在:批量处理的请求越多,每个请求的成本就越低,这也是分页注意力成为标准的原因。
但这一修复并非没有代价。2024年一项引入vTensor的研究发现,即便采用了分页注意力机制,内存碎片化在实践中依然存在——与vLLM相比,vTensor的虚拟内存方法在A100上释放了约71%(57GB)的GPU内存,从而支持更耗内存的工作负载[2]。这差异相当显著:如果你在运行大型模型,那多出来的内存可能就决定了是能塞进一个批次,还是直接遭遇内存溢出错误。因此,第一个生产环境中的故障模式不仅仅是碎片化本身,而是分页注意力并未完全消除它——它只是减轻了问题,你仍需监控残余的浪费。
在GPU上有效的方法,在TPU或其他加速器上可能失效
分页注意力是为GPU设计的,迁移到TPU等其他硬件会引入新的故障模式,因为内存模型和内核执行方式不同。一篇2026年关于TPU推理的论文发现,现有的分页注意力内核以GPU为中心,无法很好地映射到TPU上,因此他们构建了一个专门的内核(Ragged Paged Attention),在TPU7x上解码阶段实现了高达86%的内存带宽利用率,预填充阶段实现了73%的模型FLOPs利用率[1]。如果没有这种专门化设计,在TPU上很可能会看到严重的利用率不足和性能低下。
这是一个关键的生产考量:如果你在TPU上部署(出于成本效益这很常见),你不能想当然地认为vLLM的分页注意力机制就能直接运行——你需要针对该硬件调优的内核。同一篇论文将他们的内核集成到vLLM和SGLang中,作为主要的TPU后端,这表明在TPU上实现生产级的分页注意力需要大量的工程投入[1]。因此,失败模式不仅关乎内存,还关乎软硬件协同设计;忽视这一点可能导致灾难性的性能下降。
关于这些来源
这个回答基于5项研究(1篇同行评审,4篇预印本),发表于2023年至2026年间,其中4篇为2024年或之后发表,合计被引用776次。这些研究是从9项通过质量筛选的研究中选出的最相关者,而这9项研究又源自从超过5亿篇论文的数据库中检索到的54篇文献。
本文引用的文献
Ragged Paged Attention:面向TPU的高性能、灵活的大语言模型推理内核
Ragged Paged Attention是一种针对TPU优化的内核,在TPU7x上解码阶段实现了高达86%的内存带宽利用率,预填充阶段实现了73%的模型FLOPs利用率,这表明分页注意力机制需要针对特定硬件进行优化才能在TPU上高效运行。
vTensor:面向高效LLM服务的灵活虚拟张量管理
vTensor利用GPU虚拟内存管理,相较于vLLM的分页注意力内核实现了最高3.27倍的加速,并在A100上释放了约71%(57GB)的内存,这表明分页注意力仍存在内核开销和残余碎片化问题。
面向资源高效的LLM推理服务,进行机器学习与系统的协同设计
本论文探讨了模型层面的优化(提示压缩、量化)以及基于vLLM构建的系统组件,但指出将其完整集成到端到端服务系统中仍是正在进行的工作,因此并未直接涉及生产环境中的故障模式。
分页注意力遇上FlexAttention:解锁部署推理中的长上下文效率
将IBM FMS中的PagedAttention与FlexAttention集成,可将延迟增长从128个token到2048个token时降至约2倍,但分页注意力机制的二次幂分配方式导致内存增量仅在序列超过2048个token时出现。
针对大语言模型服务的高效内存管理:PagedAttention
原始PagedAttention论文(2023年)表明,vLLM实现了近乎为零的KV缓存浪费,并且相较于FasterTransformer和Orca,吞吐量提升了2–4倍,且在更长序列和更大模型上提升效果更为显著。
