大模型被壓縮 30% 性能仍與原模型一致,既能兼容 GPU 推理、又能減少內(nèi)存和 GPU 開(kāi)銷、并且比英偉達(dá)nvCOMP 解壓縮快 15 倍。

這便是美國(guó)萊斯大學(xué)博士生張?zhí)煲缓秃献髡叽蛟斓?a class="keyword-search" >無(wú)損壓縮框架 DFloat11 所擁有的“本領(lǐng)”。

圖|張?zhí)煲唬▉?lái)源:https://github.com/tonyzhang617)
打開(kāi)網(wǎng)易新聞 查看精彩圖片
圖|張?zhí)煲唬▉?lái)源:https://github.com/tonyzhang617)

研究中,他們針對(duì)包括 Llama-3.1、Qwen-2.5 和 Gemma-3 在內(nèi)的最新模型進(jìn)行了實(shí)驗(yàn),借此證明 DFloat11 在保持逐位精確輸出的同時(shí),可以將模型大小減少約 30%。

與那些將未壓縮模型的部分卸載到 CPU 以便滿足內(nèi)存限制的替代方案相比,DFloat11 在 token 生成方面的吞吐量提高了 1.9 倍至 38.8 倍。

在 GPU 內(nèi)存預(yù)算固定的情況下,DFloat11 的上下文長(zhǎng)度比未壓縮模型長(zhǎng)出 5.3 倍至 13.17 倍。

這讓本次方法能在配備 8 個(gè) 80GB GPU 的單個(gè)節(jié)點(diǎn)上,實(shí)現(xiàn) 810GB Llama-3.1-405B 模型的無(wú)損推理。

這表明,基于 DFloat11 的壓縮技術(shù)顯著降低了大語(yǔ)言模型的硬件需求,同時(shí)在大多數(shù)實(shí)際用例中僅引入了合理的處理開(kāi)銷。

這意味著,本次方案能將任何 BFloat16 模型壓縮至其原始大小的約 70%,在提供與原始模型 100% 相同的性能的同時(shí),還能帶來(lái)諸多吞吐量?jī)?yōu)勢(shì),非常適用于 GPU 資源受限的部署環(huán)境。目前,研究人員已將相關(guān)代碼和模型放在 GitHub(https://github.com/LeanModels/DFloat11)。

打開(kāi)網(wǎng)易新聞 查看精彩圖片

DFloat11 解壓內(nèi)核的三個(gè)核心組件

據(jù)了解,為了在 GPU 上實(shí)現(xiàn)基于熵編碼權(quán)重的有效推理,研究團(tuán)隊(duì)引入了 DFloat 這種新型數(shù)據(jù)表示方法,并打造出一個(gè) GPU 內(nèi)核,該內(nèi)核旨在以大規(guī)模并行的方式針對(duì) DFloat11 權(quán)重進(jìn)行快速的在線解壓縮。

DFloat11 解壓內(nèi)核由三個(gè)核心組件組成:

? 利用存儲(chǔ)在 GPU 共享內(nèi)存中的緊湊查找表(LUT,lookup tables)針對(duì)熵編碼權(quán)重進(jìn)行高效解碼。用于解碼 32 位霍夫曼碼的單個(gè)單片查找表,大約需要 42.9 億個(gè)條目,這使得其內(nèi)存占用過(guò)高。為了緩解這一問(wèn)題,研究團(tuán)隊(duì)將其分解為多個(gè)可放入 GPU 共享內(nèi)存中的緊湊查找表,以便實(shí)現(xiàn)快速的訪問(wèn)。

? 精確高效地識(shí)別編碼權(quán)重中的“讀取”位置,以及解碼權(quán)重中的“寫(xiě)入”位置。由于經(jīng)過(guò)熵編碼的權(quán)重具有可變位寬、且緊密排列的特性,因此為每個(gè)線程確定正確的讀取/寫(xiě)入偏移量頗具挑戰(zhàn)。為此,研究團(tuán)隊(duì)通過(guò)兩階段內(nèi)核設(shè)計(jì)方案來(lái)解決這一問(wèn)題,即使用最少的輔助變量,來(lái)高效協(xié)調(diào)線程特定的輸入和輸出位置。

? 通過(guò)批量執(zhí)行矩陣解壓縮的方法,來(lái)提高 GPU 資源利用率。由于單個(gè)權(quán)重矩陣的尺寸相對(duì)較小,對(duì)其進(jìn)行單獨(dú)解壓縮會(huì)導(dǎo)致 GPU 利用率低下。為了解決這一問(wèn)題,研究團(tuán)隊(duì)在 Transformer 塊級(jí)別針對(duì)權(quán)重進(jìn)行解壓縮,不僅提高了吞吐量還降低了推理延遲。

研究人員表示,DFloat 是目前唯一一種既能減少內(nèi)存占用,又能與高效 GPU 推理兼容的數(shù)據(jù)格式。

通過(guò)應(yīng)用熵編碼,DFloat11 可以將頻率視為權(quán)重,從而分配動(dòng)態(tài)長(zhǎng)度編碼,借此實(shí)現(xiàn)接近信息最優(yōu)的壓縮,并且不會(huì)損失任何精度。

打開(kāi)網(wǎng)易新聞 查看精彩圖片

基于多款主流大模型開(kāi)展實(shí)驗(yàn)驗(yàn)證

研究中,課題組以實(shí)證方式評(píng)估了 DFloat11 壓縮的有效性及其在 GPU 上的推理效率。

他們將多款最新大語(yǔ)言模型從其原始的 BFloat16 表示形式壓縮為 DFloat 格式,并展示了相應(yīng)的壓縮因子。

然后,將運(yùn)行在不同 GPU 上的 DFloat11 壓縮模型的推理性能,與未壓縮模型的推理性能進(jìn)行比較。

同時(shí),他們進(jìn)行了一項(xiàng)消融研究,以便分析壓縮的影響。

研究團(tuán)隊(duì)在 CUDA 和 C++ 中實(shí)現(xiàn)了 DFloat11 解壓內(nèi)核,并將其集成到 Transformers 推理框架中,進(jìn)而評(píng)估了無(wú)損壓縮模型與未壓縮模型在推理效率上的對(duì)比結(jié)果。

對(duì)于未壓縮的基線模型,其使用 Hugging Face Accelerate 框架來(lái)支持 CPU 卸載和多 GPU 推理。

為了評(píng)估 DFloat11 內(nèi)核在不同硬件配置下的性能,研究團(tuán)隊(duì)在多臺(tái)配備不同 GPU 和 CPU 配置的機(jī)器上進(jìn)行了實(shí)驗(yàn)。

(來(lái)源:arXiv)
打開(kāi)網(wǎng)易新聞 查看精彩圖片
(來(lái)源:arXiv)

研究團(tuán)隊(duì)針對(duì)所有線性投影層都進(jìn)行了壓縮處理,將其參數(shù)格式從 BF16 轉(zhuǎn)換為 DFloat11。

所壓縮的模型包括 LLaMA 3/3.1/3.3、Qwen 2.5、QwQ、Mistral Nemo/Small/Codestral、Gemma 2/3 以及 DeepSeek R1 Distilled。

結(jié)果發(fā)現(xiàn),DFloat11 在所有模型中實(shí)現(xiàn)了約 70% 的壓縮率,相當(dāng)于有效位寬約為 11 位。

通過(guò)在標(biāo)準(zhǔn)基準(zhǔn)測(cè)試上進(jìn)行準(zhǔn)確率評(píng)估和困惑度評(píng)估,研究團(tuán)隊(duì)驗(yàn)證了 DFloat11 壓縮的無(wú)損特性。

其使用 lm_evaluation_harness 工具完成了本次評(píng)估,并展示了在大規(guī)模多任務(wù)語(yǔ)言理解基準(zhǔn)(MMLU)和 TruthfulQA 上的準(zhǔn)確率,以及在維基文本(WikiText)和 C4 數(shù)據(jù)集上的詞級(jí)困惑度。

結(jié)果如下表所示,壓縮后的模型與其原始的 BF16 版本,它們?cè)跍?zhǔn)確率和困惑度上保持一致。

(來(lái)源:arXiv)
打開(kāi)網(wǎng)易新聞 查看精彩圖片
(來(lái)源:arXiv)

為了進(jìn)一步驗(yàn)證無(wú)損特性,研究團(tuán)隊(duì)將 DFloat11 解壓縮后的 BF16 權(quán)重矩陣與每個(gè)模型的原始矩陣進(jìn)行了比較,確認(rèn)了它們?cè)诒忍丶?jí)上的完全等效性。

具體來(lái)說(shuō),其比較了 DFloat11 和 BF16 模型在不同硬件平臺(tái)上的推理效率。

評(píng)估結(jié)果顯示,未壓縮的 BF16 模型超出了單個(gè) GPU 的內(nèi)存限制,而無(wú)損壓縮的 DFloat11 模型則符合這些限制。

對(duì)于 BF16 模型,研究團(tuán)隊(duì)保留了 GPU 中的大部分模型和計(jì)算,同時(shí)將一些組件及其相關(guān)計(jì)算卸載到 CPU 上。

為了測(cè)量延遲和吞吐量,他們首先通過(guò)處理100 個(gè) token 來(lái)進(jìn)行預(yù)熱運(yùn)行。

在實(shí)際評(píng)估中,研究團(tuán)隊(duì)從空提示(empty prompt)開(kāi)始解碼了 100 個(gè) token,并使用了不同的批大小(patch size),每種配置分別運(yùn)行五次。

圖|不同模型、GPU 和批量大小情況下的結(jié)果(來(lái)源:arXiv)
打開(kāi)網(wǎng)易新聞 查看精彩圖片
圖|不同模型、GPU 和批量大小情況下的結(jié)果(來(lái)源:arXiv)

如上圖所示,在 CPU 卸載的情況下,DFloat11 模型的表現(xiàn)始終優(yōu)于 BF16 模型,其延遲降低了 1.85 至 38.83 倍。

為了比較使用多個(gè) GPU 的情況,研究人員還展示了在單個(gè) GPU 上運(yùn)行的 DFloat11 模型與在兩個(gè) GPU 上運(yùn)行的 BF16 模型的性能對(duì)比。

結(jié)果顯示,DFloat11 壓縮所帶來(lái)的內(nèi)存節(jié)省,不僅減少了推理所需的 GPU 數(shù)量,還能實(shí)現(xiàn)更長(zhǎng)的文本生成長(zhǎng)度。

在推理過(guò)程中,隨著解碼 token 數(shù)量的增加,鍵值緩存也會(huì)出現(xiàn)線性增長(zhǎng),進(jìn)而會(huì)迅速成為 GPU 內(nèi)存的瓶頸。

如下圖,研究團(tuán)隊(duì)展示了在批大小為 1 的情況下,隨著解碼 token 數(shù)量的增加,DFloat11 和 BF16 模型在推理過(guò)程中的 GPU 內(nèi)存消耗情況。

(來(lái)源:arXiv)
打開(kāi)網(wǎng)易新聞 查看精彩圖片
(來(lái)源:arXiv)

與 BF16 模型相比,DFloat11 壓縮顯著延長(zhǎng)了 token 生成長(zhǎng)度,使得在達(dá)到 GPU 內(nèi)存限制之前,將可解碼的 token 數(shù)量增加了 5.33 至 13.17 倍。

與此同時(shí),研究團(tuán)隊(duì)在單個(gè)英偉達(dá) A100-40GB GPU 上,使用不同的 token 批大小,比較了 BF16 和 DFloat11 格式下 Llama-3.1-8B-Instruct 的延遲分解。

對(duì)于每種配置,他們都在 10 次運(yùn)行中測(cè)量前向傳遞過(guò)程中每個(gè)組件的延遲,并在下圖中報(bào)告了平均值。

(來(lái)源:arXiv)
打開(kāi)網(wǎng)易新聞 查看精彩圖片
(來(lái)源:arXiv)

與原始模型相比,由于 Transformer 塊的解壓和語(yǔ)言建模頭(Language Modeling Head)的存在,DFloat11 壓縮版本引入了額外的延遲。

這種解壓操作會(huì)增加一個(gè)固定的開(kāi)銷,但是這一開(kāi)銷與 token 批大小無(wú)關(guān)。

因此,增加批大小可以分?jǐn)偨鈮撼杀?,從而顯著縮小整體推理時(shí)間的差距。

研究中,課題組還使用不同大小的權(quán)重矩陣,將 DFloat11 解壓縮內(nèi)核的延遲和吞吐量與兩個(gè)基線進(jìn)行對(duì)比:分別是 CPU 到 GPU 的傳輸,以及來(lái)自英偉達(dá) nvCOMP 庫(kù)的非對(duì)稱數(shù)字系統(tǒng)(ANS,Asymmetric Numeral System)解壓縮。

這樣做是為了對(duì)比評(píng)估以下兩種針對(duì)內(nèi)存受限推理的策略:第一種策略是將權(quán)重矩陣卸載到 CPU 內(nèi)存中,并在需要時(shí)將其傳輸?shù)?GPU;第二種策略是將壓縮后的矩陣存儲(chǔ)在 GPU 上,并在需要時(shí)進(jìn)行解壓縮。

實(shí)驗(yàn)中,研究團(tuán)隊(duì)使用 Llama-3.1-8B-Instruct 語(yǔ)言建模頭的權(quán)重矩陣,并將其分割成不同的大小,實(shí)驗(yàn)結(jié)果如下圖所示。

(來(lái)源:arXiv)
打開(kāi)網(wǎng)易新聞 查看精彩圖片
(來(lái)源:arXiv)

實(shí)驗(yàn)結(jié)果顯示,DFloat11 解壓縮的效率明顯高于兩條基線,其吞吐量比 CPU 到 GPU 的傳輸高出 24.87 倍,不僅延遲更低,而且比英偉達(dá) nvCOMP 解壓縮快 15.12 倍。

總的來(lái)說(shuō),研究人員提出的 DFloat11 能將大語(yǔ)言模型的 BFloat16 權(quán)重?zé)o損壓縮至約 11 位。通過(guò)利用 BFloat16 表示的信息冗余,研究團(tuán)隊(duì)在保持輸出逐位相同的同時(shí),實(shí)現(xiàn)了大約 30% 的模型尺寸縮減。

其還引入了新的算法設(shè)計(jì),從而能使 DFloat11 壓縮模型實(shí)現(xiàn)高效的 GPU 推理。通過(guò)精心地利用 GPU 內(nèi)存和計(jì)算層次結(jié)構(gòu),研究團(tuán)隊(duì)開(kāi)發(fā)了硬件感知算法,借此實(shí)現(xiàn)了 DFloat11 壓縮模型的高效在線推理。

針對(duì)主流大語(yǔ)言模型和大型推理模型的實(shí)驗(yàn)結(jié)果表明,本次方法在不改變輸出的情況下,始終能實(shí)現(xiàn)約 30% 的壓縮率。對(duì)于當(dāng)前比較缺少高端 GPU 的國(guó)內(nèi)研發(fā)環(huán)境來(lái)說(shuō),這一成果或能為大家?guī)?lái)一定啟發(fā)。

參考資料:

https://openreview.net/profile?id=~Tianyi_Zhang6

https://github.com/tonyzhang617

https://arxiv.org/pdf/2504.11651

運(yùn)營(yíng)/排版:何晨龍