縮小大型語言模型幾乎總是要付出代價。目前高效部署的標準做法是先壓縮模型架構,透過移除層、注意力頭或神經元來減少參數數量,然後將剩餘的權重進一步量化到 4 位元,以縮減記憶體和計算需求。

這兩個步驟都能大幅節省資源,但它們也會系統性地降低人們實際關心的能力,例如推理、數學問題解決和程式碼生成。因此,嚴謹的部署流程會在模型投入生產前,增加一個通常稱為「修復 (healing)」的恢復步驟。近期發布的開源模型,如 gpt-oss、NVIDIA 的 Nemotron 系列以及我們自己的 Hypernova 60B,都依賴這種「先壓縮再修復」的方法。

我們最新的論文《量化感知修復:恢復壓縮 4 位元大型語言模型的實用方法 (Quantization-Aware Healing: A Practical Recipe for Recovering Compressed, 4-Bit LLMs)》,探討了一個業界尚未完全解決的問題:當模型已經歷結構性壓縮(不只是量化)後,修復步驟的實際效果如何,以及正確的做法是什麼?

我們引入了「量化感知修復 (Quantization-Aware Healing, QAH)」技術。將 QAH 應用於一個從 GPT-OSS 120B 壓縮到 60B 參數並量化為 MXFP4 的模型時,它在 9 個基準測試中,有 7 個超越了其自身的全精度 (bfloat16) 版本。

最終,這個 4 位元模型比其量化來源的檢查點更小、運行成本更低,而且更準確。這顛覆了 4 位元模型與其 16 位元來源模型之間的傳統關係。

大多數的效率優化流程都遵循相同的三個步驟:壓縮架構、量化壓縮後的權重,然後修復損害。不同方法之間的差異完全體現在最後一個步驟。

目前主流的修復方法是「量化感知訓練 (Quantization-Aware Training, QAT)」。它會在前向傳播中插入偽量化運算子,並持續在任務損失上微調模型,讓權重學習適應低精度表示。

實際上,這意味著要透過一個雜訊更多、精度更低的前向傳播,重新執行一個已經很昂貴的多階段後訓練過程,例如監督式微調、RLHF 或代理式微調。這種方法成本高昂,而且正如我們的結果所示,如果訓練時間超過最佳點太久,它也可能變得不穩定。

另一種替代方法是「量化感知蒸餾 (Quantization-Aware Distillation, QAD)」,它避免了重新執行整個訓練歷史。QAD 不使用任務損失,而是透過輸出 logits 上的 KL 散度損失,將一個凍結的全精度教師模型直接蒸餾到量化的學生模型中。

當唯一的變化是量化時,這種方法效果很好,因為存在一個完全相同的真實全精度版本模型可以作為教師。然而,一旦模型經歷了結構性壓縮(層、注意力頭或神經元數量減少,而不僅僅是位元數減少),這個假設就不成立了。

因為沒有獨立訓練的較小架構全精度版本。唯一可能的教師是已恢復的 bfloat16 檢查點,而它本身就是原始模型的一個蒸餾近似。從這樣的教師進行蒸餾,會將量化學生模型錨定在一個已退化的目標上,並將其準確性限制在該恢復檢查點的上限。

因此,對於如何修復一個同時經歷了結構性壓縮和量化的模型,這個問題直到現在都尚未真正解決。

QAH 透過一個改變來突破這個上限:它直接從原始、未壓縮的模型進行蒸餾,而不是從已恢復的模型。教師模型和學生模型甚至不共享相同的架構。

教師模型是全尺寸且全精度的,而學生模型則是其一半大小並以 MXFP4 運行。由於教師模型的輸出分佈與架構無關,因此尺寸或形狀的不匹配並不會阻礙知識轉移。學生模型從未見過硬標籤,只透過 logits 上的 KL 散度來匹配教師模型的輸出分佈。

這重新定義了量化階段的作用。在 QAH 中,它不再是修復完成後的一個有損後處理步驟。它變成針對原始教師模型的第二次完整蒸餾過程,這是 bfloat16 檢查點從未獲得的監督。

4 位元學生模型並非彌補因量化而損失的資訊;它是在獲取早期恢復階段沒有時間或數據來傳輸的資訊。

此外,損失函數本身也帶來了穩定性優勢。由於 KL 蒸餾將學生模型與固定的教師分佈綁定,一旦學生模型趕上,就不會再有進一步漂移的壓力。相較之下,交叉熵任務損失會無限期地將學生模型推向硬標籤。

這種差異對準確性和訓練穩定性都至關重要,如下面的比較所示。為了讓 QAH 在長上下文環境中也能運作(修復語料庫包含長達 32k tokens 的文件),我們重用了我們關於高效蒸餾的相關論文中,記憶體效率高的分塊 KL 散度損失。

這種損失一次計算序列的一個片段的 KL 值,從不實體化完整的詞彙-序列網格,這使得 32k tokens 的修復能夠在固定的 GPU 記憶體預算內完成。我們在之前的文章中介紹過這種損失的機制。

QAH 概覽。在結構性壓縮和量化後,模型能力會急劇下降。QAH 從原始模型(一個凍結的教師模型,其 logits 已離線預先計算)進行蒸餾,而不是從已恢復的檢查點。來源:論文圖 1。

我們將 QAH 應用於一個 GPT-OSS 120B 模型,該模型被壓縮到 60B 參數並以 bfloat16 恢復,然後在 QAH 下重新量化為 MXFP4。最自然的比較對象是該 60B 模型本身的 bfloat16 檢查點,這是該架構現有的最佳全精度版本。QAH 模型在 9 個基準測試中贏得了 7 個。

QAH 落後的兩個基準測試是 MMLU-Pro 和 SciCode,差距不到 1.5 分。在其他所有方面,這個 4 位元模型都超越了它自己的 16 位元來源模型,而且最大的增益恰好出現在壓縮通常損害最嚴重的能力上:長上下文推理(AA-LCR 提升 7.4 分)和數學(AIME 2025 提升 5.6 分)。

與原始 120B 教師模型的比較同樣具有啟發性。儘管 QAH 模型只使用教師模型一半的參數數量和約四分之一的權重記憶體,它在 LiveCodeBench 上超越了全尺寸教師模型(66.5 對 66.0),並在 GPQA Diamond 上與其差距僅 1.6 分(67.4 對 69.0)。

與教師模型之間最大的差距仍出現在 AA-LCR 上,這是一個極端的長上下文基準測試,其中因壓縮而損失的能力本質上最難恢復。

4 位元 QAH 模型在 9 個基準測試中,有 7 個與其 bfloat16 來源模型持平或超越,並在 LiveCodeBench 上超越了全尺寸教師模型。來源:論文圖 2。

為了將損失函數的影響與其他因素區分開來,我們也在相同條件下直接比較了 QAH 和 QAT。我們將一個 GPT-OSS 9B 模型量化為 MXFP4,並在訓練過程中追蹤其在 MMLU-Pro、LiveCodeBench 和 GPQA Diamond 上的平均表現。

兩種方法都達到了相似的峰值,QAH 為 54.9,QAT 為 54.6,因此在最佳準確性方面,它們實際上是持平的。差異在於它們如何達到峰值以及之後的表現。

QAH 在大約 100 個步驟內達到峰值,比 QAT 的 700 個步驟快約 7 倍,然後在剩餘的訓練過程中保持在峰值約兩點的範圍內。QAT 一旦過了峰值就會急劇下降,到第 1,200 個步驟時損失了近 19 分。

實際的結果是部署風險的顯著差異。QAT 的檢查點需要根據保留的訊號進行仔細的早期停止,以避免部署一個已經開始退化的模型。然而,一個經過充分訓練的 QAH 檢查點可以安全地投入使用,因為它不會漂移。

這與其機制是一致的:針對凍結教師模型的 KL 蒸餾,一旦學生模型與教師模型匹配,就沒有進一步移動的動力;而交叉熵目標則會持續推動學生模型朝向硬標籤,最終會侵蝕模型從原始模型繼承的能力。

QAH 在大約 100 個步驟達到 54.9 的峰值並保持穩定;QAT 則在大約 700 個步驟才達到 54.6,然後到 1,200 個步驟時損失了近 19 分。來源:論文圖 3。

準確性提升的背後,是最初推動模型壓縮的效率考量。在 4 位元精度下,QAH 模型使用的權重記憶體大約是 bfloat16 學生模型的四分之一。

此外,其參數數量是 120B 教師模型的一半,這使得每個 token 的計算量大約減半,進而能在更小的硬體上運行。對於以 bfloat16 而非 4 位元發布的模型系列,參數和精度結合的縮減,將使每個 token 的計算量減少近 8 倍。

這項研究的重點在於,一個壓縮的 4 位元模型不一定非得是其全精度版本的低準確度替代品。透過這種修復方法,模型可以同時變得更小、服務成本更低,而且更準確。

它達到這個目標所需的訓練時間,僅是 QAT 方法所需的一小部分。量化不再是為了效率而付出的代價,反而成為一個額外教導模型的機會。

這項工作是 Multiverse Computing 正在進行的研究的一部分,旨在讓大型模型更小、運行成本更低,同時不犧牲其有用的能力。它與我們關於高效蒸餾的相關工作並行,後者提供了 QAH 所依賴的長上下文訓練機制。

想了解完整的技術細節,包括修復流程、用於長上下文修復的分塊 KL 實作,以及分散式訓練的發現嗎?請閱讀完整論文,或聯繫我們的團隊,討論如何將壓縮和修復技術應用於您自己的模型。