大型語言模型(LLM)應(yīng)用的一大挑戰(zhàn)是其耗費(fèi)巨大的內(nèi)存和計(jì)算需求,通常需要數(shù)十GB的GPU內(nèi)存。這使得它們不僅昂貴而且難以運(yùn)行。
為了緩解這些問題,研究人員開發(fā)了幾種LLM壓縮技術(shù),其中包括“量化”。量化通過改變參數(shù)的存儲(chǔ)方式來減少模型的誤差。GPTQ就是這樣一種高效快速的算法。GPTQ通過AutoGPTQ庫得到了Hugging Face等流行框架的支持,并提供了一種經(jīng)濟(jì)有效的解決方案。以下是人們需要知道的關(guān)于用GPTQ量化LLM的事項(xiàng)。
Transformer模型(例如LLM)通常使用16位浮點(diǎn)數(shù)字(fp16)存儲(chǔ)參數(shù)。因此,運(yùn)行一個(gè)有10億個(gè)參數(shù)的模型至少需要2GB的內(nèi)存,外加額外的開銷資源。量化通過將這些參數(shù)轉(zhuǎn)換為更小的整數(shù)格式(例如int8或int4),有效地減小了模型的大小,從而為這個(gè)問題提供了解決方案。量化算法面臨的挑戰(zhàn)是在最小化模型精度損失的同時(shí)減少模型的大小。
量化技術(shù)主要分為三大類:
量化感知訓(xùn)練(QAT):這種技術(shù)將量化集成到訓(xùn)練過程中。通過允許模型從一開始就學(xué)習(xí)低精度表示,QAT減少了通常與量化相關(guān)的精度損失。
量化感知微調(diào)(QAFT):這種方法采用預(yù)訓(xùn)練的高精度模型,以較低的精度權(quán)重來保持其質(zhì)量。令人關(guān)注的QAFT技術(shù)包括QLoRA和參數(shù)有效和量化感知自適應(yīng)(PEQA),它們都是為了在減小模型大小的同時(shí)保持模型的訓(xùn)練質(zhì)量。
訓(xùn)練后量化(PTQ):這種方法在模型訓(xùn)練完成之后,將LLM的參數(shù)轉(zhuǎn)換為精度較低的數(shù)據(jù)類型。PTQ的目標(biāo)是在不改變其架構(gòu)或不需要重新訓(xùn)練的情況下降低模型的復(fù)雜性。
GPTQ是一種訓(xùn)練后量化技術(shù),使其成為非常大的模型的理想選擇,在這種模型中,完全訓(xùn)練甚至微調(diào)的成本可能高得令人望而卻步。它具有將模型量化為2位、3位或4位格式的能力,根據(jù)開發(fā)人員的特定需求提供靈活性。
GPTQ采用了一套優(yōu)化技術(shù),在保持模型準(zhǔn)確性的同時(shí)簡化了量化過程。根據(jù)研究機(jī)構(gòu)發(fā)表的一些論文,與之前提出的一次性量化方法相比,GPTQ的壓縮增益增加了一倍多,證明了其優(yōu)越的效率。
實(shí)驗(yàn)結(jié)果表明,當(dāng)使用像NVIDIA A100這樣的高端GPU時(shí),GPTQ可以將推理速度提高約3.25倍,當(dāng)使用更經(jīng)濟(jì)的選項(xiàng)(例如NVIDIA A6000)時(shí),GPTQ可以將推理速度提高4.5倍。
在實(shí)際比較中,具有1760億個(gè)參數(shù)的BLOOM模型可以使用GPTQ在不到4個(gè)GPU小時(shí)內(nèi)進(jìn)行量化。相比之下替代量化算法OBQ需要2個(gè)GPU小時(shí)來量化小得多的BERT模型,該模型只有3.36億個(gè)參數(shù)。
GPTQ的創(chuàng)建者來自IST奧地利分布式算法和系統(tǒng)實(shí)驗(yàn)室,他們已經(jīng)在GitHub上公開了代碼。這種實(shí)現(xiàn)支持LLM的OPT和BLOOM系列。
還有其他一些將GPTQ應(yīng)用于LLaMA模型的實(shí)現(xiàn),包括著名的Llama.cpp模型。然而,對于范圍更廣的Transformer模型,AutoGPTQ庫是一個(gè)可靠的選擇。它與廣泛使用的Hugging Face Transformers庫兼容,允許開發(fā)人員將AutoGPTQ模型上傳到Hugging Face,使其可供應(yīng)用程序和其他開發(fā)人員訪問。
Hugging Face已經(jīng)擁有了幾個(gè)使用AutoGPTQ量化的模型,簡化了它們的部署。Hugging Face AutoGPTQ集成還支持AMD GPU和參數(shù)高效微調(diào),包括低秩自適應(yīng)(LoRA)。
開發(fā)人員可以使用Hugging Face的文本生成推理(TGI)工具包來運(yùn)行AutoGPTQ模型。根據(jù)Hugging Face的說法,開發(fā)人員可以使用AutoGPTQ在一個(gè)A100-80GB的GPU上托管700億個(gè)參數(shù)的模型,這在fp16格式的模型上是不可能的。