女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

探索ChatGLM2在算能BM1684X上INT8量化部署,加速大模型商業(yè)落地

算能開(kāi)發(fā)者社區(qū) ? 2023-10-10 10:18 ? 次閱讀


1. 背景介紹

在2023年7月時(shí)我們已通過(guò)靜態(tài)設(shè)計(jì)方案完成了ChatGLM2-6B在單顆BM1684X上的部署工作,量化模式F16,模型大小12GB,平均速度約為3 token/s,詳見(jiàn)《算豐技術(shù)揭秘|探索ChatGLM2-6B模型與TPU部署》。為了進(jìn)一步提升模型的推理效率與降低存儲(chǔ)空間,我們對(duì)模型進(jìn)行了INT8量化部署,整體性能提升70%以上,模型大小降低到6.4GB,推理速度達(dá)到6.67 token/s。

2. 量化方案

首先TPU-MLIR原有的INT8量化方案并不適合直接應(yīng)用于LLM。主要是因?yàn)闊o(wú)論P(yáng)TQ的校準(zhǔn)或者QAT的訓(xùn)練對(duì)于LLM來(lái)說(shuō)成本過(guò)高,對(duì)LLM的一輪PTQ的校準(zhǔn)可能就需要1-2天時(shí)間;另外就是量化帶來(lái)的誤差在LLM上無(wú)法收斂,最終會(huì)導(dǎo)致模型精度大量損失。

在量化方案上我們沿用了ChatGLM2使用的W8A16策略,即只對(duì)GLMBlock中Linear Layer的權(quán)重進(jìn)行per-channel量化存儲(chǔ),在實(shí)際運(yùn)算時(shí)仍將其反量化回F16進(jìn)行運(yùn)算。因?yàn)長(zhǎng)LM中Linear Layer權(quán)重?cái)?shù)值間差異非常小,對(duì)INT8量化較為友好,所以量化過(guò)后的結(jié)果與F16計(jì)算結(jié)果在余弦相似度上仍然能保持99%以上,精度上幾乎可以做到0損失。

3d05fb98-6713-11ee-9788-92fbcf53809c.pngW8A16 MatMul

3. TPU-MLIR實(shí)現(xiàn)

在Top到Tpu層的lowering階段,編譯器會(huì)自動(dòng)搜尋模型中右矩陣輸入為權(quán)重,且該矩陣維數(shù)為2的MatMul,將其替換為W8A16MatMul算子。此處主要是為了與左右矩陣都為Acitvation的MatMul算子區(qū)分開(kāi)(mm, bmm與linear layer在編譯器中會(huì)被統(tǒng)一轉(zhuǎn)換為MatMul算子)。以ChatGLM2中其中一個(gè)MatMul算子為例:L = (max_lengthx4096xf16), R = (4096x27392xf16),量化后的權(quán)重由原來(lái)的214MB降為107MB,額外產(chǎn)生的Scale (4096xf16)只占了0.008MB的存儲(chǔ)空間,基本上可以達(dá)到減半的效果。算子替換源碼與權(quán)重量化源碼可在TPU-MLIR倉(cāng)庫(kù)中查看。

3d1228dc-6713-11ee-9788-92fbcf53809c.pngOp Replacement in TPU-MLIR

4. 后端性能提升原理

前一節(jié)介紹的量化只實(shí)現(xiàn)了存儲(chǔ)空間減半的效果,而性能提升主要在于W8A16MatMul后端算子的實(shí)現(xiàn)。如果對(duì)TPU架構(gòu)不熟悉可通過(guò)TPU原理介紹(1)TPU原理介紹(2)兩期視頻了解(可關(guān)注b站“算能開(kāi)發(fā)者”進(jìn)行觀看)按照算能當(dāng)前的TPU架構(gòu),W8A16的計(jì)算過(guò)程主要分為5個(gè)步驟:

1. 從Global Memory中加載數(shù)據(jù)到Local Memory
2. 將INT8權(quán)重Cast為F16
3. 與Scale數(shù)據(jù)相乘完成反量化操作
4. 與Input Activation進(jìn)行矩陣乘運(yùn)算
5. 將計(jì)算結(jié)果存儲(chǔ)回Global Memory

3d277ab6-6713-11ee-9788-92fbcf53809c.pngW8A16Matmul Computation on TPU

因?yàn)長(zhǎng)ocal Memory空間有限,對(duì)于大型數(shù)據(jù)通常需要進(jìn)行切分,分批對(duì)數(shù)據(jù)進(jìn)行加載、運(yùn)算與存儲(chǔ)。為了提升效率,通常我們會(huì)利用GDMA與BDC指令并行,同時(shí)進(jìn)行數(shù)據(jù)搬運(yùn)與運(yùn)算操作,所以Local Mmeory大致需要被需要被劃分為兩部分區(qū)域,同一個(gè)循環(huán)內(nèi)一個(gè)區(qū)域用于數(shù)據(jù)運(yùn)算,另一個(gè)區(qū)域存儲(chǔ)上一循環(huán)計(jì)算好的結(jié)果以及加載下一循環(huán)需要用到的數(shù)據(jù),如下圖所示。

3d378e06-6713-11ee-9788-92fbcf53809c.pngLocal Memory Partition

矩陣乘等式如下:

當(dāng)矩陣乘運(yùn)算中左矩陣數(shù)據(jù)量較小時(shí),性能瓶頸主要在于右矩陣的數(shù)據(jù)加載上,即數(shù)據(jù)加載時(shí)間遠(yuǎn)比數(shù)據(jù)運(yùn)算時(shí)間要長(zhǎng)很多。W8A16通過(guò)量化能夠?qū)⒂揖仃嚨臄?shù)據(jù)搬運(yùn)總量縮小為原來(lái)的一半,而且額外多出的Cast與Scale運(yùn)算時(shí)間可以被數(shù)據(jù)搬運(yùn)時(shí)間覆蓋住,因此并不會(huì)影響到整體runtime,如下圖所示。

3d494614-6713-11ee-9788-92fbcf53809c.pngGDMA and BDC parallel
總而言之,從后端角度來(lái)說(shuō),當(dāng)越小,越大時(shí),W8A16帶來(lái)的性能提升收益越大。

從LLM的角度來(lái)看,我們以ChatGLM2為例,一次推理的完整流程分為一輪prefill與多輪decode。在prefill階段,基于我們當(dāng)前的靜態(tài)設(shè)計(jì)方案,輸入詞向量會(huì)被補(bǔ)位為當(dāng)前模型所支持的最大文本長(zhǎng)度max_length (e.g., 512, 1024, 2048)。而decode階段則固定只取前一輪生成的一個(gè)token作為輸入。

3d53d2c8-6713-11ee-9788-92fbcf53809c.pngChatGLM2 Inference
因此max_length越長(zhǎng),GLMBlock接收的輸入數(shù)據(jù)量越大,Linear Layer的也就越大,這就會(huì)導(dǎo)致W8A16的性能提升越有限。而decode階段始終保持為1,此時(shí)W8A16就能帶來(lái)明顯的性能提升。3d711ad6-6713-11ee-9788-92fbcf53809c.pngMatMuls in ChatGLM2 prefill and decode phase

5. 效果展示

將W8A16量化應(yīng)用于ChatGLM2-6B后,整體性能如下所示:

  1. 性能:整體性能得到70%以上的提升
  2. 精度:與F16下的回答略有不同,但答案正確性仍然可以保證
  3. 模型大小:由12GB降為6.4GB

3d86cac0-6713-11ee-9788-92fbcf53809c.pngResult Comparison

聲明:本文內(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)投訴
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3483

    瀏覽量

    49962
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1654

    瀏覽量

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

    關(guān)注

    1

    文章

    319

    瀏覽量

    677
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    se5 8使用YOLOv5_object示例程序出錯(cuò)“Not able to open cpu.so”的原因?

    /test_model/bmnnsdk2-bm1684_v2.7.0/examples/YOLOv5_object/data/models/yolov5s_fix8b_640_1.bmodel [BMRT
    發(fā)表于 04-22 11:29

    RK3588核心板邊緣AI計(jì)算中的顛覆性?xún)?yōu)勢(shì)與場(chǎng)景落地

    與低功耗。相比傳統(tǒng)四核A72方案(如RK3399),單線程性能提升80%,多線程任務(wù)處理能力翻倍。 6TOPS獨(dú)立NPU: 支持INT8/INT16混合精度計(jì)算,可直接部署YOLOv5
    發(fā)表于 04-15 10:48

    i.mx95的EIQ轉(zhuǎn)換器將int8更改為uint8后出現(xiàn)報(bào)錯(cuò)怎么解決?

    我有一個(gè)大型量化 tensorflow lite 模型。它包括輸入和輸出類(lèi)型為 “int8” 的 “Softmax”作。 我正在運(yùn)行 eIQ 模型工具版本 1.14.0 將
    發(fā)表于 04-14 07:15

    DeepSeek-R1:7B 配備 Hailo-8L 和 M2-HAT+ 的樹(shù)莓派5部署實(shí)踐測(cè)試!

    RaspberryPi5(搭載Hailo-8LAI加速模塊)和JetsonOrinNano平臺(tái)的部署實(shí)踐。本文將分享RaspberryPi5上部署
    的頭像 發(fā)表于 03-25 09:20 ?744次閱讀
    DeepSeek-R1:7B <b class='flag-5'>在</b>配備 Hailo-<b class='flag-5'>8</b>L 和 M<b class='flag-5'>2</b>-HAT+ 的樹(shù)莓派5<b class='flag-5'>上</b>的<b class='flag-5'>部署</b>實(shí)踐測(cè)試!

    OpenVINO?工具套件的深度學(xué)習(xí)工作臺(tái)中無(wú)法導(dǎo)出INT8模型怎么解決?

    無(wú)法 OpenVINO? 工具套件的深度學(xué)習(xí) (DL) 工作臺(tái)中導(dǎo)出 INT8 模型
    發(fā)表于 03-06 07:54

    是否可以輸入隨機(jī)數(shù)據(jù)集來(lái)生成INT8訓(xùn)練后量化模型

    無(wú)法確定是否可以輸入隨機(jī)數(shù)據(jù)集來(lái)生成 INT8 訓(xùn)練后量化模型
    發(fā)表于 03-06 06:45

    添越智創(chuàng)基于 RK3588 開(kāi)發(fā)板部署測(cè)試 DeepSeek 模型全攻略

    DeepSeek 模型部署與測(cè)試,開(kāi)啟這場(chǎng)充滿(mǎn)挑戰(zhàn)與驚喜的技術(shù)探索之旅。 RK3588 開(kāi)發(fā)板:AI 性能擔(dān)當(dāng) RK3588 開(kāi)發(fā)板基于先進(jìn)的 8nm LP 制程工藝精心打造,其硬
    發(fā)表于 02-14 17:42

    使用OpenVINO 2024.4力魔方上部署Llama-3.2-1B-Instruct模型

    前面我們分享了《三步完成Llama3力魔方的本地量化部署》。2024年9月25日,Meta又發(fā)布了Llama3.2:一個(gè)多語(yǔ)言大型語(yǔ)言模型
    的頭像 發(fā)表于 10-12 09:39 ?1301次閱讀
    使用OpenVINO 2024.4<b class='flag-5'>在</b><b class='flag-5'>算</b>力魔方上<b class='flag-5'>部署</b>Llama-3.2-1B-Instruct<b class='flag-5'>模型</b>

    源2.0-M32大模型發(fā)布量化版 運(yùn)行顯存僅需23GB 性能可媲美LLaMA3

    2.0-M32量化版是"源"大模型團(tuán)隊(duì)為進(jìn)一步提高模效率,降低大模型部署運(yùn)行的計(jì)算資源要求而推出的版本,通過(guò)采用領(lǐng)先的
    的頭像 發(fā)表于 08-25 22:06 ?585次閱讀
    源2.0-M32大<b class='flag-5'>模型</b>發(fā)布<b class='flag-5'>量化</b>版 運(yùn)行顯存僅需23GB 性能可媲美LLaMA3

    chatglm2-6bP40做LORA微調(diào)

    背景: 目前,大模型的技術(shù)應(yīng)用已經(jīng)遍地開(kāi)花。最快的應(yīng)用方式無(wú)非是利用自有垂直領(lǐng)域的數(shù)據(jù)進(jìn)行模型微調(diào)。chatglm2-6b國(guó)內(nèi)開(kāi)源的大模型
    的頭像 發(fā)表于 08-13 17:12 ?755次閱讀
    <b class='flag-5'>chatglm2</b>-6b<b class='flag-5'>在</b>P40<b class='flag-5'>上</b>做LORA微調(diào)

    深度神經(jīng)網(wǎng)絡(luò)模型量化的基本方法

    深度神經(jīng)網(wǎng)絡(luò)模型量化是深度學(xué)習(xí)領(lǐng)域中的一種重要優(yōu)化技術(shù),旨在通過(guò)減少模型參數(shù)的精度(即從高精度浮點(diǎn)數(shù)如32位浮點(diǎn)數(shù)FP32降低到低精度整數(shù)如8位整數(shù)
    的頭像 發(fā)表于 07-15 11:26 ?1194次閱讀

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

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

    RADXA微服務(wù)器試用體驗(yàn)】+ GPT語(yǔ)音與視覺(jué)交互:2,圖像識(shí)別

    ├── yolov8s_opt.onnx# 導(dǎo)出的動(dòng)態(tài)opt onnx模型 ├── yolov8s_qtable_fp16 # TPU-MLIR編譯時(shí),用于BM1684X/
    發(fā)表于 07-14 23:36

    esp-dl int8量化模型數(shù)據(jù)集評(píng)估精度下降的疑問(wèn)求解?

    一 試著將模型進(jìn)行了esp-dlint16和int8量化,并在測(cè)試數(shù)據(jù)集上進(jìn)行精度評(píng)估,其中int
    發(fā)表于 06-28 15:10

    產(chǎn)品應(yīng)用 | 小盒子跑大模型!英碼科技基于BM1684X平臺(tái)實(shí)現(xiàn)大模型私有化部署

    當(dāng)前,人工智能領(lǐng)域,大模型豐富人工智能應(yīng)用場(chǎng)景中扮演著重要的角色,經(jīng)過(guò)不斷的探索,大模型進(jìn)入到落地
    的頭像 發(fā)表于 06-14 16:29 ?1146次閱讀
    產(chǎn)品應(yīng)用 | 小盒子跑大<b class='flag-5'>模型</b>!英碼科技基于<b class='flag-5'>算</b><b class='flag-5'>能</b><b class='flag-5'>BM1684X</b>平臺(tái)實(shí)現(xiàn)大<b class='flag-5'>模型</b>私有化<b class='flag-5'>部署</b>