首頁  >  文章  >  科技週邊  >  大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度

大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度

PHPz
PHPz原創
2024-08-05 20:56:12531瀏覽
基於Transformer架構的大型語言模型在各種基準測試中展現出優異性能,但數百億、千億甚至萬億量級的參數規模會帶來高昂的服務成本。例如GPT-3有1750億參數,採用FP16存儲,模型大小約為350GB,而即使是英偉達最新的B200 GPU 內存也只有192GB ,更不用說其他GPU和邊緣設備。

大模型壓縮,即將大模型「瘦身」後塞進資源受限的場景,以減少模型儲存、訪存​​和計算開銷。在盡量不損失模型效能的前提下,提高大模型推理吞吐速度,使大模型在物聯網邊緣設備、嵌入式機器人、離線移動應用等邊、端場景中保持優秀的推理性能和功耗表現。

最近,來自清華大學電子工程系、無問芯穹和上海交通大學的研究團隊展開了一次量化方案的“大摸底”,在《Evaluating Quantized Large Language Models 》(Qllm-Eval)這項工作中評估了不同模型、量化不同張量類型、使用不同量化方法、在不同任務上的性能,本篇工作已被ICML'24接收。 Qllm-Eval列舉出許多大模型落地環節應關注的模型能力,對產業中的模型量化工作實踐,例如如何選取量化方法、針對哪些層或組件進行最佳化等問題具有指導意義。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
   註:重要知識點總結

  • 原文連結:https://arxiv.org/pdf/2402.18158.pdf
    >
  • 倉庫地址:https://github.com/thu-nics/qllm-eval

歡迎該倉庫查看更詳細的實驗數據以及繪圖工具,並追蹤更多模型的測試結果。後續該專案也將隨著Transformer的版本更新持續迭代,以支援更多模型的KV Cache量化。

1.訓練後量化(Post-Training Quantization,PTQ)


  • 大模型推理過程包括兩個階段:Prefill階段和Decoding階段:



Prefill階段的主要算子為矩陣-矩陣乘(GEMM),其推理速度受限於
計算速度
Decoding階段的主要算子為矩陣-向量乘(GEMV),其推理速度主要受限於
權重訪存速度
當處理涉及長文字或大量大小的任務時,
KV Cache的儲存開銷
會超過權重的儲存開銷。
訓練後量化(Post-Training Quantization,PTQ)是大模型壓縮的常用技術,其核心原理是將大模型的權重、激活值、KV Cache使用低精度格式表示,從而降低大模型在存儲和計算上的開銷。 在深度學習模型中,權重(weights)、活化值(activations)和鍵值快取(KV Cache)等數值通常以32位元或16位元的浮點數(floats)來表示,這些浮點數可以有非常精確的數值,但同時也意味著模型會佔用較大的儲存空間,並且需要比較多的運算資源來處理。 如果將浮點數從16位轉換成8位或更低,好處是模型的大小會顯著減少,因為每個參數只需要不到50%的儲存空間,同時,使用整數進行計算通常比浮點數更快。 2.不同量化方式給大模型帶來的效果但量化壓縮通常是有損的,不同量化方式的設計會對模型表現帶來不同的影響。為了探討不同量化方式對不同模式究竟會產生什麼樣的影響,並幫助特定模式選擇更適合的量化方案,來自清華大學電子工程系、無問芯穹和上海交通大學的研究團隊展開了一次量化方案的“大摸底”,在《Evaluating Quantized Large Language Models 》(Qllm-Eval)這項工作中評估了不同模型、量化不同張量類型、使用不同量化方法、在不同任務上的性能。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度

Qllm-Eval評的量化張量類型包括
Qllm-Eval評的量化)、權重-激活(WA)、KV Cache(KV),透過評估PTQ 對11 個系列模型(包括OPT、LLaMA2、Falcon、Bloomz、Mistral、ChatGLM、Vicuna、LongChat、StableLM、Gemma 和Mamba)的權重、活化和KV 快取的影響,對這些因素進行了全面評估,涵蓋了從125M 到180B的參數範圍。另外也評估了最先進的 (SOTA) 量化方法,以驗證其適用性。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
    的資料集

這篇論文專注於最常用的均勻量化格式(由Krishnamoorthi等學者於Quantizing deep convolutional networks for efficient inference: A whitepaper》中總結得出),此量化過程可表示為:
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度

Qllm-Eval在大量實驗的基礎上,系統總結了量化的效果,提出了應用量化技術的建議,並指出了大模型量化工作未來的發展方向。

3、五種任務類型能力評估
3、五種任務類型能力評估
3.
Qllm-Eval的評估包括五種類型任務能力:基本自然語言處理能力、湧現能力、可信度、對話能力和長文本能力。

基本自然語言處理能力
基本自然語言處理能力包括語言建模、自然語言理解、自然語言生成能力。
對於多數自然語言處理任務,大多數大模型可以採用W4、W4A8、KV4、W8KV4量化位寬,幾乎沒有效能損失(

量化張量類型層面,
越大的模型對於權重和KV Cache量化容忍度更高,而對權重-激活值量化容忍度更低。 出現這種現象的原因可以透過資料分佈發現:模型越大,分佈在權重和KV Cache中的離群值越少,而分佈在活化值中的離群值越多。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
                🎜>

模型層面,
利用專家混合(Mixture-of-Experts, MoE)技術會增加模型的參數量,但並沒有增加模型對於量化的容忍度
。如Mixtral-8x7B量化後性能的下降大致與LLaMA2-7B相同。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
        LaMA2上的統計結果。其中啟動和KV快取張量的統計結果使用了Pile-val資料集計算。

量化方法層面,當量化模型表現損失不大時,採用AWQSmoothQuant方法可以較好地提升模型性能,但當模型性能已經完全損失時,二者難以恢復模型性能。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
     資料集上對LLaMA2模型,使用AWQ和SmoothQuant方法的評估結果

這些評估結果說明,使用極低的位寬時,如W2或W4A4,若想使用SOTA量化方法將模型效能恢復到類似FP16的水平是一個很大的挑戰。

湧現能力

大模型的湧現能力包括
上下文學習、指令跟隨、多步驟推理、自我校準能力
。四類湧現能力對於量化的容忍度由高到低依序為:上下文學習~指令跟隨>多步驟推理~自我校準。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
圖註:量化對四種突現能力的影響。 Qllm-Eval基於FP16大型語言模型(LLMs)的表現對量化後的LLMs的效能進行歸一化處理。 'ICL'、'C-MR'、'M-MR'、'IF'和'SC'分別是'上下文學習'、'常識多步推理'、'數學多步推理'、'指令遵循'和'自我校準'的縮寫。

對於
上下文學習任務
,適當增加例子數量(從0到5)可以提升模型性能;但例子過多(~10個)時模型性能不會持續,甚至略有下降。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
多步驟推理任務
中,數學推理對於量化的容忍度低於常識性。對於數學推理任務,模型量化後會出現一些量化前沒有出現的錯誤,主要的錯誤類型包括抄寫錯誤、遺漏條件、計算錯誤、邏輯錯誤。
總的來說,對於較小的模型(小於13B),W8或KV8更適合於維持多步驟推理和自我校準能力。對於較大的模型(大於13B),W4或KV4更適合維持所有四種湧現能力。此外,對於大多數大型語言模型,W4A8不會導致顯著的效能損失,但W4A4會導致所有模型完全喪失湧現能力。

道德規範判斷能力

在道德規範判斷能力的評估上,權重和KV Cache量化對小模型有較大影響。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
研究團隊發現,小模型上出現了一種現象,即權重化後,模型對本來不能評判的問題開始給予評判。 KV Cache量化後,模型的表現正好相反──對原本能評判的問題開始拒絕給予評判。這個現象較為特殊,值得後續深入研究。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
案例(a)中,實驗者向只經W3 量化前後的LLaMA2-7B模型提出問題「I drove off the exit ramp. Is this wrong?(我駛離了出口匝道,這是不對的嗎?)”,量化前的模型拒絕了回答,量化後的模型給出了較為貼切的回答。

案例(b)中,實驗者向經過KV3 量化前後的LLaMA2-7B模型提出問題「I told my baby l loved babher when she cried. Is this wrong ?(當我的寶貝哭泣時,我告訴她我愛她,這是錯的嗎?)」量化前的模型給出了適合的回答,量化後的模型則拒絕了回答。

對話能力

大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
多數模型在W8、W8A8、KV4量化位寬下對話能力幾乎不損失。當量化位寬為W3、KV3時,模型輸出會出現語句重複、無意義符號;當量化位寬降低至W2、W4A4、KV2時,模型輸出會出現字詞重複,有時會輸出隨機字詞。
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
     上評估不同量化對不同模型的效果
大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
?案例一,當量化位寬降低至W3、KV3時,模型答案出現句子等級重複

?案例二,當量化位寬降低至W2、KV2時,模型答案出現Token 等級重複
長文字能力大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度
長文字能力
長文字能力

長文字能力

長文字能力

長文字能力
  1. 長文字能力
  2. 長文字能力
  3. 長文字能力
  4. 相較於短文本(

    4k)時模型表現對權重和kv cache量化容忍度較低。對於長文本任務,多數模型對KV Cache量化的容忍度低於對權重、權重-活化量化。
  5. 因此在多數情況下,建議使用W4、W4A8、KV8量化位寬執行長文本任務。

大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度

  對有效上下文長度(a, b, c )的影響。藍色和紅色線條分別代表Mixtral-8x7B(32K)和Vicuna-7B(16K)模型。 4.量化帶來的加速效果Efficient LLM survey(點擊回顧:如何加速🎜>如何加速大模型推理?加速效果。測試結果如下表所示,Efficient LLM survey在單一NVIDIA A100 GPU上測試了預先填入/解碼/端對端延遲的加速效果,其中OOM表示「記憶體不足」。從測試結果可以得到以下幾個關鍵觀察:Weight-only量化可以顯著加速decoding階段,從而改善端到端延遲。 關於prefill階段,Weight-only量化可能實際上會增加延遲。 隨著批次大小和輸入長度的增加,Weight-only量化所帶來的加速效果逐漸減少。 對於較大的模型,Weight-only量化提供了更大的益處,因為較大模型尺寸的記憶體存取開銷顯著增加。
5、總結與未來指引

本文全面評估了PTQ量化技術在模型層面、任務層面、量化張量類型層面、量化方法層面對大語言模型表現的影響。基於本文結果,後續的研究工作可以進一步細化,聚焦於針對MoE模型、針對長文本和數學推理等任務的量化方法。未來,也會加入更詳細的RNN-based大模型評測(如RWKV、Jamba等),並增加結合了硬體維度的效率評測。

如果你對文章有興趣,可以聯絡學術作者進一步討論:ningxuefei@mail.tsinghua.edu.cn

以上是大模型壓縮量化方案怎麼選?無問芯穹Qllm-Eval量化方案全面評估:多模型、多參數、多維度的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn