QJL:用于KV缓存量化的零开销1比特量化JL变换
机器学习
2024-07-19 v2 人工智能
计算与语言
性能
摘要
服务大语言模型需要大量内存,因为KV缓存中键值(KV)嵌入的存储需求随序列长度增长。量化是压缩KV缓存的有效方法。然而,传统量化方法由于需要以全精度为每个数据块存储量化常数(至少一个零点和缩放因子),会带来显著的内存开销。根据块大小,每个量化数可能增加1或2比特的开销。我们引入了QJL,一种新的量化方法,由Johnson-Lindenstrauss(JL)变换后接符号位量化组成。与现有方法相比,QJL通过消除存储量化常数的需求,消除了内存开销。我们提出了两个向量内积的非对称估计器,并证明将一个向量应用QJL、另一个向量应用无量化的标准JL变换,可提供一个具有最小失真的无偏估计器。我们开发了QJL草图及其对应内积估计器的高效实现,并集成了一个轻量级CUDA内核以优化计算。当应用于各种大语言模型和NLP任务,将KV缓存量化至仅3比特时,QJL在不损失精度的情况下实现了KV缓存内存使用减少五倍以上,同时运行时间更快。代码可在\url{https://github.com/amirzandieh/QJL}获取。
引用
@article{arxiv.2406.03482,
title = {QJL: 1-Bit Quantized JL Transform for KV Cache Quantization with Zero Overhead},
author = {Amir Zandieh and Majid Daliri and Insu Han},
journal= {arXiv preprint arXiv:2406.03482},
year = {2024}
}
备注
13 pages