FP8 和低精度格式
FP8 是一種 8 位元浮點數格式,允許 AI 模型使用標準 32 位元數字四分之一的記憶體來儲存權重並運行數學。
概述
It is a key trick for making giant models cheaper and faster to train and serve.
深入探討
神經網路由數十億個數字組成。傳統上,這些數字均使用 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
常見問題
What is FP8 and Low-Precision Formats?
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。