[控场AI]
· 4 分钟阅读· 2,004 字

LoopVQ:循环Transformer的亚1比特KV缓存量化

LoopVQ:循环Transformer的亚1比特KV缓存量化

LoopVQ用联合向量量化压缩循环Transformer的KV缓存,0.5比特下保性能并大幅提速。

循环Transformer通过复用同一组层减少参数,但每个循环步骤都需独立存储KV缓存,导致缓存随循环步数线性膨胀,成为长上下文部署的主要障碍。LoopVQ利用循环轴上的高度冗余,将多个循环步骤的通道联合编码为向量进行量化,并微调码本以对齐全精度输出,在0.5比特/元素下于通用任务、长链推理和长上下文检索上超越针对标准LLM的KV量化方法。该方法与TaSQ等标准量化方法正交,叠加后0.25比特仍保留大部分BF16精度。在SGLang实现中,32K上下文解码延迟近乎减半,1.4B与2.6B Ouro模型峰值吞吐分别提升4.3倍和6.1倍。

循环Transformer(Looped Transformer)通过重复应用相同层来减少参数内存,却带来了新的瓶颈:每个循环步骤都需存储独立的键值(KV),导致KV缓存随循环步数线性增长。LoopVQ提出了一种针对循环架构的KV缓存向量量化方法,在0.5比特/元素的极低精度下仍能保持模型性能,并在SGLang实现中大幅提升服务吞吐。

LoopVQ论文标题截图

循环Transformer的KV缓存困境

循环语言模型通过多次复用同一组层,以更少的参数达到了与非循环模型相当的性能。这种参数效率优势显著,但代价是推理时每个循环步骤都要保存自己的KV缓存。随着循环步数增加,KV缓存占用的内存线性膨胀,成为部署长上下文、长链推理任务的主要障碍。

研究团队观察到,循环模型的KV缓存沿循环轴存在高度冗余,且不同循环步骤对量化的敏感度差异很大。这为压缩提供了两个切入点:利用循环间的相关性,以及针对敏感度分配比特资源。

KV缓存是自回归Transformer推理时的核心机制:生成每个新token时,模型需要重新计算注意力,而历史token的键(Key)和值(Value)向量在先前步骤中已经算过,缓存下来即可避免重复计算。标准Transformer每层只有一份KV缓存,大小与上下文长度成正比;而循环Transformer把同一组层反复执行多次,每次循环都相当于一次"新层"的注意力计算,因此必须为每个循环步骤单独保存一份KV,缓存总量约为标准模型的循环步数倍。这正是循环架构"省参数却费缓存"的根源,也是长上下文场景下显存占用的主要来源。

向量量化与标量量化的区别在于:标量量化对每个数值独立取整,而向量量化把多个数值组成一个向量,整体映射到预先学习的码本中最近的码字。由于码本可以捕捉维度间的相关性,向量量化在相同比特率下通常能保留更多信息,但需要额外的码本存储和最近邻搜索开销。LoopVQ正是利用这一特性,把同一通道在多个循环步骤上的取值组成向量联合编码,从而在极低位宽下维持精度。

LoopVQ的核心设计:联合编码与码本微调

LoopVQ是一种向量量化方法,其关键创新在于联合编码多个循环步骤的通道,而非独立处理每个步骤。通过捕捉循环轴上的冗余,它能在极低位宽下保留更多信息。此外,LoopVQ对码本进行微调,使量化后的输出对齐全精度模型的输出,从而补偿量化误差。

这种设计使LoopVQ在0.5比特/元素时,就在通用任务、长链思维推理和长上下文检索任务上超越了针对标准LLM的现有KV缓存向量量化方法。实验基于Ouro和Huginn模型进行。

码本微调是向量量化中的常见后处理手段。初始码本通常由k-means等聚类算法在少量校准数据上得到,但聚类目标(最小化重构误差)与下游任务目标(保持模型输出)并不一致。LoopVQ在量化后额外优化码本,使量化模型的注意力输出尽量逼近全精度模型的输出,相当于用任务损失校正量化误差。这种做法与GPTQ等训练后量化方法的思想一致,但作用对象是码本而非逐权重缩放因子。

与现有方法的正交性与协同效应

LoopVQ的设计与标准LLM的KV缓存量化方法正交,意味着可以叠加使用。当与TaSQ结合时,即使在0.25比特/元素的极低比特率下,LoopVQ仍能保留大部分BF16精度。这种兼容性为实际部署提供了灵活的精度-效率权衡空间。

推理加速:SGLang实现与吞吐提升

研究团队在SGLang中实现了LoopVQ。在32K token上下文下,解码延迟几乎减半。相比BF16基线,1.4B和2.6B的Ouro模型峰值服务吞吐分别提升了4.3倍和6.1倍。这些数据表明,LoopVQ不仅能压缩内存,还能转化为实际的延迟和吞吐收益。

SGLang是面向大模型推理的高性能服务框架,其核心是RadixAttention——用基数树管理多请求共享的前缀KV缓存,从而在批量服务中复用公共前缀、减少重复计算。LoopVQ接入SGLang意味着量化后的KV缓存需要与这套前缀复用和分页内存管理机制兼容:缓存以更紧凑的格式存储,解码时再解压参与注意力计算。吞吐提升来自两方面:单请求显存占用下降使更大批量成为可能,而解码阶段读取KV的带宽需求降低则直接缩短了每步延迟。

对循环架构部署的意义

循环Transformer的参数效率使其成为资源受限场景的有力候选,但KV缓存膨胀一直是落地障碍。LoopVQ从量化角度切入,在亚1比特精度下维持模型能力,并与现有量化方法协同,为循环模型的长上下文服务提供了可行的内存解决方案。随着循环架构在语言建模中的关注度上升,针对其特性的压缩技术将变得愈发重要。

#LoopVQ#KV缓存量化#循环Transformer#向量量化#SGLang#亚1比特量化#长上下文推理
分享:

相关推荐