Unweight:在不牺牲质量的前提下实现 LLM 权重 22% 的无损压缩
内容评分
摘要
Unweight 是 Cloudflare 推出的无损压缩系统,通过对 BF16 权重指数使用霍夫曼编码,在 GPU 片上共享内存中即时解压,实现 15%~22% 的模型体积缩减。系统提供四种解压策略并配备自动调优器,可在 H100 上将内存传输量降低约 30%,以 Llama 3.1‑8B 为例节省约 3 GB VRAM,提升单卡可部署模型数量。
正文
在全球 95% 的互联网用户需要在 50 ms 内完成推理的背景下,GPU 内存的高效利用至关重要。去年,Cloudflare 通过基于 Rust 的推理引擎 Infire 改进了内存利用率,并借助模型调度平台 Omni 消除了模型启动延迟。当前的瓶颈转向模型权重:生成单个 需要读取全部权重,而在 NVIDIA H100 上,张量核心的计算速度约为内存传输的 600 倍,导致内存带宽成为限制因素。
为此,Cloudflare 开发了 Unweight——一种无损压缩系统,能够在不丢失任何信息的情况下将模型权重压缩 15%~22%。其核心思路是仅压缩 BF16 权重的指数部分,使用 霍夫曼编码 对常见指数采用短码,对罕见指数采用长码,从而在指数层面实现约 30% 的压缩率。压缩后的权重在 GPU 片上共享内存(SMEM)中即时解压,并直接送入张量核心,避免额外的内存往返。
Unweight 包含四种解压执行流程:
- 完全解码(full Huffman decode)
- 仅解码指数(exponent‑only decode)
- 预编码转码(palette transcode)
- 跳过预处理(skip pre‑processing)
系统会依据权重矩阵特性和批量大小,由自动调优器选择最优流程。针对不同批量规模的 重构型矩阵乘法(Reconstructive Matmul) 内核将压缩数据从 HBM 读取至 SMEM,现场重构为原始 BF16 并直接送入张量核心,整体内存传输量下降约 30%。
在 Llama 3.1‑8B 上的初步实验表明,仅对 MLP(门控和上投影)权重进行压缩即可将模型体积削减约 15%~22%,节省约 3 GB VRAM,进一步提升了单 GPU 可部署模型的数量。
与已有的压缩方案不同,Unweight 侧重于 GPU‑端无损解压,兼容 Cloudflare 基于 Rust 的推理栈,并已在 GitHub 开源相关内核代码。未来计划扩展至下投影权重、进一步优化内核并支持更多模型类型。
相关链接:
- Infire 推理引擎:https://blog.cloudflare.com/cloudflares-most-efficient-ai-inference-engine/
- Omni 调度平台:https://blog.cloudflare.com/how-cloudflare-runs-more-ai-models-on-fewer-gpus/
- 技术论文:https://research.cloudflare.com/nikulin2026
- 开源代码:https://github.com/cloudflareresearch/unweight-kernels