技術原理
FP4是一種4位浮點數計算格式,遵循符號-指數-尾數(S-E-M)的布局結構。當前業界存在多種具體的FP4實現格式,例如NVIDIA提出的NVFP4和開放計算項目(OCP)定義的MXFP4(微縮放4位浮點數),它們均採用E2M1的位分配,但在量化策略上有所不同。典型的FP4位分配為1位符號位、2位指數位和1位尾數位(E2M1)。以ONNX項目定義的FLOAT4E2M1格式為例,其數值表示規則為:當指數位非零時,數值 = (-1)^S × 2^(E-1) × (1+M×2^-1);當指數位為零時,數值 = (-1)^S × M×2^-1。E2M1格式能表示的數值範圍是[-6, 6],精度從0.5到1不等。
作為一種計算格式而非存儲格式,計算時以FP4執行,累加通常在FP16或FP32下進行。這種設計邏輯的核心目的是通過實現極高的計算密度,最大化張量核心吞吐量並最小化記憶體頻寬消耗。FP4更應被視為一種硬體能力,用於在嚴格控制的推理核心中最大化硬體利用率。在存儲時,由於單個4位數值僅占半位元組,ONNX採用打包方式:每兩個4位元素打包成一個位元組(第一個在低4位,第二個在高4位)。對於N個元素的張量,需要ceil(N/2)位元組的存儲空間。
為了克服4位精度下數值範圍和精度極度有限的問題,實際的FP4套用(如NVFP4、MXFP4)依賴於精妙的量化策略。例如,NVFP4採用了雙層縮放策略:第一層是微塊縮放(每16個值共享一個FP8縮放因子),第二層是張量級縮放(每個張量擁有一個FP32全局縮放因子)。量化過程還可能引入隨機捨入、
Hadamard變換等最佳化技術以減少誤差。而MXFP4則採用微縮放(Micro-scaling)方法,為一組數值(默認32個)乘以一個公共的8位指數縮放因子。
技術實現與量化方法
FP4是當前實際討論中精度最低的浮點數格式,其存在的核心目的幾乎完全是為了滿足硬體吞吐量和密度目標。典型的位分配為1位符號位、2位指數位和1位尾數位。FP4的核心作用是通過實現極高的計算密度,最大化張量核心吞吐量並最小化記憶體頻寬消耗。從數值角度看,FP4並非為單獨使用而設計,它是一種計算格式而非存儲或累加格式。計算過程以FP4執行,累加運算在FP16或FP32精度下進行,輸入和輸出通常以更高精度存儲。由於數值範圍和精度極度有限,FP4更應被視為一種硬體能力,在嚴格控制的推理核心中使用以最大化張量核心利用率。
NVFP4是
NVIDIA推出的一種4位浮點格式,採用了E2M1編碼方案。NVFP4的核心是雙層縮放策略:第一層是微塊縮放,每16個連續的NVFP4數值共享一個E4M3格式的FP8縮放因子;第二層是張量級縮放,每個完整張量擁有一個全局的FP32縮放因子。量化過程引入了隨機捨入代替傳統的向下取整,以及
Hadamard變換在量化前對數值進行正交變換以最佳化精度。對於特別敏感的層,可以採用混合精度策略,保持FP8甚至BF16精度。
MXFP4是由開放計算項目定義的4位浮點數據類型,同樣採用E2M1編碼。其核心是通過為每組數值動態分配一個高精度縮放因子來最佳化精度與壓縮的平衡。相比傳統FP4,MXFP4在實現約7.5倍壓縮的同時,能將精度損失控制在更低的水平。
在具體套用中,針對FP4數值範圍有限的問題,出現了專門的技術最佳化。例如,
清華大學團隊提出的SageAttention3,針對注意力機制中的QK⊤和PV矩陣乘法使用了FP4微縮放量化方法,並針對注意力圖P設計了兩級量化方法以解決小值量化難題。該最佳化在推理中實現了顯著的加速。
行業組織也在推動FP4的標準化。例如,ONNX項目從1.18.0版本開始引入了FLOAT4E2M1格式,並規定了特定的數據打包、解包與轉換規則。生態方面,TensorRT Model Optimizer是NVFP4的官方量化工具,
TensorRT-LLM、vLLM、SGLang等推理框架以及
Hugging Face模型庫均已提供支持。
套用場景
NVFP4適用於推理密集、記憶體受限的場景,例如大batch推理服務、長上下文對話和邊緣設備部署。Float4格式可用於大型語言模型的權重存儲、對記憶體頻寬敏感的
邊緣計算場景以及需要高壓縮率的模型部署。在技術最佳化方面,清華團隊提出了微縮版FP4注意力機制,其SageAttention3採用即插即用設計以加速模型推理。在訓練階段,
英偉達將其NVFP4策略拓展到預訓練階段,宣稱能夠在訓練中匹配16位精度,並以4位的速度效率運行。
硬體支持與軟體生態
FP4作為一種計算格式,其硬體原生支持始於
NVIDIA的Blackwell架構(如
B200、GB200、GB300系列GPU),該架構提供了專門的
Tensor Core以實現FP4的硬體加速。在Blackwell架構上,FP4推理性能可達前代Hopper架構FP8性能的5倍,其中GB300在FP4精度下可提供15
PetaFLOPS的稠密算力。對於更早的架構(如Hopper),可以通過軟體模擬運行FP4,但性能優勢會大打折扣。此外,微軟於2026年1月27日推出的第二代人工智慧晶片Maia200也配備了原生FP4張量核心。
軟體生態方面,TensorRT Model Optimizer是
NVIDIA官方推薦的量化工具。
TensorRT-LLM對FP4(特別是NVFP4格式)提供了原生支持。此外,vLLM和SGLang這兩個流行的LLM服務框架也已經集成對FP4的支持。
Hugging Face上已經出現了大量預量化的FP4模型。
性能表現與優勢
FP4格式旨在壓縮記憶體占用、保持模型精度並實現硬體加速。其核心作用是提升計算密度和硬體吞吐量。
英偉達Blackwell架構GPU原生支持FP4計算。此外,微軟於2026年1月27日推出的第二代人工智慧晶片Maia200也原生支持FP4計算,其FP4性能達到第三代Amazon Trainium的三倍。B200 GPU在FP4精度下的AI算力可達40 PetaFLOPS,是前代Hopper架構H100的5倍。其後續產品GB300的稠密FP4算力進一步提升至15 PetaFLOPS。
儘管位數極低,但通過最佳化的量化策略如NVFP4的雙層縮放,FP4能在推理任務中保持良好的模型精度。測試表明,與FP8基準相比,NVFP4在多數模型上的精度損失小於1個百分點,在部分基準如AIME 2024中甚至表現更優。基於FP4最佳化的
DeepSeek-R1模型在
MMLU基準測試中達到了FP8模型性能的99.8%。
FP4格式降低了計算和存儲開銷。在記憶體占用上,NVFP4相比FP16減少了3.5倍,相比FP8減少了1.8倍。在能效方面,GB300在NVFP4支持下,每Token的能耗僅為0.2焦耳,相比
H100的10焦耳,能效提升50倍。
FP4的引入與AI推理性價比的提升相關。支持FP4的GB200系列,其
FLOPS相比
H100最高可提升405%,這使得性價比有所提升。在實際套用中,通過TensorRT等工具對模型如
DeepSeek-R1進行FP4量化與最佳化,可實現約25倍的推理性能提升和約20倍的成本下降。清華團隊提出的SageAttention3 FP4注意力機制,在特定硬體上也能實現數倍的端到端推理加速。
發展歷程
早期概念與提出可追溯至2023年,開放計算項目(OCP)在《OCP Microscaling Formats (MX) Specification Version 1.0》報告中詳細介紹了微縮放4位浮點數(MXFP4)數據類型。
2024年,英偉達發布Blackwell架構(
B200/GB200 GPU),首次在硬體層面原生支持FP4精度計算。
黃仁勛宣布,在新FP4格式下,Blackwell GPU的AI性能可達40
PetaFLOPS,是前代Hopper架構
H100(8 PetaFLOPS)的5倍。
2025年,
英偉達推出了其專有的NVFP4格式。ONNX項目從1.18.0版本開始支持FLOAT4E2M1格式。
OpenAI在其開源模型gpt-oss中採用了MXFP4數據類型進行量化,顯著降低了記憶體占用並提升了推理速度。
清華大學等研究機構也提出了基於FP4的注意力機制最佳化方案。英偉達宣布將NVFP4策略拓展至模型預訓練階段,並成功完成了120億參數模型的訓練驗證。
相關技術變體與標準
FP4作為一種低精度計算格式,存在多種技術變體和標準。主要包括NVFP4、MXFP4和NF4等。NVFP4是英偉達主導的FP4格式,採用E2M1編碼和雙層縮放策略,需要Blackwell架構及以上GPU實現硬體加速。MXFP4是由開放計算項目定義的4位浮點數據類型,採用塊縮放,被OpenAI用於gpt-oss模型。NF4是針對常態分配數據最佳化的4位數據類型,在bitsandbytes庫中有實現。
目前FP4格式完全統一,已支持英偉達、昇騰、海光、沐曦等多款硬體平台。