80G顯存塞50個7B大模型!清華&OpenBMB開源增量壓縮新算法,顯存節省8倍
最新模型增量壓縮技術,一個80G的A100 GPU能夠輕松加載多達50個7B模型,節省顯存約8倍,同時模型性能幾乎與壓縮前的微調模型相當。
清華大學NLP實驗室攜手OpenBMB開源社區、北京大學和上海財經大學的研究團隊,提出Delta-CoMe。
這項技術的核心在于利用主干模型與任務專用模型之間參數增量(即Delta)的特點進行壓縮,從而實現存儲開銷和部署成本的大幅降低。不僅有助于解決資源瓶頸問題,更為多任務處理和模型部署開辟新的可能。
具體而言,Delta-CoMe將低秩分解和低比特量化技術相結合,充分利用Delta參數的低秩特性,提出了一種全新的混合精度壓縮方法。這種方法不僅能夠實現接近無損的任務性能,還能顯著提升推理效率。
Delta-CoMe方法介紹
微調是增強預訓練模型的重要手段,不同任務往往需要不同的微調方式。例如Luo et al.[1]提出RLEIF通過Evove-instruction來增強模型數學推理能力;Wei et al.[2]利用Code snnipet合成高質量的指令數據來增加模型的代碼能力。然而,這些方法通常依賴高質量數據,并需要精心設計的策略才能實現顯著的效果。
在一些場景中往往需要具有不同能力的LLM同時處理問題,例如多租戶場景,多任務場景以及端側場景等等。一種自然的解決方案是部署單個通用模型作為主干,配合多個具有專有能力的Delta。
以Bitdelta[3]為例,它通過將模型的Delta壓縮到1-bit,有效保留了模型在問答等場景中的能力。盡管該壓縮方法在存儲和推理效率上表現出色,其在更復雜的任務(如數學推理和代碼生成)上仍存在明顯的能力瓶頸。
針對這一挑戰,THUNLP實驗室聯合北京大學和上海財經大學提出Delta-CoMe。這一方法結合低秩分解和低比特量化技術,不僅顯著提升了模型在復雜任務上的表現,還兼顧了壓縮效率和實際應用需求,為模型的高效部署提供了一種新思路。
與前人的方法相比,Delta-CoMe方法的優點在于:
- 結合低秩與低比特量化,利用了Delta低秩的特點,并發現低秩分解后的Delta是長尾分布的;之后采用混合精度量化進一步壓縮
- 性能幾乎無損,相比于BitDelta等方法,在Math, Code, Multi-modal等復雜任務上,性能與壓縮前的微調模型表現基本接近
- 推理速度提升,為混合精度量化實現了Triton kernel算子,對比Pytorch的實現方式,帶來近3倍的推理速度提升
- 超過Delta-tuning,支持多精度Backbone,Delta-CoMe在效果上顯著優于LoRA微調,并可以用在多種精度的Backbone上
具體而言,Delta-CoMe首先采用SVD進行低秩分解,Delta 具有低秩性,經過低秩分解之后,其特征值呈現出長尾分布的規律,僅有少數較大奇異值對應的奇異向量對最終的結果貢獻較大。
一個自然的想法,我們可以根據奇異值的大小進行混合精度量化,將較大的奇異值對應的奇異向量用較高精度表示,而較小的奇異值對應的奇異向量用較低精度表示。
實驗結果
多個開源模型和 Benchmark 的實驗驗證了該方法的有效性。
使用Llama-2作為主干模型,在數學、代碼、對話、多模態等多個任務中進行實驗,Delta-CoMe展現出平均幾乎無損的性能。下面分別是7B模型和13B模型的實驗效果。
此外,還在Mistral、Llama-3等其它主干模型上對不同的壓縮方法進行了驗證。
為了提升混合精度量化的計算效率,實現一個Triton Kernel,相比于Pytorch的實現方式,推理速度提升了約3倍。
實驗結果表明,使用一塊80G的A100 GPU可以加載50個7B模型。
最后,還比較了Delta-Tuning和Delta-Compression的效果差異(Delta-Tuning指的是通過訓練部分參數進行微調,Delta-Compression指的是先進行全參數微調,再將微調帶來的模型參數增量進行壓縮)。其中Delta-Tuning采用的是LoRA。Delta-CoMe對比LoRA在相同的存儲開銷下,性能顯著提升。
Delta-CoMe 通過結合低秩分解和低比特量化,不僅實現了大幅度的存儲壓縮,還在復雜任務如數學推理、代碼生成和多模態任務上維持了與壓縮前模型相當的性能表現。相比于傳統的微調方法,Delta-CoMe 展現出了更高的靈活性,尤其在多租戶和多任務場景中具有顯著的應用價值。此外,借助 Triton kernel 的優化,推理速度得到了顯著提升,使得部署大規模模型成為可能。未來,這一方法的潛力不僅在于進一步優化模型存儲和推理速度,也有望在更廣泛的實際應用中推動大語言模型的普及和高效運作。