核心概念
BitStack 是一種基於分解的模型壓縮方法,允許在不重新訓練的情況下,根據可用記憶體動態調整大型語言模型的大小,並在極高的壓縮率下仍能保持與量化方法相當甚至更優的效能。
論文資訊
Xinghao Wang, Pengyu Wang, Bo Wang, Dong Zhang, Yunhua Zhou, Xipeng Qiu. (2024). BitStack: Fine-Grained Size Control for Compressed Large Language Models in Variable Memory Environments. arXiv preprint arXiv:2410.23918.
研究目標
本研究旨在解決在變動記憶體環境下部署壓縮大型語言模型 (LLM) 的挑戰,並提出 BitStack,一種基於分解的模型壓縮方法,允許在不重新訓練的情況下,根據可用記憶體動態調整模型大小。
方法
BitStack 透過迭代絕對值分解 (IAVD) 將模型權重矩陣分解成多個殘差塊,並根據校準集上的困惑度評估每個殘差塊對整體效能的影響,將其排序並儲存在一個通用堆疊中。在推論過程中,根據當前可用記憶體動態載入或卸載殘差塊,實現模型大小的細粒度控制。
主要發現
BitStack 能夠在極高的壓縮率下(例如,相較於原始 FP16 模型壓縮至 2 位元級別)保持模型效能,並在多項零樣本推理任務上優於或與量化方法(如 GPTQ 和 AWQ)表現相當。
BitStack 在較低的壓縮率下也能保持良好的效能,並且隨著模型規模的增加,其與量化方法的效能差距逐漸縮小。
BitStack 的效能對校準集大小和每次分解過程中保留的奇異向量數量具有魯棒性。
主要結論
BitStack 為在本地設備上部署 LLM 提供了一種新的範式,它不僅提供了高效的記憶體管理,而且在給定的記憶體預算內提供了強大的效能。
意義
本研究為解決 LLM 部署過程中面臨的記憶體限制問題提供了一種有效的解決方案,並為未來在資源受限的設備上部署更強大的 LLM 鋪平了道路。
局限性和未來研究方向
BitStack 的效能仍略遜於在較低壓縮率下表現最佳的量化方法,未來研究可以探索進一步提高其在這些情況下的效能。
BitStack 的排序演算法需要使用校準集進行評估,未來研究可以探索更有效的排序方法,以減少對校準集的依賴。
統計資料
Llama 3.1 8B 模型在 FP16 精度下需要約 14.96 GB 的記憶體來載入權重。
BitStack 在壓縮 Llama 3.1 8B 模型至 2 位元級別時,在零樣本任務上的平均效能優於最佳量化基準 12.1%。
BitStack 在壓縮 Llama 3.1 70B 模型至 2 位元級別時,保留了原始 FP16 模型 89% 的效能,並在零樣本任務上優於最佳基準 41.3%。
在最低壓縮率(64%)下,BitStack Llama 3.1 8B 和 70B 模型分別恢復了原始 FP16 模型 96% 和 98% 的零樣本效能。