FP8 和低精度格式
FP8 是一种 8 位浮点数格式,允许 AI 模型使用标准 32 位数字四分之一的内存来存储权重并运行数学。
概述
这是让巨型模型更便宜、更快地训练和服务的关键技巧。
深入探讨
神经网络由数十亿个数字组成。传统上,这些数字均使用 32 位 (FP32) 或 16 位 (FP16/BF16)。 FP8 将它们缩小到只有 8 位,与 16 位相比,内存和带宽大约减少了一半。有两种常见的 FP8 布局:E4M3(4 个指数位,3 个尾数位)提供更高的精度,但范围更小,而 E5M2(5 个指数,2 个尾数)提供更宽的范围,但步长更粗。权衡是保真度:更少的位数意味着舍入误差。为了保持准确性,框架应用每个张量或每个块的缩放因子,将值重新调整到 FP8 的可用范围。 NVIDIA 的 Hopper 和 Blackwell GPU 添加了硬件 FP8 矩阵引擎,使其适用于训练和推理。 MXFP8、MXFP4 和 NVFP4 等较新的格式通过共享微缩放块将性能推得更低。
技术洞察
FP8 的挑战是动态范围。仅使用少量指数位,大或小的激活就会溢出或下溢为零。解决方法是缩放:将张量乘以一个因子,使其值落在 FP8 的可表示窗口中,进行 FP8 乘法累加,然后除掉,通常以更高的精度累加部分和(FP16/FP32)。 E4M3 通常用于权重和激活,E5M2 用于梯度,其中范围比精度更重要。
战略影响
成本与预算
多年来,架构决策决定着性能和运营成本。
更清晰的判决
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
质量控制
更好的工程选择可以减少生产中的可靠性事故。
FP8 和低精度格式的未来
精度正在急剧下降。 FP8 之后出现了 4 位微缩放格式(MXFP4、NVFP4),每个小块包含一个微小的共享缩放,Blackwell 硬件现在可以直接加速 FP4。期望混合精度配方,其中不同层使用不同的位宽度,加上更好的量化感知训练,因此 4 位成为推理的默认值。最终的目标是将前沿规模的模型压缩到更少、更便宜的芯片上,而不会造成明显的质量损失。
现实世界的实施
使用 FP8 在 NVIDIA Hopper/Blackwell GPU 上训练大型语言模型,吞吐量比 BF16 大约翻倍
在 FP8 中提供聊天机器人推理服务,以便模型适合更少的 GPU 并每秒响应更多请求
在分布式训练过程中使用E5M2进行梯度通信,以减少节点之间的网络带宽
部署 MXFP4/NVFP4 量化模型以在单个高内存 GPU 上拟合前沿规模模型,以实现更便宜的推理
风险与防护栏
优化一项基准测试可以隐藏更广泛的系统弱点。
基础设施和维护成本常常被低估。
随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
实施路线图
在实施之前定义延迟、质量和成本目标。
在实际负载和数据条件下进行基准测试。
仪器监控错误、漂移和用户影响。
在扩展之前准备回滚和事件响应路径。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the FP8 and Low-Precision Formats quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
什么是 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。