@charles_irl: 低精度浮点数很奇怪。我一直在推理/训练之外使用它们来建立直觉…
摘要
一条推文介绍了微缩放/块量化格式(如NVFP4和MXFP4)的可视化工具,解释了这些低精度浮点数的工作原理以及它们在LLM推理中减少内存带宽需求的应用。
查看缓存全文
缓存时间: 2026/06/22 09:33
低精度浮点数的行为很奇怪。我通过在推理/训练之外的环境摆弄它们,逐步建立了直觉。@AAAzzam 和我一起制作了这个面向微缩放/块量化格式(如 NVFP4、MXFP4 及其同类)的可视化工具。试试看:https://modal.com/llm-almanac/block-quants/nvidia-fp4…
什么是 NVFP4?| LLM 工程师手册
来源:https://modal.com/llm-almanac/block-quants/nvidia-fp4
什么是块量化/微缩放浮点格式?
像 FP16 这样的标准格式独立编码每个元素,每个值拥有自己的指数和尾数。而像 OCP MXFP4 这样的微缩放格式,则用这种独立性换取压缩:每 16 个连续元素共享一个缩放因子(以 E4M3 值存储),每个元素仅存储其在块内相对于该缩放因子的相对幅度(使用低精度的 E2M1 值)。
上图中的带状条纹正是块结构可视化的结果。如果一个块同时包含非常亮和非常暗的像素,它必须缩放以适应亮像素,从而将较暗的值压缩到仅有的几个离散级别中。FP4 只有 8 个非负可表示值(0、0.5、1、1.5、2、3、4、6 × scale),因此 FP4 块会“海报化”成最多 8 种颜色。FP6 最多有 28 个非负值,FP8 最多有 240 个,因此在这些精度下退化更不明显。
这些量化格式用于 LLM 推理,以减少对内存带宽 (https://modal.com/gpu-glossary/perf/memory-bandwidth) 的需求(尤其在解码阶段),并利用更高的算术带宽 (https://modal.com/gpu-glossary/perf/arithmetic-bandwidth)(尤其在预填充阶段)。它们通常用于张量核心 (https://modal.com/gpu-glossary/device-hardware/tensor-core),在当代 GPU 中,绝大多数带宽都集中于此。
探索这些格式中单个浮点的编码方式,请访问量化格式 (https://modal.com/llm-almanac/quant-formats) 页面。图像作为张量的可视化技术灵感来源于 quant-jaunt (https://codeberg.org/mailhost/quant-jaunt)。
相似文章
@charles_irl: @modal LLMEng Almanac 的另一页:低精度浮点数(从 bf16 到 fp4)探索器 https://modal.com/ll…
来自 Modal 的 LLM Engineer's Almanac,提供了一个互动探索器,用于理解 bf16 和 fp4 等低精度浮点数格式。
@charles_irl: 这个块量化可视化工具是我们 LLM Engineer's Almanac 中的另一页——为寻求...的工程师提供一站式服务
LLM Engineer's Almanac 中的新页面提供了一个块量化可视化工具,帮助工程师理解量化格式,以便掌握自己的 LLM 推理。
@jino_rohit: 在开始学习LLMs的量化之前,你需要理解不同数字格式在内存中是如何表示的……
一篇帖子解释为什么理解内存中的数字格式对于学习LLM量化至关重要,涵盖梯度NaN调试、数值稳定性以及量化失真。
@charles_irl: 我的直觉是,要解决由非确定性与非结合性引起的浮点数数值问题,我们需要跳出确定性思维框架。
这条推文讨论了通过引入“实现噪声”来训练模型,以提高模型对由非确定性和非结合性引起的浮点数数值问题的鲁棒性。
@SpaceTimeViking: 我有一个版本保持BF16注意力层,另一个混合精度量化使用NVFP4权重和FP8 At…
对Google的Gemma-4-12B-it模型进行混合精度量化,使用NVFP4用于MLP权重,FP8用于注意力层,实现了25%更小的存储占用和更快的吞吐量,同时保持质量。