70% 大小,100% 准确率:通过动态长度浮点数实现高效 GPU 推理的无损 LLM 压缩

发表
Tianyi ZhangTianyi Zhang 提交
作者: Tianyi ZhangTianyi Zhang, yangsuiYang Sui, Shaochen Zhong, Vipin Chaudhary, Xia Hu, Anshumali Shrivastava

摘要

大型语言模型(LLM)的规模迅速增长,为在资源受限的硬件上高效部署带来了重大挑战。在本文中,我们介绍了动态长度浮点(DFloat11),这是一种无损压缩框架,可以将 LLM 的大小减少 30%,同时保留与原始模型逐位相同的输出。DFloat11 的动机是 LLM 的 BFloat16 权重表示中的低熵,这揭示了现有存储格式的显著低效。通过应用熵编码,DFloat11 根据频率为权重分配动态长度编码,实现接近信息最优的压缩,且不损失任何精度。为了便于使用动态长度编码进行高效推理,我们开发了一个自定义 GPU 内核,用于快速在线解压缩。我们的设计包含以下内容:(i)将内存密集型查找表(LUT)分解为适合 GPU SRAM 的紧凑型 LUT,(ii)一个双阶段内核,用于使用轻量级辅助变量协调线程读/写位置,以及(iii)transformer 块级解压缩,以最大限度地减少延迟。对最近模型(包括 Llama-3.1、Qwen-2.5 和 Gemma-3)的实验验证了我们的假设,即 DFloat11 实现了约 30% 的模型大小缩减,同时保留了逐位精确的输出。与将未压缩模型的部分卸载到 CPU 以满足内存约束的潜在替代方案相比,DFloat11 在令牌生成中实现了 1.9-38.8 倍的更高吞吐量。在固定的 GPU 内存预算下,DFloat11 支持比未压缩模型长 5.3-13.17 倍的上下文长度。值得注意的是,我们的方法使 Llama-3.1-405B(一个 810GB 的模型)能够在配备 8x80GB GPU 的单个节点上进行无损推理。我们的代码和模型可在 https://github.com/LeanModels/DFloat11 上找到。
查看 arXiv 页面查看 PDF
70% 大小,100% 准确率:通过动态长度浮点数实现高效 GPU 推理的无损 LLM 压缩
70% 大小,100% 准确率:通过动态长度浮点数实现高效 GPU 推理的无损 LLM 压缩
70% 大小,100% 准确率:通过动态长度浮点数实现高效 GPU 推理的无损 LLM 压缩
70% 大小,100% 准确率:通过动态长度浮点数实现高效 GPU 推理的无损 LLM 压缩
70% 大小,100% 准确率:通过动态长度浮点数实现高效 GPU 推理的无损 LLM 压缩

评论

Tianyi ZhangTianyi Zhang
论文作者
论文提交者

🚀 DFloat11 将 LLM 压缩 30%,且零精度损失,从而在 GPU 上实现更快、更长和更节省内存的推理。

我们推出了 DFloat11,这是一个无损压缩框架,可以将基于 BFloat16 的 LLM 的大小减少约 30%,同时保持其输出逐位相同。通过利用 BFloat16 权重中的低熵,我们应用 Huffman 风格的动态长度编码来实现接近最优的存储效率。为了支持快速推理,我们设计了一个定制的 GPU 内核,该内核执行在线解压缩,且延迟极低。我们的方法使像 Llama-3.1-405B (810GB) 这样的大型模型能够完全在单个 8×80GB GPU 节点上运行,而无需 CPU 卸载或任何精度下降。DFloat11 为内存高效的 LLM 推理提供了一个实用的即插即用解决方案。

hongbinhongbin

@librarian-bot