跳轉到主要內容
部落格社群

當量化不足時:為何 2:4 稀疏性很重要

要點速覽

將 2:4 稀疏性與量化相結合,為壓縮大型語言模型 (LLM) 以實現高效部署提供了一種強大的方法,可在準確性和硬體加速效能之間取得平衡,但 GPU 庫和程式設計介面中增強的工具支援對於充分發揮其潛力至關重要。

LLM 壓縮技術概述

儘管大型語言模型 (LLM) 在自然語言理解和生成方面取得了成功,但由於其龐大的引數數量,執行成本通常高得令人望而卻步。這會導致巨大的記憶體開銷和高昂的推理成本,尤其是在部署期間。為了解決這些挑戰,模型壓縮技術,例如量化和剪枝,應運而生,旨在降低推理成本,同時儘可能保持模型準確性,儘管與它們的密集對應物相比通常存在權衡。

量化:儘管高精度格式在訓練期間至關重要,但 LLM 通常可以在推理期間使用更低的位寬保持其準確性。將 LLM 量化為 8 位整數或浮點數相對簡單,最近的方法,如 GPTQAWQ,甚至在 4 位精度下也表現出令人滿意的準確性。然而,低於 4 位的壓縮仍然具有挑戰性:像 AQLM 這樣的方法在現代 GPU 上通常會出現推理速度變慢的情況,而像 QUIP# 這樣的方法則依賴於複雜、自定義的預處理核心。這些限制表明,僅靠量化可能不足以實現激進的壓縮,這促使我們需要探索互補技術,例如稀疏性。

非結構化稀疏性:當量化的好處開始趨於平穩時,稀疏性為壓縮 LLM 提供了一條正交路徑。非結構化稀疏性,其中非零元素可以出現在矩陣的任何位置,允許模型即使在剪枝了多達 50% 的權重後也能保持高精度。最近的方法,如 SparseGPTWanda,可以在效能損失最小的情況下實現這種剪枝。然而,儘管非結構化稀疏性具有壓縮優勢,但由於其不規則的記憶體訪問模式,它在現代 GPU 上很難加速。大多數硬體最佳化方法,例如 FlashLLM,僅在極端稀疏級別(通常為 80% 或更多)下才能提供推理加速。準確性和硬體效率之間的這種差距促使我們使用半結構化稀疏性格式,如 2:4,它在效能和可部署性之間提供了更好的權衡。

半結構化稀疏性:由 NVIDIA 和 AMD GPU 支援的 2:4 稀疏性等半結構化稀疏性格式,透過與底層硬體對齊,在壓縮和加速之間提供了有希望的平衡。雖然半結構化稀疏性對權重可以剪枝的位置施加了一些限制,但最近的方法,如 MaskLLM 使用可學習的掩碼來恢復準確性,實現了與非結構化稀疏性相當的效能。此外,研究表明,稀疏矩陣乘法,特別是具有可預測模式(如零)的乘法,可以透過最小化電晶體開關來顯著降低 GPU 功耗,從而提高推理期間的能源效率。這使得 2:4 稀疏性成為部署壓縮 LLM 的實用替代方案,尤其是當它與其他技術(如量化)結合使用時。

預訓練中的稀疏性:儘管本文側重於降低推理成本,但值得注意的是,稀疏性也是一個強大的訓練工具。預訓練中的權重稀疏性已在先前的工作中進行了探索,例如 SLoPeFST,其中 PyTorch 團隊最近的貢獻 表明 2:4 權重稀疏性可以加速訓練而不會損失模型質量。此外,Meta 最近的工作 表明啟用稀疏性可以無損地恢復模型的準確性,同時加速 LLM 的訓練和推理。這項工作強調稀疏性是整個模型生命週期的基本工具。在確定其在訓練中的價值之後,我們現在將重點轉向量化其對推理的影響,稀疏性與量化相結合為當今的部署挑戰提供了強大的解決方案。

推理中的稀疏性與量化

為了憑經驗比較獨立量化與量化和稀疏性結合的有效性,我們對 LLaMA-2 7B 模型進行了實驗。我們的目標是以等效的理論 8 倍壓縮比評估這兩種方法,特別比較 2 位量化與 4 位量化結合 50% 稀疏性(使用非結構化和 2:4 格式)。

我們的實驗利用最先進的方法來表示每種策略。對於純亞 4 位量化,我們選擇了 AQLM 和 QUIP#。對於混合方法,我們使用 SparseGPT 進行非結構化稀疏性,使用 MaskLLM 進行硬體友好的 2:4 結構化格式,兩者都結合了 4 位量化。最後,為了展示組合技術的強大功能,我們還在稀疏模型之上應用了 SLiM(一種零樣本低秩介面卡),以衡量進一步恢復準確性的潛力。

我們對 LLaMA-2-7B 的實驗表明,儘管 4 位量化與 50% 稀疏性相結合和獨立的 2 位量化都實現了等效的理論 8 倍壓縮比,但前者在準確性方面始終優於後者。在稀疏方法中,2:4 結構化稀疏性,尤其是當透過 SLiM 等低秩介面卡增強時,不僅保持了準確性,而且還利用了現代 GPU 上的硬體加速支援。這使得 2:4 稀疏性成為一個特別引人注目的選擇,不僅適用於模型準確性,而且適用於使用現有 GPU 硬體的實際部署。

LLaMA-2-7B

量化 剪枝 位寬 稀疏性 壓縮比 ArcC ArcE PiQA Wino 平均
密集 16 1.0 40.0 69.3 78.5 67.3 63.8
AQLM 2 0.18 33.6 62.8 73.5 64.6 58.6
QUIP# 2 0.18 34.6 64.6 75.1 64.9 59.8
GPTQ SparseGPT* 4 非結構化 0.18 35.3 68.1 74.2 67.7 61.3
AbsMax MaskLLM** 4 2:4 0.18 33.2 68.4 74.5 65.0 60.3
AbsMax MaskLLM + SLiM-LoRA (r=0.1) 4 2:4 0.22 38.0 70.9 77.2 70.6 64.2

* 最先進的非結構化稀疏性方法。

** 最先進的 2:4 稀疏性方法。

雖然低位量化提供了引人注目的壓縮,但當應用於在更近期和複雜的模型上實現激進的壓縮比時,其有效性可能會面臨限制。例如,對於 LLaMA-3-8B,2 位 AQLM 量化方法在試圖保持可接受的準確性時,僅實現了 0.25 倍的壓縮比。(注意:QUIP# 沒有可用的開源檢查點進行直接比較。)相比之下,透過結合稀疏性、4 位量化和低秩近似,我們可以在相同的 LLaMA-3-8B 模型上以 相同 的 0.25 倍壓縮比實現更高的準確性,如下表所示。這個引人注目的例子強調,在當代 LLM 中,僅僅依靠量化可能成為實現激進壓縮和高準確性的限制因素。稀疏性與量化相結合的這一明顯優勢凸顯了對強大的硬體和軟體工具來有效部署此類壓縮技術的關鍵需求,我們將在下一節中探討。

LLaMA-3-8B

量化 剪枝 位寬 稀疏性 壓縮比 ArcC ArcE PiQA Wino 平均
密集 16 1.0 50.4 80.1 79.7 72.6 70.7
AQLM 2 0.25 41.3 74.3 77.8 72.0 66.4
AbsMax MaskLLM + SLiM-LoRA (r=0.2) 4 2:4 0.25 42.9 75.2 77.8 71.2 66.8

模型加速的可用工具

現在有幾個 GPU 庫支援 2:4 稀疏性與高效矩陣乘法核心,簡化了壓縮模型的部署。值得注意的是,透過 cuSPARSELtCUTLASS 模板庫,現在可以高效支援使用標準資料型別的 2:4 稀疏性。torchao 團隊已將這些核心整合到 PyTorch 框架中,無需自定義 CUDA 或 C++ 擴充套件,從而簡化了採用。

然而,儘管現有支援,這些庫仍存在一些限制,尤其是在混合壓縮的核心支援擴充套件方面。一個顯著的挑戰是它們目前缺乏對融合量化和去量化操作的支援,這對於最小化記憶體頻寬使用和降低現代模型壓縮管道中的延遲至關重要。當前的稀疏和量化推理方法通常需要將具有不同或不相容資料型別的張量載入到共享記憶體中。然後,這些張量需要顯式去量化並轉換為通用格式,才能在張量核心上執行高效的矩陣乘法。此外,CUTLASS 和 cuSPARSELt 中關於 2:4 稀疏性元資料的全面文件稀缺,使得開發用於整合量化和稀疏性的自定義 CUDA 核心成為一項非常耗時和勞動密集型的工作。因此,2:4 稀疏性通常在大多數自定義量化核心中仍不受支援,從而阻礙使用者充分利用在建模方面實現的準確性改進,並阻礙新型壓縮技術的快速發展。

為了解決上述挑戰,SGLang 和 vLLM 等外部庫增加了自定義量化核心,例如 Sparse Marlin。這些核心獨特地為量化方法添加了稀疏性支援,並且旨在與 PyTorch 框架無縫整合,旨在為使用者提供更即插即用的稀疏量化推理體驗。然而,這些解決方案具有很強的針對性,並未涵蓋所有用例。它們通常僅支援有限的資料類型範圍(例如 Sparse Marlin 中的 W4A16)和量化方案(例如一維組量化)。此外,它們在高度專業化的自定義 CUDA 程式碼中實現,這使得它們本質上難以擴充套件或適應新方法。更糟糕的是,與將此類核心轉移到新一代硬體相關的大量維護開銷意味著這些庫通常滯後,僅支援舊架構;例如,Sparse Marlin 的高效能仍然僅限於 Ampere 架構。

此外,所有上述壓縮方法都面臨一個持續的挑戰,即準備矩陣及其相關元資料所需的巨大預處理開銷。這種巨大的預處理成本固有地將其效用主要限制在靜態稀疏性和量化方法上,從而大大降低了它們在未來 LLM 至關重要的動態或自適應壓縮場景中的適用性。為了應對這一特定挑戰,PyTorch 團隊積極開發了自定義核心,旨在顯著降低 權重稀疏性啟用稀疏性 的開銷。然而,這些新核心中對量化的全面支援仍處於持續開發中,這突顯了一個關鍵的持續進步領域。

結論

鑑於上述全面討論,我們堅信 2:4 稀疏性與量化的協同組合在推動大型語言模型壓縮的極限方面具有巨大潛力。然而,正如所示,現有工具和基礎 GPU 程式設計介面的生態系統仍然是充分發揮這一潛力的主要限制因素。具體而言,許多常見的靈活 GPU 編碼介面,例如 Triton 和 ThunderKittens,目前缺乏對 2:4 稀疏性的強大原生支援,並且它們與許多量化方法的整合仍然明顯有限。因此,增強這些工具以原生支援 2:4 稀疏性和各種量化方法對於釋放這一潛力並加速模型壓縮領域的創新至關重要。