https://zhuanlan.zhihu.com/p/720157057
主要用于解决 KV cache 的内存碎片问题。
类比于操作系统的内存碎片管理。
有两种碎片:
操作系统的解决办法:
将进程的虚拟地址空间,分成一个一个的 page。把物理地址空间也分成一个一个的 frame。page 跟 frame 的大小要一样。然后用一个 page table 来维护他们之间的映射关系(page → frame 的单向映射关系)。
在 LLM 推理中如何工作:
每一个 sequence 都需要申请显存用来存放 kv cache。sequence 完成之后,kv cache 就可以释放。不同 sequence 之间的 kv cache 互不干涉。所以每个 sequence 可以类比为一个进程,为 sequence 申请 kv cache 类比为申请内存。
paged attention 跟操作系统内存管理策略的类比对比