中等serving推理系统PagedAttentionvLLM字节跳动面试高频
PagedAttention 解决了什么问题?原理是什么?
8 0 0
参考答案
PagedAttention 是 vLLM 提出的 KV Cache 内存管理算法,借鉴操作系统的虚拟内存分页思想。 **要解决的问题**:传统实现为每个请求按 max_seq_len 预分配一整块连续 KV Cache 显存,导致两类浪费: 1. **内部碎片**:请求实际长度远小于 max_len,预留空间闲置(可浪费高达 60%-80%)。 2. **外部碎片 + 无法共享**:连续分配难以复用,多个请求共享的 prefix 无法共享内存。 **原理**: - 把 KV Cache 切成固定大小的 block(如 16 个 token 一块)。 - 每个序列用一张"块表"(block table)把逻辑位置映射到物理块,物理块可以不连续。 - 按需分配块,几乎消除内部碎片(浪费 < 一个块)。 - 支持 **Copy-on-Write** 和前缀共享:多个请求(如相同 system prompt、或 beam search 分支)可共享同一批物理块,直到发生写入才复制。 **收益**:显存利用率接近 100%,可容纳更大 batch,吞吐相比朴素实现提升可达一个数量级。
讨论区(0)
还没有评论,来做第一个发言的人吧