LLaMA3模型壓縮性能比較 How Good Are Low-bit Quantized LLAMA3 Models?

Easy AI with Izzy
9 min readJul 7, 2024

--

被壓扁的LLaMA

相信使用LLM框架的各位有感吧! 環境資源差強人意的時候 (也就是everyday) 模型運行起來總是像烏龜一樣又大又慢

為了解決模型「大」的問題,你是否下載過好心網友上傳到Hugging Face的各種GGUF呢?

但是你有沒有考慮過熱心網友使用的壓縮技術,在多大程度下會對模型的性能,也就是回答的品質,造成影響呢?

這篇發表在arxiv上的文章就探討壓縮與性能這件事,把LLaMA3壓到小、中、大,從各種測驗上,比較壓縮後模型的表現力。

讓你知道,多low-bits的gguf就不要浪費時間去下載來玩了啊! 你各位

論文出處 : https://arxiv.org/pdf/2404.14047

LLaMA3

LLaMA系列是Meta公司從2023 年2月開始發布的基於Transformer架構的大型語言模型。初代LLaMA只有130億的參數就比擁有1750億參數的GPT3,在各種測驗的表現上更加優秀。

今年4月meta發布的LLaMA3,使用了超過15兆個token進行預訓練 (pre-train),分別釋出了8B (表示擁有表示該模型擁有80億個參數) 和70B (700億個參數) 兩種模型。宣稱LLaMA3模型簡直到達了state-of-the-art (SOTA) 的程度。

想要在設備條件普通,甚至是筆記型電腦上自己運行一個大型語言模型的服務,你可以選擇已量化 (Quantized) 過的版本。

Quantization

量化 (Quantization) 是什麼?

在 LLM 的世界裡,量化是指將模型中的權重轉換為較低精度的表示形式,以減少模型的存儲空間和運算量,從而提高使用模型的效率。

比如說,原本的模型所有權重都是以 32 位元浮點數 (FP32) 表示,經過量化後,可以將其轉換為 16 位元浮點數 (FP16) 或 8 位元整數 (INT8) 表示。這樣做可以大幅減少模型的記憶體占用和計算成本,讓較低資源環境也可以使用大型語言模型。

粗暴一點來說,量化就是把大型語言模型進行壓縮。然而,量化的缺點也很明顯,就是不可避免的會造成性能下降 (Performance drop)。儘管是這樣,不同的量化技術,也會影響模型表現。所以,挑選量化技術的目的就是根據不同情境,在兼顧壓縮大小的同時,最大限度地減少性能損失。

Evaluating Variables

Evaluating Variables

這篇文章選用兩類量化方法來壓縮LLaMA3-8B和LLaMA3-70B的模型,比較壓縮後的性能差異。第一類量化方法是Post-Training Quantization (PTQ) 訓練後量化,第二類是LoRA-FineTuning (LoRA-FT) 。用來衡量性能的測驗集則是採用了,困惑度 (Perplexity)、常識 (CommonSenseQA) ,和 MMLU (Massive Multitask Language Understanding) 三大類。整個實驗是在擁有八張NVIDIA A800 GPU (總共80GB的GPU記憶體) 的環境下進行的。

Quantization Methods

  • Post-Training Quantization (PTQ) 是在大型語言模型訓練完後,直接將全部的權重行量化處裡,從高精度 (通常是32位浮點數) 轉換為較低位元的表示形式 (比如8位整數) ,我喜歡叫他暴力壓縮法,做法很直覺但也容易失真,誤差較大、精度較差。
  • LoRA-Fine Tuning (LoRA-FT) LoRA-FT由Microsoft 團隊提出,其實他並不是量化方法,而是一種微調 (fine-tuning) 的技術。微調是指拿一個已經訓練好 (pre-trained) 的模型,使用新的資料集,再去進行一次訓練,讓模型能夠適應新的情境,提升對特定任務表現力的方式。 相較於PTQ,LoRA-FT的優勢在於它不需要對整個模型的所有權重進行重新訓練。相反,首先對模型中的權重矩陣進行低秩分解 (Low-rank Matrix Decomposition) ,以降低模型的維度和計算成本。接著,在保留這些降維後的模型權重的基礎上,再額外加上一個Adaptor,由這個Adaptor進行針對新任務的微調。這種方法通過低秩分解技術,可以在壓縮模型的同時,保持模型的預測能力和效果。

Results

先說明重要欄位:

  • LLaMA3那一個橫排,則表示不壓縮的情況下,LLaMA3的原始模型表現。
  • #W的欄位指的是量化後的大小,以位元 (bit) 為單位。LLaMA3原本使用的是16bits。壓縮後可以是8、4、2bits。
  • PPL⬇是 Perplexity (困惑度) 是用來評估語言模型預測能力的一個指標。困惑度越低,表示模型對於給定文本序列的預測能力越好。
  • CommonSenseQA 顧名思義常識測驗,分數則要越高越好。
  • MMLU ⬆ (Massive Multi-task Language Understanding) 測驗是一種評估語言模型在多任務、多領域上的理解和生成能力的綜合性測驗,分數越高越好。
Table1. Results of post-training quantization on LLaMA3–8B model

1. 使用Post-Training Quantization壓縮LLaMA3–8B測驗結果

從Table1的PPL⬇欄位來看,表現最好的即是使用RTN這個量化方法的8位元模型,因為他在WikiText2的分數是6.2,而困惑度越低則表示表現越好,甚至接近無壓縮版的LLaMA3,在同樣項目的表現是6.1。同時RTN-8的CommonSenseQA測驗平均分數 (Avg.) 也達到了68.9分,甚至超越無壓縮版LLaMA3的68.8。

但是分數表現好就是最佳嗎?不要忘了這一篇文章的重點是可以壓縮到多小!

換一個角度我們可以發現,Table1的QuIP-4位元模型,表現力在PPL得到6.5,CommonSenseQA Avg (簡稱CS Avg.)則是67.1。雖然略遜RTN-8一籌,但他可以壓縮到4位元耶!如果把同樣都是量化到4位元的QuIP-4和RTN-4(PPL: 8.7, CS Avg.: 61.5)相比,發現QuIP-4贏很大呢!

所以我單方面宣布,使用Post-Training Quantization (PTQ)訓練後量化去壓縮LLaMA3–8B模型的結果,最低可以使用QuIP壓縮到4位元的模型,表現力還不錯,小於4就很差了。追求模型表現的話,不要壓得太多,使用RTN-8可以達到接近原始模型的效果。

Table2. Results of post-training quantization on LLaMA3–70B mode

2. 使用Post-Training Quantization 壓縮LLaMA3–70B測驗結果

同樣使用訓練後量化的方法進行壓縮,LLaMA3–70B模型的測驗分數顯著優於LLaMA3–8B模型:LLaMA3–70B的PPL為2.9,CS Avg.為75.3,而LLaMA3–8B的PPL為6.1,CS Avg.為68.6。這表明,模型規模越大,即使經過量化性能依然更加優越。

進一步觀察發現,把70B模型壓縮到4位元時,不論使用哪種量化方法,效果都相對穩定,PPL大約為3,CS Avg.約為74左右,和未經壓縮的模型相比效能差異也不大。然而,當壓縮到3位元時,效果開始下降,而壓縮到2位元時,性能就明顯的很差了。

總結來說,使用訓練後量化技術壓縮LLaMA3–70B模型時,最合適的選擇是壓縮到4位元,這樣可以在不大幅影響模型性能的情況下,實現有效的模型壓縮。

Table3. Results of LoRA-FineTuning Quantization

3. 使用LoRA-FineTuning 壓縮LLaMA3–8B測驗結果

原本以為使用LoRA-FineTuning技術進行壓縮會有更驚人的效果,但是在相同條件下,即同樣將LLaMA3–8B模型壓縮到4位元的情境下,CommonSenseQA測驗的平均分數中,使用Post-Training Quantization方法的QuIP可以達到67.1,而使用LoRA-FineTuning的兩種方法QLoTA和IR-QLoRA僅有約64分。在MMLU測驗上,LoRA-FT量化後的分數也有明顯下降。由此看來,雖然使用LoRA-FT方法壓縮LLaMA3–8B模型的效果不差,但也並沒有達到驚人的成效。原文有提到,也許是LLaMA3的預訓練太強了,彌補了低階與高階的量化方式之間的表現力鴻溝。

論文作者沒有在LoRA-FT的項目中測驗PPL,也沒有將LLaMA3–70B模型進行量化一起對比,沒有全面化的比較稍嫌可惜。

Conclusion

  • 若要使用壓縮版本的LLaMA3,有條件的話,請選用70B。因為不管在任何測驗、量化位元的表現力都比8B的版本更好
  • 在Hugging Face下載壓縮模型時,注意他的量化方法,不同的方法確實會影響模型效能
  • 壓縮到4位元以下的模型效能不佳,盡量不要使用

Reference

Huang, W., Ma, X., Qin, H., Zheng, X., Lv, C., Chen, H., … & Magno, M. (2024). How good are low-bit quantized llama3 models? an empirical study. arXiv preprint arXiv:2404.14047.

Acknowledgments

特別感謝河馬幫我畫的草泥馬首圖!!! 他開放接案中(hippojabe@gmail.com)

碎念

週會要報paper固然很累,但研究所畢業後看paper的得失心就沒那麼重了,比較輕鬆,唯一不變的是,還是喜歡堆到要報告前才開始熬夜看哈哈哈!

--

--

Easy AI with Izzy

AI Software Engineer. Hey It's Izzy, someone who's into Python AI development, dabbles in Vue.js, and enjoys football, coffee, and hotpot.