0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

低比特量化技術(shù)如何幫助LLM提升性能

英特爾物聯(lián)網(wǎng) ? 來(lái)源:OpenVINO 中文社區(qū) ? 2023-12-08 15:26 ? 次閱讀

作者:楊亦誠(chéng)

針對(duì)大語(yǔ)言模型 (LLM) 在部署過(guò)程中的性能需求,低比特量化技術(shù)一直是優(yōu)化效果最佳的方案之一,本文將探討低比特量化技術(shù)如何幫助 LLM 提升性能,以及新版 OpenVINO對(duì)于低比特量化技術(shù)的支持。

大模型性能瓶頸

相比計(jì)算量的增加,大模型推理速度更容易受到內(nèi)存帶寬的影響(memory bound),也就是內(nèi)存讀寫(xiě)效率問(wèn)題,這是因?yàn)榇竽P陀捎?a target="_blank">參數(shù)量巨大、訪(fǎng)存量遠(yuǎn)超內(nèi)存帶寬容量,意味著模型的權(quán)重的讀寫(xiě)速度跟不上硬件對(duì)于算子的計(jì)算強(qiáng)度,導(dǎo)致算力資源無(wú)法得到充分發(fā)揮,進(jìn)而影響性能。

f7a0f750-957b-11ee-8b88-92fbcf53809c.png

圖:memory bound與compute bound比較

低比特量化技術(shù)

低比特量化技術(shù)是指將模型參數(shù)從 fp32/fp16 壓縮到更低的比特位寬表達(dá),在不影響模型輸出準(zhǔn)確性和參數(shù)量的情況下,降低模型體積,從而減少緩存對(duì)于數(shù)據(jù)讀寫(xiě)的壓力,提升推理性能。由于大模型中單個(gè) layer 上的權(quán)重體積往往要遠(yuǎn)大于該 layer 的輸入數(shù)據(jù)(activation),因此針對(duì)大模型的量化技術(shù)往往只會(huì)針對(duì)關(guān)鍵的權(quán)重參數(shù)進(jìn)行量化(WeightOnly),而不對(duì)輸入數(shù)據(jù)進(jìn)行量化,在到達(dá)理想的壓縮比的同時(shí),盡可能保證輸出結(jié)果,實(shí)現(xiàn)最高的量化“性?xún)r(jià)比”。

f7c40178-957b-11ee-8b88-92fbcf53809c.png

圖:權(quán)重壓縮示意

經(jīng)驗(yàn)證常規(guī)的 int8 權(quán)重量化,對(duì)大模型準(zhǔn)確性的影響極低,而為了引入像 int4,nf4 這樣的更極致的壓縮精度,目前在權(quán)重量化算法上也經(jīng)過(guò)了一些探索,其中比較典型的就是 GPTQ 算法,簡(jiǎn)單來(lái)說(shuō),GPTQ 對(duì)某個(gè) block 內(nèi)的所有參數(shù)逐個(gè)量化,每個(gè)參數(shù)量化后,需要適當(dāng)調(diào)整這個(gè) block 內(nèi)其他未量化的參數(shù),以彌補(bǔ)量化造成的精度損失。GPTQ 量化需要準(zhǔn)備校準(zhǔn)數(shù)據(jù)集,因此他也是一種 PTQ(Post Training Quantization)量化技術(shù)。

OpenVINO 2023.2

對(duì)于 int4 模型的支持

OpenVINO 2023.2 相較 2023.1 版本,全面引入對(duì) int4 模型以及量化技術(shù)的支持。主要有以下 2 個(gè)方面:

01CPU 及 iGPU 支持原生 int4 模型推理

OpenVINO工具目前已經(jīng)可以直接讀取經(jīng) NNCF 量化以后的 int4 模型,或者是將 HuggingFace 中使用 AutoGPTQ 庫(kù)量化的模型轉(zhuǎn)換后,進(jìn)行讀取及編譯。由于目前的 OpenVINO 后端硬件無(wú)法直接支持 int4 數(shù)據(jù)格式的運(yùn)算,所以在模型執(zhí)行過(guò)程中,OpenVINO runtime 會(huì)把 int4 的權(quán)重反量化的到 FP16 或是 BF16 的精度進(jìn)行運(yùn)算。簡(jiǎn)而言之:模型以 int4 精度存儲(chǔ),以 fp16 精度計(jì)算,用計(jì)算成本換取空間及 IO 成本,提升運(yùn)行效率。這也是因?yàn)榇竽P偷男阅芷款i主要來(lái)源于 memory bound,用更高的數(shù)據(jù)讀寫(xiě)效率,降低對(duì)于內(nèi)存帶寬與內(nèi)存容量的開(kāi)銷(xiāo)。

f7ebf480-957b-11ee-8b88-92fbcf53809c.png

圖:經(jīng) NNCF 權(quán)重壓縮后的模型結(jié)構(gòu)

02NNCF 工具支持 int4 的混合精度量化策略(Weights Compression)

剛提到的 GPTQ 是一種 data-based 的量化方案,需要提前準(zhǔn)備校驗(yàn)數(shù)據(jù)集,借助 HuggingFace 的 Transformers 和 AutoGPTQ 庫(kù)可以完成這一操作。而為了幫助開(kāi)發(fā)者縮短 LLM 模型的壓縮時(shí)間,降低量化門(mén)檻,NNCF 工具在 2.7.0 版本中引入了針對(duì) int4 以及 nf4 精度的權(quán)重壓縮模式,這是一種 data-free 的混合精度量化算法,無(wú)需準(zhǔn)備校驗(yàn)數(shù)據(jù)集,僅對(duì) LLM 中的 Linear 和 Embedding layers 展開(kāi)權(quán)重壓縮。整個(gè)過(guò)程僅用一行代碼就可以完成:

compressed_model = compress_weights(model, mode=CompressWeightsMode.NF4, group_size=64, ratio=0.9)

左滑查看更多

其中model為 PyTorch 或 OpenVINO 的模型對(duì)象;mode代表量化模式,這里可以選擇CompressWeightsMode.NF4,或是CompressWeightsMode.INT4_ASYM/INT4_SYM等不同模式;為了提升量化效率,Weights Compression 使用的是分組量化的策略(grouped quantization),因此需要通過(guò)group_size配置組大小,例如 group_size=64 意味 64 個(gè) channel 的參數(shù)將共享同一組量化參數(shù)(zero point, scale value);此外鑒于 data-free 的 int4 量化策略是比帶來(lái)一定的準(zhǔn)確度損失,為了平衡模型體積和準(zhǔn)確度,Weights Compression 還支持混合精度的策略,通過(guò)定義ratio值,我們可以將一部分對(duì)準(zhǔn)確度敏感的權(quán)重用 int8 表示,例如在 ratio=0.9 的情況下,90% 的權(quán)重用 int4 表示,10% 用 int8 表示,開(kāi)發(fā)者可以根據(jù)量化后模型的輸出結(jié)果調(diào)整這個(gè)參數(shù)。

在量化過(guò)程中,NNCF 會(huì)通過(guò)搜索的方式,逐層比較偽量化后的權(quán)重和原始浮點(diǎn)權(quán)重的差異,衡量量化操作對(duì)每個(gè) layer 可能帶來(lái)的誤差損失,并根據(jù)排序結(jié)果以及用戶(hù)定義的 ratio 值,將損失相對(duì)較低的權(quán)重壓縮到 int4 位寬。

中文大語(yǔ)言模型實(shí)踐

隨著 OpenVINO2023.2 的發(fā)布,大語(yǔ)言模型的 int4 壓縮示例也被添加到了openvino_notebooks 倉(cāng)庫(kù)中,這次特別新增了針對(duì)中文 LLM 的示例,包括目前熱門(mén)模型ChatGLM2Qwen。在這個(gè) notebook 中,開(kāi)發(fā)者可以體驗(yàn)如何從 HuggingFace 的倉(cāng)庫(kù)中導(dǎo)出一個(gè) OpenVINO IR 格式的模型,并通過(guò) NNCF 工具進(jìn)行低比特量化,最終完成一個(gè)聊天機(jī)器人的構(gòu)建。

f8093eb4-957b-11ee-8b88-92fbcf53809c.png

圖:fp16 與 int4 模型空間占用比較

通過(guò)以上這個(gè)截圖可以看到,qwen-7b-chat 經(jīng)過(guò) NNCF 的 int4 量化后,可以將體積壓縮到原本 fp16 模型的 1/3,這樣使得一臺(tái) 16GB 內(nèi)存的筆記本,就可以流暢運(yùn)行壓縮以后的 ChatGLM2 模型。此外我們還可以通過(guò)將 LLM 模型部署在酷睿 CPU 中的集成顯卡上,在提升性能的同時(shí),減輕 CPU 側(cè)的任務(wù)負(fù)載。

f81349cc-957b-11ee-8b88-92fbcf53809c.png

圖:Notebook 運(yùn)行效果

總結(jié)

OpenVINO 2023.2 中對(duì) int4 權(quán)重量化的支持,可以全面提升大模型在英特爾平臺(tái)上的運(yùn)行性能,同時(shí)降低對(duì)于存儲(chǔ)和內(nèi)存的容量需求,降低開(kāi)發(fā)者在部署大模型時(shí)的門(mén)檻,讓本地化的大語(yǔ)言模型應(yīng)用在普通 PC 上落地成為可能。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 輕量化技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    2219
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    2134

    瀏覽量

    1970
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    247

    瀏覽量

    279
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    139

原文標(biāo)題:如何利用低比特量化技術(shù)在 iGPU 上進(jìn)一步提升大模型推理性能|開(kāi)發(fā)者實(shí)戰(zhàn)

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    比特熊充電?!繉?shí)戰(zhàn)演練構(gòu)建LLM對(duì)話(huà)引擎

    Guardrails 與 Azure OpenAI 結(jié)合使用,構(gòu)建更加安全可靠的 LLM 對(duì)話(huà)引擎? 本期 【比特熊充電?!?NVIDIA 企業(yè)
    的頭像 發(fā)表于 09-19 13:40 ?925次閱讀
    【<b class='flag-5'>比特</b>熊充電?!繉?shí)戰(zhàn)演練構(gòu)建<b class='flag-5'>LLM</b>對(duì)話(huà)引擎

    最新可用隔離元件的性能提升如何幫助替代架構(gòu)在不影響安全性的前提下提升系統(tǒng)性能

    本文探討了系統(tǒng)架構(gòu)選擇對(duì)電源和控制電路設(shè)計(jì)以及系統(tǒng)性能的影響。本文還將說(shuō)明最新可用隔離元件的性能提升如何幫助替代架構(gòu)在不影響安全性的前提下提升
    的頭像 發(fā)表于 10-13 06:12 ?7746次閱讀
    最新可用隔離元件的<b class='flag-5'>性能</b><b class='flag-5'>提升</b>如何<b class='flag-5'>幫助</b>替代架構(gòu)在不影響安全性的前提下<b class='flag-5'>提升</b>系統(tǒng)<b class='flag-5'>性能</b>

    Labview開(kāi)發(fā)技術(shù)叢書(shū)--運(yùn)行性能提升技巧

    Labview開(kāi)發(fā)技術(shù)叢書(shū)--運(yùn)行性能提升技巧
    發(fā)表于 09-02 18:09

    基于RDMA技術(shù)的Spark Shuffle性能提升

    一篇文章教你使用RDMA技術(shù)提升Spark的Shuffle性能
    發(fā)表于 10-28 16:46

    多核和多線(xiàn)程技術(shù)怎么提升Android網(wǎng)頁(yè)瀏覽性能?

    采用多核技術(shù)提升 CPU 馬力,是一種通過(guò)硬件提供更高系統(tǒng)性能的日益常見(jiàn)的做法。即使對(duì)許多視成本和功耗為重要設(shè)計(jì)考慮的大量消費(fèi)性應(yīng)用,也是如此。但是,升級(jí)到多核系統(tǒng)并無(wú)法保證一定能夠提升
    發(fā)表于 03-25 08:08

    求一種采用分段量化比特滑動(dòng)技術(shù)的流水并行式模數(shù)轉(zhuǎn)換電路?

    本文提出了一種采用分段量化比特滑動(dòng)技術(shù)的流水并行式模數(shù)轉(zhuǎn)換電路,較好地結(jié)合了并行式和逐次逼近比較式兩種模數(shù)轉(zhuǎn)換各自的長(zhǎng)處,在保證高速工作的同時(shí),可實(shí)現(xiàn)并行式難以實(shí)現(xiàn)的8位以上的高分辨率模數(shù)轉(zhuǎn)換,而且比現(xiàn)有的流水并行式模數(shù)轉(zhuǎn)換電
    發(fā)表于 04-08 06:34

    量化算法介紹及其特點(diǎn)分析

    模型量化作為一種能夠有效減少模型大小,加速深度學(xué)習(xí)推理的優(yōu)化技術(shù),已經(jīng)得到了學(xué)術(shù)界和工業(yè)界的廣泛研究和應(yīng)用。模型量化有 8/4/2/1 bit等,本文主要討論目前相對(duì)比較成熟的 8-bit
    發(fā)表于 07-26 08:08

    如何將抖動(dòng)添加到信號(hào)以通過(guò)消除量化誤差和失真來(lái)提高模數(shù)轉(zhuǎn)換系統(tǒng)的性能

    發(fā)現(xiàn)某種程度的噪聲在某些情況下實(shí)際上是有幫助的,這違反直覺(jué)。抖動(dòng)技術(shù)可用于三個(gè)不同的目的:1、通過(guò)打破量化誤差和輸入信號(hào)之間的統(tǒng)計(jì)相關(guān)性來(lái)提高理想量化器的
    發(fā)表于 12-22 15:17

    LLM性能的主要因素

    現(xiàn)在是2023年5月,截止目前,網(wǎng)絡(luò)上已經(jīng)開(kāi)源了眾多的LLM,如何用較低的成本,判斷LLM的基礎(chǔ)性能,選到適合自己任務(wù)的LLM,成為一個(gè)關(guān)鍵。 本文會(huì)涉及以下幾個(gè)問(wèn)題: 影響
    的頭像 發(fā)表于 05-22 15:26 ?1494次閱讀
    <b class='flag-5'>LLM</b><b class='flag-5'>性能</b>的主要因素

    LLaMa量化部署

    使用 GPTQ 量化的模型具有很大的速度優(yōu)勢(shì),與 LLM.int8() 不同,GPTQ 要求對(duì)模型進(jìn)行 post-training quantization,來(lái)得到量化權(quán)重。GPTQ 主要參考了
    的頭像 發(fā)表于 08-28 16:44 ?1311次閱讀
    LLaMa<b class='flag-5'>量化</b>部署

    基于MacroBenchmark的性能測(cè)試量化指標(biāo)方案

    介紹基于Google MacroBenchmark的性能量化指標(biāo)測(cè)試的工程配置、測(cè)試流程、核心指標(biāo)和應(yīng)用案例,幫助Android 開(kāi)發(fā)者更好地評(píng)估和比較App的性能
    的頭像 發(fā)表于 10-17 10:15 ?570次閱讀

    Nvidia 通過(guò)開(kāi)源庫(kù)提升 LLM 推理性能

    加利福尼亞州圣克拉拉——Nvidia通過(guò)一個(gè)名為T(mén)ensorRT LLM的新開(kāi)源軟件庫(kù),將其H100、A100和L4 GPU的大型語(yǔ)言模型(LLM)推理性能提高了一倍。 正如對(duì)相同硬件一輪又一輪改進(jìn)
    的頭像 發(fā)表于 10-23 16:10 ?526次閱讀

    什么是LLM?LLM的工作原理和結(jié)構(gòu)

    隨著人工智能技術(shù)的飛速發(fā)展,大型語(yǔ)言模型(Large Language Model,簡(jiǎn)稱(chēng)LLM)逐漸成為自然語(yǔ)言處理(NLP)領(lǐng)域的研究熱點(diǎn)。LLM以其強(qiáng)大的文本生成、理解和推理能力,在文本
    的頭像 發(fā)表于 07-02 11:45 ?4298次閱讀

    大模型LLM與ChatGPT的技術(shù)原理

    在人工智能領(lǐng)域,大模型(Large Language Model, LLM)和ChatGPT等自然語(yǔ)言處理技術(shù)(Natural Language Processing, NLP)正逐步改變著人類(lèi)
    的頭像 發(fā)表于 07-10 10:38 ?402次閱讀

    深度學(xué)習(xí)模型量化方法

    深度學(xué)習(xí)模型量化是一種重要的模型輕量化技術(shù),旨在通過(guò)減少網(wǎng)絡(luò)參數(shù)的比特寬度來(lái)減小模型大小和加速推理過(guò)程,同時(shí)盡量保持模型性能。從而達(dá)到把模型
    的頭像 發(fā)表于 07-15 11:01 ?342次閱讀
    深度學(xué)習(xí)模型<b class='flag-5'>量化</b>方法