开发者开源 nf12:BF16 模型无损压缩至 12bit
开发者 AlpinDale 开源了 nf12 库,将 BF16 模型权重无损压缩为定长 12-bit 编码,方案基于 Together Compute 的 NyoomFloat12 论文(作者 Liberman、Fang、Zhang、Dao、Fu,2026),支持从 Ampere 到 Blackwell 的 GPU。压缩完全无损:解码后与原 BF16 权重逐位一致,相同执行管线下模型输出完全相同。
已确认
- 原理:BF16 的指数范围远超训练后权重实际需要,模型中超过 99.7% 的权重高四位指数位相同(0111),这些位无需存储,解码时像传统文件压缩一样恢复,因此编码是无损的。
- 实现细节:并非所有权重都严格 12-bit。每 8 个权重一组,正常组从 16 字节打包为 12 字节;无法表示的整组标记为异常,写入 escape buffer 存原始 BF16 值(逃逸组共 28 字节),总体积几乎不会超过 BF16。
- 性能:由于需搬运的字节更少,速度提升大致与节省的显存成比例,即无损精度下的带宽红利。
- 宽度选择依据:AlpinDale 的大量权重压缩实验显示量化难以突破 10.45 bit;8-11 bit 变体逃逸组过多(纯 NF11 的逃逸率是 NF12 的 44 倍),体积反超 BF16,且低宽度难以写出快速推理 kernel,因此选定 12-bit。
- 适用范围讨论:被问到能否推广到其他位宽时,AlpinDale 表示理论上可套用到任意位宽,但数学层面的限制使大多数位宽难以写出高效推理内核;FP32 理论上可行但没必要,BF16 已接近无损。FP8 也很难套用:多数 FP8 量化采用 per-block/per-channel scaling,把每个块拉伸到完整的 E4M3 范围,权重模式成为关键瓶颈。
- 生态进展:AlpinDale 已提交将 NF12 量化格式集成进 vLLM 的 PR;由于没有硬件原生支持这一 dtype,团队做了大量工程优化以保证运行效率。
为什么重要
量化通常以精度损失换取显存与速度,而 NF12 提供了逐位无损的压缩,用户可免费获得约四分之一的显存节省和相应带宽收益而不付出任何精度代价。若 vLLM 集成合入,主流推理栈可直接加载 NF12 格式模型,对大模型部署成本有实际意义。
2026-11-07 ~ 2026-11-07 · 10 条相关
一手来源
- 开源 nf12:BF16 模型无损压缩到 12bit,Ampere 到 Blackwell 都能跑 — AlpinDale ·
- NF12 无损权重格式:99.7% 权重省掉指数位,体积小于 BF16 还更快 — AlpinDale ·
- NF12 量化格式集成进 vLLM 的 PR 已提交 — AlpinDale ·
- 【源头】开源 nf12:BF16 模型无损压缩到 12bit,Ampere 到 Blackwell 都能跑 — AlpinDale · 2026-11-07
- BF16 模型可无损压缩到 12bit:99.7% 权重指数位相同 — AlpinDale · 2026-11-07
- 【源头】NF12 无损权重格式:99.7% 权重省掉指数位,体积小于 BF16 还更快 — AlpinDale · 2026-11-07
- NF12 详解:逃逸组共 28 字节,几乎不会超过 BF16 体积 — AlpinDale · 2026-11-07
- NF12 量化还原后与 BF16 完全一致,省显存还提速 — AlpinDale · 2026-11-07
- 【源头】NF12 量化格式集成进 vLLM 的 PR 已提交 — AlpinDale · 2026-11-07
- BF16 模型无损压至 12bit,Together 推出 NyoomFloat12 高效推理 — MaleManlpulator · 2026-11-07
- 实验证明权重量化难破 10.45 bit:NF11 逃逸率是 NF12 的 44 倍 — AlpinDale · 2026-11-07
- BF16 已近乎无损,更低比特推理内核才是难点 — AlpinDale · 2026-11-07
- FP8 量化为何难做逃逸压缩,BF16 权重模式成关键瓶颈 — AlpinDale · 2026-11-07