推理成本驟降75%!gpt-oss用新數(shù)據(jù)類型實(shí)現(xiàn)4倍推理速度,80GB顯卡能跑1200億參數(shù)大模型
OpenAI在最新的開源模型gpt-oss上采用的MXFP4數(shù)據(jù)類型,直接讓推理成本暴降75%!
更驚人的是,MXFP4在把內(nèi)存占用降為同規(guī)模BF16模型的四分之一的同時(shí),還把生成token的速度提升了整整4倍。
換句話說,這一操作直接把1200億參數(shù)的大模型塞進(jìn)80GB顯存的顯卡,哪怕是只有16GB顯存的顯卡也能跑200億參數(shù)的版本。

(注:顯存容量通常會(huì)大于Checkpoint Size)
相比以往的數(shù)據(jù)類型,MXFP4提供了極高的性價(jià)比,模型運(yùn)行所需的硬件資源僅為之前的四分之一。
MXFP4有什么魔力?
在gpt-oss中,OpenAI將MXFP4量化應(yīng)用于大約90%的權(quán)重,這一操作的直接動(dòng)機(jī)(收益)就是讓模型運(yùn)行成本變得更加便宜。
將gpt-oss模型量化為MXFP4 后,大語言模型的占用內(nèi)存僅為等規(guī)模BF16模型的1/4,而且生成token的速度最高可提升4倍。

如何通過改變數(shù)據(jù)類型降低模型運(yùn)行成本?這里的邏輯是這樣的:
模型的運(yùn)行成本主要由權(quán)重存儲(chǔ)和內(nèi)存帶寬兩個(gè)部分組成。
前者是模型參數(shù)存放和占用的空間,也就是存儲(chǔ)它們所需要的字節(jié)數(shù)。
后者則是模型在推理時(shí),數(shù)據(jù)讀寫速度和容量的限制。
數(shù)據(jù)類型的變化將直接影響權(quán)重存儲(chǔ)和內(nèi)存帶寬的占用。
例如,傳統(tǒng)模型權(quán)重通常用FP32(32位浮點(diǎn)數(shù))存儲(chǔ),每個(gè)參數(shù)占用4字節(jié)內(nèi)存。
如果用MXFP4,那么每個(gè)權(quán)重只有半字節(jié),權(quán)重存儲(chǔ)大小是FP32的1/8,這就極大地壓縮了權(quán)重?cái)?shù)據(jù)量的大小。
這一壓縮不僅降低了模型的存儲(chǔ)空間,還能讓模型在同樣的帶寬下完成更快地?cái)?shù)據(jù)讀取和寫入,從而提高推理速度。
由此,通過改變數(shù)據(jù)類型就能實(shí)現(xiàn)推理成本的降本增效。
那么,MXFP4是怎么實(shí)現(xiàn)這一點(diǎn)的?
MXFP4
MXFP4的全稱是微縮放4位浮點(diǎn)數(shù)(Micro-scaling Floating Point 4-bit),是由Open Compute Project (OCP) 定義的4位浮點(diǎn)數(shù)據(jù)類型。
(注:OCP是Facebook于2011年發(fā)起的超大規(guī)模數(shù)據(jù)中心合作組織,旨在降低數(shù)據(jù)中心組件成本并提高可獲取性。)
在深度學(xué)習(xí)領(lǐng)域中,數(shù)據(jù)類型的精度和效率一直是研究者取舍的重點(diǎn)。
例如,傳統(tǒng)的FP4只有四位,1位符號(hào)位(表示正負(fù)),2位指數(shù)位(決定數(shù)值的量級(jí)),1位尾數(shù)位(表示小數(shù)部分)。
這種表示方法雖然壓縮了數(shù)據(jù)量,但也導(dǎo)致了非常有限的可表示的數(shù)值范圍,它只能表示8個(gè)正數(shù)和8個(gè)負(fù)數(shù)。
相較之下,BF16(1位符號(hào)位,8位指數(shù)位和7 位尾數(shù)位)則能表示 65,536個(gè)數(shù)值,不過表示范圍的增加也帶來了計(jì)算成本的上升。
如果為了提高計(jì)算效率,直接把這4個(gè)BF16數(shù)值:0.0625、0.375、0.078125、0.25直接轉(zhuǎn)換成FP4,那么它們會(huì)變成 0、0.5、0、0.5。
不難看出,這樣的誤差顯然是無法接受的。
于是,為了在減少數(shù)據(jù)量的同時(shí)確保一定的精度,MXFP4通過將一組高精度數(shù)值(默認(rèn)32個(gè))乘以一個(gè)公共縮放因子(這個(gè)縮放因子是一個(gè)8位二進(jìn)制指數(shù))。這樣,我們前面那4個(gè)BF16數(shù)值就會(huì)變成 1、6、1.5、4。

這樣就既實(shí)現(xiàn)了極致的數(shù)據(jù)大小,又維持了數(shù)值間大小關(guān)系的精度。
此外,這一過程的實(shí)現(xiàn)還與計(jì)算硬件相關(guān)。
一般規(guī)律是,每將浮點(diǎn)精度減半,芯片的浮點(diǎn)吞吐量就能翻倍。
比如,一個(gè)B200SXM模塊的稠密BF16運(yùn)算性能約為2.2 petaFLOPS,降到FP4(Nvidia Blackwell 芯片提供硬件加速)后,就能提升到9petaFLOPS。
雖然這會(huì)在吞吐量上帶來一些提升,但在推理階段,更多FLOPS的意義主要是減少模型開始生成答案的等待時(shí)間。
值得注意的是,運(yùn)行MXFP4模型并不要求硬件必須原生支持FP4。
用于訓(xùn)練gpt-oss的Nvidia H100就不支持原生FP4,不過它依然可以運(yùn)行,只是無法享受該數(shù)據(jù)類型的全部?jī)?yōu)勢(shì)。
低精度與計(jì)算量的取舍
事實(shí)上,MXFP4并不是新概念。早在2023年的報(bào)告中,OCP就在報(bào)告《OCP Microscaling Formats (MX) Specification Version 1.0》中詳細(xì)介紹過這一數(shù)據(jù)類型。

然而,這種低精度的數(shù)據(jù)類型通常被認(rèn)為是對(duì)性價(jià)比的妥協(xié),因?yàn)榫认陆禃?huì)導(dǎo)致質(zhì)量損失。損失的程度取決于具體的量化方法。
不過,已經(jīng)有足夠多的研究表明,將數(shù)據(jù)精度從16位降到8位,在大語言模型場(chǎng)景下幾乎沒有質(zhì)量損失,這種精度已經(jīng)足夠支撐模型的正常工作。
事實(shí)上,一些模型開發(fā)者,例如DeepSeek已經(jīng)開始直接用FP8進(jìn)行訓(xùn)練。
此外,雖然MXFP4比標(biāo)準(zhǔn)FP4好得多,但它也有缺陷。
例如,英偉達(dá)就認(rèn)為這種數(shù)據(jù)類型相比FP8仍可能出現(xiàn)質(zhì)量下降,部分原因是其縮放塊大小(Scaling Block Size)為32,不夠細(xì)粒化。
為此,英偉達(dá)推出了自己的微縮放數(shù)據(jù)類型NVFP4,通過將縮放塊大小降至16和使用FP8縮放因子來提高質(zhì)量。
這幾乎等同于FP8的工作方式。只不過MXFP4是在張量?jī)?nèi)部的小塊上應(yīng)用縮放因子,而不是作用于整個(gè)張量,從而在數(shù)值之間實(shí)現(xiàn)更細(xì)的粒度。
最后,在gpt-oss上,OpenAI只使用了MXFP4。
鑒于OpenAI在AI領(lǐng)域上的影響力,這基本上就等于在說:
如果MXFP4對(duì)我們夠用,那對(duì)你也應(yīng)該夠用。



































