衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

算能開發者社區 ? 2023-10-10 10:18 ? 次閱讀


1. 背景介紹

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

2. 量化方案

首先TPU-MLIR原有的INT8量化方案并不適合直接應用于LLM。主要是因為無論PTQ的校準或者QAT的訓練對于LLM來說成本過高,對LLM的一輪PTQ的校準可能就需要1-2天時間;另外就是量化帶來的誤差在LLM上無法收斂,最終會導致模型精度大量損失。

在量化方案上我們沿用了ChatGLM2使用的W8A16策略,即只對GLMBlock中Linear Layer的權重進行per-channel量化存儲,在實際運算時仍將其反量化回F16進行運算。因為LLM中Linear Layer權重數值間差異非常小,對INT8量化較為友好,所以量化過后的結果與F16計算結果在余弦相似度上仍然能保持99%以上,精度上幾乎可以做到0損失。

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

3. TPU-MLIR實現

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

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

4. 后端性能提升原理

前一節介紹的量化只實現了存儲空間減半的效果,而性能提升主要在于W8A16MatMul后端算子的實現。如果對TPU架構不熟悉可通過TPU原理介紹(1)TPU原理介紹(2)兩期視頻了解(可關注b站“算能開發者”進行觀看)按照算能當前的TPU架構,W8A16的計算過程主要分為5個步驟:

1. 從Global Memory中加載數據到Local Memory
2. 將INT8權重Cast為F16
3. 與Scale數據相乘完成反量化操作
4. 與Input Activation進行矩陣乘運算
5. 將計算結果存儲回Global Memory

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

因為Local Memory空間有限,對于大型數據通常需要進行切分,分批對數據進行加載、運算與存儲。為了提升效率,通常我們會利用GDMA與BDC指令并行,同時進行數據搬運與運算操作,所以Local Mmeory大致需要被需要被劃分為兩部分區域,同一個循環內一個區域用于數據運算,另一個區域存儲上一循環計算好的結果以及加載下一循環需要用到的數據,如下圖所示。

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

矩陣乘等式如下:

當矩陣乘運算中左矩陣數據量較小時,性能瓶頸主要在于右矩陣的數據加載上,即數據加載時間遠比數據運算時間要長很多。W8A16通過量化能夠將右矩陣的數據搬運總量縮小為原來的一半,而且額外多出的Cast與Scale運算時間可以被數據搬運時間覆蓋住,因此并不會影響到整體runtime,如下圖所示。

3d494614-6713-11ee-9788-92fbcf53809c.pngGDMA and BDC parallel
總而言之,從后端角度來說,當越小,越大時,W8A16帶來的性能提升收益越大。

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

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

5. 效果展示

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3305

    瀏覽量

    49217
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49283
  • LLM
    LLM
    +關注

    關注

    0

    文章

    299

    瀏覽量

    400
收藏 人收藏

    評論

    相關推薦

    源2.0-M32大模型發布量化版 運行顯存僅需23GB 性能可媲美LLaMA3

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

    chatglm2-6bP40做LORA微調

    背景: 目前,大模型的技術應用已經遍地開花。最快的應用方式無非是利用自有垂直領域的數據進行模型微調。chatglm2-6b國內開源的大模型
    的頭像 發表于 08-13 17:12 ?559次閱讀
    <b class='flag-5'>chatglm2</b>-6b<b class='flag-5'>在</b>P40<b class='flag-5'>上</b>做LORA微調

    深度神經網絡模型量化的基本方法

    深度神經網絡模型量化是深度學習領域中的一種重要優化技術,旨在通過減少模型參數的精度(即從高精度浮點數如32位浮點數FP32降低到低精度整數如8位整數
    的頭像 發表于 07-15 11:26 ?782次閱讀

    深度學習模型量化方法

    深度學習模型量化是一種重要的模型量化技術,旨在通過減少網絡參數的比特寬度來減小模型大小和加速
    的頭像 發表于 07-15 11:01 ?556次閱讀
    深度學習<b class='flag-5'>模型</b><b class='flag-5'>量化</b>方法

    RADXA微服務器試用體驗】+ GPT語音與視覺交互:2,圖像識別

    ├── yolov8s_opt.onnx# 導出的動態opt onnx模型 ├── yolov8s_qtable_fp16 # TPU-MLIR編譯時,用于BM1684X/
    發表于 07-14 23:36

    esp-dl int8量化模型數據集評估精度下降的疑問求解?

    一 試著將模型進行了esp-dlint16和int8量化,并在測試數據集上進行精度評估,其中int
    發表于 06-28 15:10

    產品應用 | 小盒子跑大模型!英碼科技基于BM1684X平臺實現大模型私有化部署

    當前,人工智能領域,大模型豐富人工智能應用場景中扮演著重要的角色,經過不斷的探索,大模型進入到落地
    的頭像 發表于 06-14 16:29 ?795次閱讀
    產品應用 | 小盒子跑大<b class='flag-5'>模型</b>!英碼科技基于<b class='flag-5'>算</b><b class='flag-5'>能</b><b class='flag-5'>BM1684X</b>平臺實現大<b class='flag-5'>模型</b>私有化<b class='flag-5'>部署</b>

    用yolov5的best.pt導出成onnx轉化成fp32 bmodel后Airbox跑,報維度不匹配怎么處理?

    用官方的模型不出錯,用自己的yolov5訓練出來的best.pt導出成onnx轉化成fp32 bmodel后Airbox跑,出現報錯: linaro@bm1684:~/yolov5
    發表于 05-31 08:10

    bm1684運行demo報錯怎么解決?

    ../models/BM1684X/yolov5s_v6.1_3output_fp32_1b.bmodel[BMRT][bmcpu_setup:406] INFO:cpu_lib \'libcpuop.so
    發表于 05-20 07:24

    搭載TPU處理器BM1688&amp;CV186AH的英碼科技邊緣計算盒子,功耗更低、接口更豐富

    了基于BM1684的邊緣計算盒子IVP03A、IVP03C、IVP03D,以及基于BM1684X的IVP03X邊緣計算盒子,智慧交通、智慧化工園區、智慧校園等領域的細分場景得到了廣泛
    的頭像 發表于 05-18 08:39 ?411次閱讀
    搭載TPU處理器<b class='flag-5'>BM</b>1688&amp;CV186AH的英碼科技邊緣計算盒子,功耗更低、接口更豐富

    AI力核心板:Core-1688JD4

    采用SOPHON八核AI處理器BM1688,INT8力高達16TOPS,支持16路解碼+10路編碼+16路AI分析,支持6路senso
    的頭像 發表于 05-15 08:02 ?1546次閱讀
    AI<b class='flag-5'>算</b>力核心板:Core-1688JD4

    【AIBOX】裝在小盒子的AI足夠強嗎?

    Firefly推出大語言模型本地部署的產品:AIBOX-1684X,目前已適配主流的大語言模型,包括ChatGLM3-6B,以下是
    的頭像 發表于 05-15 08:02 ?513次閱讀
    【AIBOX】裝在小盒子的AI足夠強嗎?

    AIBOX-1684X:把大語言模型“裝”進小盒子

    AIBOX-1684X支持主流大模型私有化部署力高達32TOPS,同時也支持CNN、RNN、LSTM等傳統網絡架構,支持TensorFNNX和Darknet等深度學習架構,并支持自
    的頭像 發表于 04-20 08:02 ?1415次閱讀
    AIBOX-<b class='flag-5'>1684X</b>:把大語言<b class='flag-5'>模型</b>“裝”進小盒子

    256Tops力!CSA1-N8S1684X力服務器

    (基于BM1684X的高力服務器)高力AI處理器BM1684X搭載了BM1684AI力So
    的頭像 發表于 03-23 08:02 ?1756次閱讀
    256Tops<b class='flag-5'>算</b>力!CSA1-N<b class='flag-5'>8S1684X</b><b class='flag-5'>算</b>力服務器

    RADXA微服務器試用體驗】Radxa Fogwise 1684X Mini 規格

    通過網絡可以了解到,RADXA微服務器的具體規格: 處理器:BM1684X 力:高達32Tops INT8峰值
    發表于 02-28 11:21
    交城县| 百家乐美女视频聊天| 大发888真钱游戏祖比| 自贡百家乐官网赌场| 百家乐平预测软件| 百家乐官网透明发牌靴| 德州扑克吧| 百家乐官网九| 博尔国际| 百家乐资金注码| 澳门百家乐官网门路| 百家乐游戏机论坛| 百家乐官网翻天快播粤语| 网上百家乐是不是真的| 玩百家乐官网如何硬| 大发888站| 做生意容易成功的八字| 佳木斯市| 百家乐平注常赢玩法更| 兰桂坊百家乐官网的玩法技巧和规则 | 台安县| 真人版百家乐试玩| 好望角百家乐官网的玩法技巧和规则| 新葡京娱乐城开户| 澳门百家乐游戏说明书| 至尊百家乐官网qvod| 大发888扑克合营商| 百家乐代打是真的吗| 百家乐官网电话投注怎么玩| 顶级赌场| 澳门百家乐真人斗地主| 百家乐官网赌场大全| 六合彩130| 百家乐单跳| 百家乐官网奥| 渝北区| 新全讯网网址g2vvv| 赌百家乐的下场| 真钱百家乐官网公司哪个好| 皇冠现金网导航| 钱隆百家乐大师|