什么是 MXFP4?驱动 OpenAI GPT‑OSS 模型在普通硬件上运行的 4 位秘密
社区文章 发布于 2025 年 8 月 8 日
凭借原生的 MXFP4 精度,GPT‑OSS‑120B 可以在单个 H100 GPU 上运行,而 GPT‑OSS‑20B 仅需 16 GB 内存即可容纳。

什么是 MXFP4?定义及其起源故事
MXFP4 是 Microscaling FP4 的缩写,是一种下一代 4 位浮点格式,由开放计算项目 (OCP) 于 2024 年初创建并标准化。这项倡议得到了包括 AMD、NVIDIA、Microsoft、Meta 和 OpenAI 在内的科技巨头的支持,旨在降低尖端 AI 的硬件和计算门槛。
- 格式:每个值仅存储在 4 位中,遵循 E2M1 布局:每个参数 1 位符号位、2 位指数位、1 位尾数位。
- 块结构:MXFP4 不会对每个值进行独立缩放,而是将模型数据划分为小块(通常为 32 个元素),并为每个块分配一个单一的、共享的 8 位指数缩放因子,这是一种“微缩放”方法。
- 目的:大幅减少训练和部署大型 AI 模型所需的内存和计算量,同时保持质量。
内在魔力:MXFP4 如何运作
MXFP4 之所以与众不同,在于它巧妙地结合了极致压缩和最小精度损失。以下是它的工作原理:
- 块形成:模型张量被分成 32 个连续元素的块。
- 通用缩放:每个块使用一个单一的 8 位共享缩放因子,该缩放因子经过计算,以最佳方式适应块中的所有值。
- E2M1 编码:块中的每个值都使用 4 位(E2M1 格式:符号、指数、尾数)进行量化。
- 重构:实际浮点值解码为:
其中 Xi 是重构的浮点值,Pi 是 4 位 FP4 量化值(E2M1 格式),S 是共享缩放因子。
这种结构使得 MXFP4 能够高效地表示现代 AI 模型中发现的宽动态范围,即使每个值只有 4 位,同时保持较低的存储开销。这与均匀量化截然不同。
不仅限于推理:训练高级技术
多年来,4 位量化被认为“足够好”仅适用于推理,而不适用于训练。MXFP4 通过引入强大的方法来保持梯度完整性,改变了这一点:
- 随机舍入:使舍入方向随机化,确保在训练更新期间不会系统性地丢失信息,从而防止偏差并保持学习进度。
- 随机哈达玛变换:在量化前重新分配块内的值,最大限度地减少“异常值”的影响,并帮助梯度在量化过程中存活。
- 组式量化:每个块(32 个值)在动态范围和量化误差之间取得了关键平衡。这些创新使得 MXFP4 能够直接训练大型模型,无需再进行高精度预训练。
MXFP4 的实际应用:OpenAI 的 GPT‑OSS 模型
为了证明 MXFP4 不仅仅是理论,OpenAI 发布了 GPT‑OSS 系列模型,这些模型使用 MXFP4 进行原生训练:
这些模型展示了:
- 大规模压缩:120B 参数可在 80GB 显存中运行;20B 模型仅需 16GB 内存即可容纳。
- 质量无损:推理和编码基准测试结果与高精度训练的重量级模型几乎持平。
- 开放访问:所有内容均在 Apache 2.0 许可下提供,可用于生产或研究用途。
生态系统支持:超越专有解决方案
MXFP4 是一个真正的开放标准,而不是供应商锁定策略:
- NVIDIA Blackwell:原生支持 MXFP4 硬件,FP8 吞吐量翻倍。
- NVIDIA Hopper (H100):通过 Triton 进行软件优化支持。
- 广泛采用:Hugging Face、vLLM、Nvidia NIM、Ollama 等。
最后总结
MXFP4 不仅仅是“更小的数字”,它是 AI 领域中连接“不可能”与“可能”的桥梁。通过将更多智能压缩到更少的比特中,并确保任何人都能训练和部署强大的模型,MXFP4 标志着 AI 民主化真正到来。