概述
这是让巨型模型更便宜、更快地训练和服务的关键技巧。
深入探讨
神经网络由数十亿个数字组成。传统上,这些数字均使用 32 位 (FP32) 或 16 位 (FP16/BF16)。 FP8 将它们缩小到只有 8 位,与 16 位相比,内存和带宽大约减少了一半。有两种常见的 FP8 布局:E4M3(4 个指数位,3 个尾数位)提供更高的精度,但范围更小,而 E5M2(5 个指数,2 个尾数)提供更宽的范围,但步长更粗。权衡是保真度:更少的位数意味着舍入误差。为了保持准确性,框架应用每个张量或每个块的缩放因子,将值重新调整到 FP8 的可用范围。 NVIDIA 的 Hopper 和 Blackwell GPU 添加了硬件 FP8 矩阵引擎,使其适用于训练和推理。 MXFP8、MXFP4 和 NVFP4 等较新的格式通过共享微缩放块将性能推得更低。
现实世界的实施
A team benchmarks an FP8 training recipe on hardware with supported matrix operations and compares it with BF16.
An inference team checks weight, activation, and cache memory before selecting FP8 serving.
A training implementation uses an FP8 encoding with a wider range for tensors whose values require it.
A deployment team evaluates supported four-bit formats against an accuracy and memory budget.
FP8 和低精度格式的未来
Lower-precision formats should be evaluated as complete recipes rather than universal speed or quality guarantees. Block scaling, mixed-precision layers, and supported kernels can help balance numerical error with memory and compute costs. Four-bit formats such as MXFP4 and NVFP4 are additional choices on supporting systems; their range, scaling, and hardware requirements differ. A team should benchmark its own workload and retain higher precision where measured errors justify it.
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是 FP8 和低精度格式?
FP8 是一种 8 位浮点数格式,允许 AI 模型使用标准 32 位数字四分之一的内存来存储权重并运行数学。这是让巨型模型更便宜、更快地训练和服务的关键技巧。
与标准 FP32 数字相比,FP8 数字使用多少位?
FP8 使用 8 位,而 FP32 使用 32 位,因此 FP8 占用四分之一的存储和带宽。
“E4M3”和“E5M2”标签描述了 FP8 格式的哪些内容?
E4M3表示4个指数位和3个尾数位; E5M2 表示 5 位指数和 2 位尾数。更多指数位扩大了范围;更多尾数位可提高精度。
为什么 FP8 管道将缩放因子应用于张量?
由于指数位如此之少,大值会溢出,小值会下溢为零。在数学运算之前,缩放将张量重新缩放到 FP8 的可用窗口中。
使用 FP8 的主要缺点是什么?
更少的位意味着更粗糙的表示和更大的舍入误差。这样做的好处是内存和带宽要少得多,并且支持的硬件上的数学运算速度更快。
哪一代 NVIDIA GPU 首先添加了对 FP8 矩阵数学的专用硬件支持?
H100 等基于 Hopper 的 GPU 引入了 FP8 Tensor Core 支持,Blackwell 后来将其扩展到 FP4。