色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

重塑翻譯與識別技術:開源語音識別模型Whisper的編譯優化與部署

算能開發者社區 ? 2024-01-06 08:33 ? 次閱讀

模型介紹

Whisper模型是一個由OpenAI團隊開發的通用語音識別模型。它的訓練基于大量不同的音頻數據集,是一個多任務模型,可以執行語音識別、語言翻譯、語言識別。下面是模型的整體架構:

31bd2894-ac2b-11ee-aa22-92fbcf53809c.png

使用方法如下:

31d4587a-ac2b-11ee-aa22-92fbcf53809c.png

通過修改TPU-MLIR編譯器代碼,可以對Whisper模型性能進行深度優化,使得模型在SOPHON BM1684X處理器上運行時間減少到原來的一半,本篇文章將帶領大家對Whisper模型進行編譯與優化,并完成實際應用的部署

優化方法

本次模型優化很具有典型性,不僅適用當前模型,對其他模型也有幫助,下面對相關的優化方法進行介紹

Tile算子轉廣播

模型轉換完成后,觀察Profile時序圖和對應的MLIR文件,可以看到MatMulOp前面有兩個Tile操作,通過復制數據來使數據shape對齊,并且耗時占用十分明顯(如紅框所示),實際上完全可以利用算子的廣播功能實現,解決方法是使MatMulOp在hdim_is_batch的情況下支持n維度的廣播 (形如:5x1x8x64@1x1500x8x64 )。

31e978ea-ac2b-11ee-aa22-92fbcf53809c.png31f9b840-ac2b-11ee-aa22-92fbcf53809c.png

KVCache動態轉靜態

由于模型結構是基于Transformer模型結構構建的,KVCache的使用是比較常見的,對于使用KVCache的模型,我們的做法是,將KVCache作為模型的輸入和輸出。但在推理過程中KVCache會不斷增長,呈現一定的動態性,這就使得有一些數據需要PCIe重復搬運;內存管理比較復雜。通過padding將動態模型轉換為輸入和輸出為固定大小的靜態模型,并且在內部利用Slice和Concat算子自動完成數據拼接,減少外部內存處理復雜性,而且通過優化runtime過程避免多余的PCIe搬運。

3214dbac-ac2b-11ee-aa22-92fbcf53809c.png

Permute算子消除

完成上面兩步優化后,通過觀察Profile時序圖和分析final.MLIR文件發現,這一部分的網絡被分為了兩個LayerGroup,之間還存在許多Global Layer,這些都會導致額外的數據搬運。追溯這一現象的原因,很大可能是由于Slice、Concat和Permute三種操作的存在阻斷了LayerGroup的劃分。而且Permute、Concat和Slice的GDMA操作帶寬利用率低,浪費了較多時間。下面從這三個算子入手進行優化。

322c3130-ac2b-11ee-aa22-92fbcf53809c.png323ffbb6-ac2b-11ee-aa22-92fbcf53809c.png

在Transformer類的模型里,由于數據需要維度翻轉整理,造成模型里有很多的Permute操作,但是通過算子的實現,一些運行前后的Permute是可以相互抵消的。如下圖所示,MatMul算子輸入和輸出的Permut是可以消除的,主要步驟是將輸入的Permute算子移動到輸出,MatMul利用TPU指令的特性,實現轉置的矩陣乘法,并在輸出處與原來的Permute抵消掉。最終結果下圖右側所示。

325442ba-ac2b-11ee-aa22-92fbcf53809c.png

Slice+Concat算子融合

Slice和Concat本質上是將已經計算好但放置位置錯誤的結果進行截取或搬運。如果我們能提前知道結果應該放到哪里,就可以完全去掉這兩種操作。下面是一個典型的Slice+Concat的Pattern。通過分析右圖,可以看到為了將數據排到前面,Slice將Load后的數據進行搬運,之后Concat將MatMul的結果搬運到Slice后數據后面。其實這兩次搬運如果提前知道了放置位置,是可以去掉的。

326bcf0c-ac2b-11ee-aa22-92fbcf53809c.png

下圖示意了簡單的優化方法,在Load操作中引入一個Offset參數,表示數據在Global中的偏移,相當于在Load時直接做Slice, 減少了重復數據搬運,另外直接將Concat的輸出地址分配給Load,將數據直接寫在Concat的輸出地址,省去Concat的GDMA搬運時間。

327efdca-ac2b-11ee-aa22-92fbcf53809c.png

最終效果如下:

32917c0c-ac2b-11ee-aa22-92fbcf53809c.png

可以對比下優化前后的final.MLIR文件

323ffbb6-ac2b-11ee-aa22-92fbcf53809c.png32aa3abc-ac2b-11ee-aa22-92fbcf53809c.png

比較上面兩圖,可以看到Concat和Slice, Permute大部分都去掉了。從下面的Profile也可以看出明顯的提升:

32c3c90a-ac2b-11ee-aa22-92fbcf53809c.png

優化結果

經過上述優化,模型的運行時間由原來的23.143ms變為13.589ms。為方便定量分析,下面提供了優化前后的算子性能統計結果。

優化前性能統計

32d66448-ac2b-11ee-aa22-92fbcf53809c.png

優化后性能統計

32e611fe-ac2b-11ee-aa22-92fbcf53809c.png

部署代碼

部署代碼目前已經開源(https://github.com/JKay0327/whisper-TPU_pyd)。本Whisper應用整體是由多個環節串聯起來的,包括前處理、Encoder、Language Detect Decoder、以及主循環中的Decoder迭代過程。上面優化的主要是針對主循環中的Decoder模型進行的。具體運行過程如下圖所示。

32fe7ae6-ac2b-11ee-aa22-92fbcf53809c.png

使用方法如下:330f722e-ac2b-11ee-aa22-92fbcf53809c.png

下面是實際的運行結果展示:3321113c-ac2b-11ee-aa22-92fbcf53809c.png

結論

本文是對在Whisper模型應用過程中的總結,說明了在模型優化過程中采用的各種思路和方法,最終將模型的性能翻倍。Whisper模型是一個很有價值的應用,可以實現各種語音任務,期待大家借助算能產品進行更多功能的開發。

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

    關注

    38

    文章

    1758

    瀏覽量

    113274
  • 模型
    +關注

    關注

    1

    文章

    3415

    瀏覽量

    49475
  • 音頻數據
    +關注

    關注

    0

    文章

    13

    瀏覽量

    10018
收藏 人收藏

    評論

    相關推薦

    Vgg16模型無法使用模型優化重塑怎么解決?

    Vgg16 模型無法使用模型優化重塑
    發表于 03-06 06:29

    基于labview的語音識別

    處理過程基本上是一致的。目前主流的語音識別技術是基于統計模式識別的基本理論。一個完整的語音識別
    發表于 03-10 22:00

    阿里開源自研語音識別模型DFSMN使用技巧指南

    重磅!阿里開源自研語音識別模型DFSMN,準確率高達9604%
    發表于 09-16 06:53

    語音識別的現狀如何?

    語音識別技術的最重大突破是隱含馬爾科夫模型Hidden Markov Model的應用。從Baum提出相關數學推理,經過Labiner等人的研究,卡內基梅隆大學的李開復最終實現了第一個
    發表于 10-08 14:29

    【HarmonyOS HiSpark AI Camera】基于圖像的手語識別機器人系統

    端微量部署優化,實現脫離電腦云,離線的情況下便捷的識別手語圖像輸入。⑤開源分享。預計成果①目前已經完成神經網絡部分權重訓練,根據OpenPose人體姿態
    發表于 09-25 10:11

    離線語音識別及控制是怎樣的技術

    信號轉化為文本或語義結果。  與傳統的云端語音識別相比,離線語音識別的工作原理是將語音識別
    發表于 11-24 17:41

    語音識別技術,語音識別技術是什么意思

    語音識別技術,語音識別技術是什么意思  語音
    發表于 03-06 11:16 ?2867次閱讀

    語音識別技術的發展歷程,語音識別是如何工作的?語音識別資料概述

    說到語音識別,大家熟悉的可能是最近十年里才出現的微信語音轉文字,或者語音實時記錄和翻譯。但其實語音
    的頭像 發表于 09-01 10:48 ?1w次閱讀

    語音識別技術的應用及優化

    一、引言 語音識別技術是一種能夠讓計算機“聽懂”人類語言的技術。隨著科技的不斷發展,語音識別
    的頭像 發表于 10-10 17:26 ?2264次閱讀

    語音識別技術優化與發展趨勢

    模型優化:針對模型結構的優化是提高語音識別技術的重要
    的頭像 發表于 10-12 18:33 ?965次閱讀

    語音識別技術在移動設備上的應用與優化

    隨著移動設備的普及和人工智能技術的發展,語音識別技術在移動設備上得到了廣泛應用。本文將探討語音識別
    的頭像 發表于 10-25 11:10 ?840次閱讀

    基于深度學習的情感語音識別模型優化策略

    基于深度學習的情感語音識別模型優化策略,包括數據預處理、模型結構優化、損失函數改進、訓練策略調
    的頭像 發表于 11-09 16:34 ?946次閱讀

    情感語音識別技術前沿與未來趨勢

    前沿 深度學習模型的持續優化:隨著深度學習技術的不斷發展,情感語音識別技術也在持續
    的頭像 發表于 11-28 18:35 ?751次閱讀

    語音識別技術的應用與發展

    體驗。 語音識別技術的原理 語音識別技術的核心在于將聲波信號轉換為可理解的文本信息。這一過程通常
    的頭像 發表于 11-26 09:20 ?997次閱讀

    用英特爾CPU及GPU運行OpenAI-whisper模型語音識別

    作者: 金立彥 介紹 Whisper 作為一款卓越的自動語音識別(ASR)系統,依托海量且多元的監督數據完成訓練,其數據規模高達 680,000 小時,涵蓋多種語言及豐富多樣的任務類型,廣泛采擷自
    的頭像 發表于 12-03 10:14 ?654次閱讀
    用英特爾CPU及GPU運行OpenAI-<b class='flag-5'>whisper</b><b class='flag-5'>模型</b><b class='flag-5'>語音</b><b class='flag-5'>識別</b>
    主站蜘蛛池模板: 河南老太XXXXXHD | 高清国语自产拍免费 | 100国产精品人妻无码 | 女人被躁到高潮嗷嗷叫69 | 成年美女黄网站色app | 超碰超碰视频在线观看 | 亚洲成人网导航 | 国产午夜亚洲精品理论片八戒 | 亚洲国产成人精品无码区APP | 亚洲精品第一页 | 女人18毛片 | 受喷汁红肿抽搐磨NP双性 | 国产又粗又猛又爽黄老大爷 | 51xx午夜影视福利 | 欧美精品高潮呻吟AV久久 | 极品内射少妇精品无码视频 | 永久adc视频年龄确认 | 俄罗斯兽交XXXXX在线 | 成人在线观看国产 | 韩国精品韩国专区久久 | 恋老视频 国产国佬 | 18禁裸乳无遮挡免费网站 | 久久九九少妇免费看A片 | 亚洲欧美一区二区三区九九九 | 视频一区视频二区在线观看 | 伊人久久大香线蕉综合电影网 | 亚洲青青草 | 男女免费观看在线爽爽爽视频 | 999视频精品全部免费观看 | YELLOW视频在线观看大全 | 国产永久免费观看视频软件 | 精品国产乱码久久久久久免费 | 在线中文字幕视频 | 真实国产精品视频国产网 | qvod 电影 | 蜜芽资源高清在线观看 | 国产亚洲精品成人a在线 | 免费99精品国产人妻自在线 | 99久久精品费精品蜜臀AV | 小骚妇BBBXXX | 国产精品成久久久久三级四虎 |