国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    3751

    瀏覽量

    52097
  • 編譯器
    +關注

    關注

    1

    文章

    1672

    瀏覽量

    51589
  • LLM
    LLM
    +關注

    關注

    1

    文章

    346

    瀏覽量

    1329
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    模型到產品:Qwen2.5-VLBM1684X邊緣計算部署全攻略

    前言:部署意義與應用場景1.1Qwen-2-5-VL與BM1684X的組合行業意義:?邊緣AI革命:大模型從云端下沉到邊緣設備是當前AI發展的關鍵趨勢。根據ABIResearch數據,
    的頭像 發表于 01-13 14:17 ?4573次閱讀
    從<b class='flag-5'>模型</b>到產品:Qwen2.5-VL<b class='flag-5'>在</b><b class='flag-5'>BM1684X</b>邊緣計算<b class='flag-5'>部署</b>全攻略

    SAM(通用圖像分割基礎模型)丨基于BM1684X模型部署指南

    在基于BM1684X芯片的嵌入式設備上進行高效推理測試。一、特性?支持BM1684X平臺全系列部署方案(x86PCIe、SoC、riscvPCIe)?圖像壓縮(embe
    的頭像 發表于 01-12 16:17 ?302次閱讀
    SAM(通用圖像分割基礎<b class='flag-5'>模型</b>)丨基于<b class='flag-5'>BM1684X</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b>指南

    ShiMeta BM1684X力盒子丨 技術解析與方案指南(

    ,導致智能監控系統仍停留在"看得見"而不是"看得懂"的階段。一些企業雖然采購了算法,但配置復雜、落地受限,難以真正規模化部署。基于ShiMeta智慧監控管理系統V3
    的頭像 發表于 01-12 16:06 ?4972次閱讀
    ShiMeta <b class='flag-5'>BM1684X</b><b class='flag-5'>算</b>力盒子丨 技術解析與方案指南(<b class='flag-5'>上</b>)

    專為邊緣而生:深度解析昆侖芯K100 AI加速卡,釋放128 TOPS極致

    昆侖芯K100邊緣AI加速卡以75W超低功耗實現128 TOPS的INT8力,重新定義邊緣推理效標準。其半高半長設計搭載8GB HBM內
    的頭像 發表于 12-14 11:12 ?2926次閱讀
    專為邊緣而生:深度解析昆侖芯K100 AI<b class='flag-5'>加速</b>卡,釋放128 TOPS極致<b class='flag-5'>能</b>效

    【CIE全國RISC-V創新應用大賽】基于 K1 AI CPU 的大模型部署落地

    ” 策略。我們必須使用 Q2_K (2-bit) 量化格式,將模型體積壓縮到 5.5GB 左右,從而在 8GB 內存
    發表于 11-27 14:43

    AI力模組TS-SG-SM7系列產品規格書

    騰視科技AI力模組TS-SG-SM7搭載了AI芯片BM1684X,支持多模態大模型,可集成于邊緣計算盒、智能NVR、機器人、無人機等,
    發表于 10-27 17:15 ?0次下載

    AI力模組TS-SG-SM9系列產品規格書

    騰視科技AI力模組TS-SG-SM9系列搭載高集成度處理器CV186AH/BM1688片,功耗低、力強、接口豐富、兼容性好。7.2-
    發表于 10-27 17:12 ?0次下載

    小白必讀:到底什么是FP32、FP16、INT8

    網上關于力的文章,如果提到某個芯片或某個智中心的力,都會寫:FP32精度下,英偉達H100的力大約為0.9PFlops。
    的頭像 發表于 10-20 14:34 ?1289次閱讀
    小白必讀:到底什么是FP32、FP16、<b class='flag-5'>INT8</b>?

    Qwen3-VL 4B/8B全面適配,BM1684X成邊緣最佳部署平臺!

    BM1684X完成Qwen3-VL4B/8B模型的適配,推理速度13.7/7.2token
    的頭像 發表于 10-16 18:00 ?2656次閱讀
    Qwen3-VL 4B/<b class='flag-5'>8</b>B全面適配,<b class='flag-5'>BM1684X</b>成邊緣最佳<b class='flag-5'>部署</b>平臺!

    科技上線赤兔推理引擎服務,創新解鎖FP8模型

    模型量化部署方案。用戶通過遠程力平臺預置的模型鏡像與AI工具,僅需50%的GPU力即可解
    的頭像 發表于 07-30 21:44 ?903次閱讀

    為什么無法GPU使用INT8INT4量化模型獲得輸出?

    安裝OpenVINO? 2024.0 版本。 使用 optimum-intel 程序包將 whisper-large-v3 模型轉換為 int 4 和 int8,并在 GPU 使用
    發表于 06-23 07:11

    RK3588核心板邊緣AI計算中的顛覆性優勢與場景落地

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

    i.mx95的EIQ轉換器將int8更改為uint8后出現報錯怎么解決?

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

    OpenVINO?工具套件的深度學習工作臺中無法導出INT8模型怎么解決?

    無法 OpenVINO? 工具套件的深度學習 (DL) 工作臺中導出 INT8 模型
    發表于 03-06 07:54

    是否可以輸入隨機數據集來生成INT8訓練后量化模型

    無法確定是否可以輸入隨機數據集來生成 INT8 訓練后量化模型
    發表于 03-06 06:45