核心概念
ShiftAddLLM 透過將預訓練大型語言模型中的乘法運算替換為硬體友善的移位和加法運算,從而在不影響模型準確性的情況下顯著降低了模型的延遲、内存和能源消耗。
研究目標
本研究旨在解決大型語言模型 (LLM) 在資源受限設備上的部署挑戰,特別是其龐大的參數規模和對密集乘法的依賴導致的高内存需求和延遲瓶頸。
方法
研究提出了一種名為 ShiftAddLLM 的新方法,透過訓練後移位和加法重新參數化來加速預訓練的 LLM,從而創建高效的免乘法模型。具體來說,該方法將每個權重矩陣量化為二進制矩陣,並搭配分組縮放因子。相關的乘法運算被重新參數化為 (1) 激活值和縮放因子之間的移位,以及 (2) 根據二進制矩陣進行的查詢和加法運算。為了減少精度損失,研究提出了一種多目標優化方法,以最小化權重和輸出激活的重新參數化誤差。此外,基於不同層對重新參數化的敏感性差異,研究還開發了一種自動化的位元分配策略,以進一步減少内存使用和延遲。
主要發現
在五個 LLM 系列和八個任務上的實驗結果一致證明了 ShiftAddLLM 的有效性。與最具競爭力的量化 LLM 相比,ShiftAddLLM 在 3 位元和 2 位元精度下分別實現了平均 5.6 和 22.7 的困惑度降低,同時保持了相當甚至更低的延遲。此外,與原始 LLM 相比,ShiftAddLLM 還實現了超過 80% 的内存和能源消耗降低。
結論
ShiftAddLLM 提供了一種透過訓練後優化將移位和加法概念整合到 LLM 中的新方法,無需額外的訓練或微調。其多目標優化和自動化位元分配策略進一步提高了準確性或降低了 GPU 延遲、能源和内存使用。
意義
這項工作為透過訓練後優化設計高效的 LLM 服務系統開闢了新的視角,為在資源受限設備上部署高性能 LLM 提供了新的可能性。
限制和未來研究方向
儘管 ShiftAddLLM 在準確性和效率方面取得了顯著成果,但仍存在一些限制。例如,實現 GPU 加速依賴於 BCQ 内核和相容的塊級縮放因子設計。雖然採用列級設計的 ShiftAddLLM (Acc.) 可以提供更高的準確性,但目前缺乏實現類似加速所需的快速 CUDA 内核。未來研究方向包括開發更快的 CUDA 内核以支援列級縮放因子設計,以及探索將 ShiftAddLLM 應用於其他類型神經網路模型的可能性。
統計資料
與最具競爭力的量化 LLM 相比,ShiftAddLLM 在 3 位元和 2 位元精度下分別實現了平均 5.6 和 22.7 的困惑度降低。
與原始 LLM 相比,ShiftAddLLM 還實現了超過 80% 的内存和能源消耗降低。
ShiftAddLLM 在 OPT-66B 上節省了 81% 和 87% 的内存成本(3 位元為 23GB vs. 122GB,2 位元為 16GB vs. 122GB)。
ShiftAddLLM 在 LLaMA-2-70B 上節省了 80% 和 87% 的内存成本(3 位元為 25GB vs. 128GB,2 位元為 17GB vs. 128GB)。