HyperAI超神经

70%容量,100%精度:通过动态长度浮点实现无损LLM压缩以提高GPU推理效率

Tianyi Zhang, Yang Sui, Shaochen Zhong, Vipin Chaudhary, Xia Hu, Anshumali Shrivastava
发布日期: 4/23/2025
摘要

大型语言模型(LLMs)的规模快速增长,给在资源受限硬件上的高效部署带来了显著挑战。本文介绍了无损压缩框架——动态长度浮点数(DFloat11),该框架能够将LLM的大小减少30%,同时保持与原始模型比特对比特相同的输出。DFloat11的开发动机源于LLMs中BFloat16权重表示的低熵,这揭示了现有存储格式存在显著的低效性。通过应用熵编码,DFloat11根据权重出现的频率分配动态长度编码,实现了接近信息最优的压缩,且没有任何精度损失。为了支持使用动态长度编码进行高效的推理,我们开发了一个定制的GPU内核以实现快速在线解压缩。我们的设计包括以下方面:(i) 将内存密集型查找表(LUTs)分解为适合GPU SRAM的小型LUTs;(ii) 使用轻量级辅助变量协调线程读写位置的两阶段内核;以及(iii) 在转换器块级别进行解压缩以最小化延迟。 在近期模型上的实验,包括Llama-3.1、Qwen-2.5和Gemma-3,验证了我们的假设:DFloat11能够实现大约30%的模型大小缩减,并保持比特对比特精确输出。与将未压缩模型的部分卸载到CPU以满足内存限制的一种潜在替代方案相比,DFloat11在令牌生成方面的吞吐量提高了1.9到38.8倍。在固定GPU内存预算的情况下,DFloat11使得上下文长度比未压缩模型延长了5.3到13.17倍。值得注意的是,我们的方法使单个配备8个80GB GPU节点能够进行无损推理处理405B参数量的Llama-3.1模型(一个810GB规模的模型)。我们的代码和模型可以在https://github.com/LeanModels/DFloat11获得。 注:原文中的“BFloat16”、“LUTs”、“SRAM”、“GPU”等术语已使用通用译法,并保留了原文中的专有名词如“Llama-3.1”、“Qwen-2.5”、“Gemma-3”。