大语言模型硬件利用与批量调优策略
1. PagedAttention:高效管理KV缓存
1.1 传统KV缓存管理问题
在大语言模型(LLM)系统中,管理KV缓存至关重要。现有的大语言模型服务方法在高效管理键值缓存内存方面常面临挑战。该内存存储请求状态,具有动态性,随新令牌生成而增减。低效管理会导致内存碎片化和冗余复制,限制批量大小和吞吐量。传统系统将KV缓存存储在连续内存空间,导致内部和外部内存碎片化,且错过内存共享机会,尤其在使用并行采样和束搜索等高级解码算法的场景中。
1.2 PagedAttention的引入
为解决这些问题,引入了PagedAttention。它借鉴操作系统中的虚拟内存和分页技术,将KV缓存划分为块,每个块包含固定数量令牌的注意力键和值。这些块不必连续存储,类似于操作系统的虚拟内存,可更灵活地管理。这种方法通过较小的块减轻内部碎片化,消除外部碎片化,因为所有块大小统一,还能在请求内部和请求之间实现块级别的内存共享。vLLM实现了PagedAttention,该LLM服务系统在KV缓存内存中实现了近乎零浪费,并能灵活共享KV缓存,进一步减少内存使用。
1.3 PagedAttention的工作原理
以vLLM解码单个输入序列为例,它最初不为生成序列的整个潜在长度预留内存,仅为计算提示时产生的KV缓存预留必要的KV块。例如,提示由七个令牌组成,vLLM将前两个逻辑KV块(0和1)映射到两个物理KV块(如7和1)。在预填充阶段,vLLM使用标准自注意力算法为提示和初始输出令牌生成KV缓存,将前四个令牌的KV缓存存储在逻辑块0中,后续三个令牌存储在逻辑块1中,并为自回归生成的后续阶段预留一个插
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



