← 返回概念解读

Concept Fable精修版

分页注意力

PagedAttention · LLM inference optimization

先读故事。这里不急着给定义,先让问题自己长出来。

寓言故事

航运账房把货舱改成编号格以后

江上有艘大货船,常接长短不一的货。旧船法给每位客人留一整排舱位,不管他只放三箱还是三十箱。短货占着空格,长货又常放不下,船主总嫌船小。

新管舱人把船舱切成许多编号小格。客人的货不必连在一起,只要在货票上写清第一格、下一格和顺序。三箱货占三格,三十箱货占三十格,空格随时可给别人。

水手起初害怕找乱。管舱人给每票货做映射牌:第几箱在哪格,下一箱接哪格,缺一格立刻能查。货不再靠记忆排成长队,而靠编号和牌子保持顺序。

有次一位大客临时追加十箱,旧法要整排挪舱。新法只找零散空格接上,映射牌补几行即可。另一位短货客下船后,空出的格子也能立刻被新货使用。

船没有变大,却能接更多客人。长货不再逼着所有人给它连续让位,短货也不再浪费整排空间。代价是管舱必须精确,牌子错一格,货序就会乱。

新法最初让水手不安:货散在各格,会不会丢?管舱人每天抽查映射牌,发现只要牌子可靠,货不必挤在连续舱位。空格被重新利用,大客和小客都少等。

有次暴雨临近,船主临时要腾出一片舱位装救急粮。旧船法只能整排挪货,新格子却能按映射牌把零散空格凑出来。货序没有乱,空间也没有白白浪费。 后来船主才敢接更多零散订单。短货不再浪费整排舱位,长货也能分散安放。编号格和映射牌让空间像活水一样流动,货物顺序却仍能被找回。

船主后来明白,高周转不一定来自更大的船,也来自把底层空间切成可追踪、可复用的小块。只要顺序和边界被牌子管住,零散空间也能服务许多不同长度的请求。

揭示

这个故事讲的是:分页注意力

PagedAttention is the specific vLLM-style implementation of paged KV cache management. It uses block tables to map a sequence’s logical KV positions to physical cache blocks, reducing memory waste and enabling efficient batching for many concurrent requests. In production LLM serving, it is a core technique for improving throughput under long contexts and mixed request lengths.

它重要的地方在于:它不只是一个术语,而是在真实 AI / Agent 系统里会反复出现的结构性问题。理解它,才能判断什么时候该加模型,什么时候该改流程,什么时候该补治理。

隐喻映射

  • 货舱:GPU memory used by KV cache
  • 连续舱位:naive per-request contiguous allocation
  • 固定编号格:PagedAttention blocks
  • 账册映射表:logical-to-physical block table
  • 长短货混载:mixed sequence lengths in serving
  • 同船更多客户:higher concurrency and throughput
  • 最后洞察:PagedAttention 把 KV cache 管成可映射的块,使 serving 系统少浪费显存并更好地做批处理

Soloharness 判断

这个概念的实战价值,是帮你把“看起来聪明的 AI 功能”拆成可交付、可验收、可治理的工作单元。

vLLMKV cachebatchinginference throughputGPU memory