日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

超轻量AI引擎MindSpore Lite

發(fā)布時(shí)間:2023/11/28 生活经验 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超轻量AI引擎MindSpore Lite 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

超輕量AI引擎MindSpore Lite
揭秘一下端上的AI引擎:MindSpore Lite。
MindSpore Lite是MindSpore全場景AI框架的端側(cè)引擎,目前MindSpore Lite作為華為HMS Core機(jī)器學(xué)習(xí)服務(wù)的推理引擎底座,已為全球1000+應(yīng)用提供推理引擎服務(wù),日均調(diào)用量超過3億,同時(shí)在各類手機(jī)、穿戴感知、智慧屏等設(shè)備的AI特性上得到了廣泛應(yīng)用。
MindSpore Lite 1.0.0 已經(jīng)開源,開源之后,其接口易用性、算子性能與完備度、第三方模型的廣泛支持等方面,得到了眾多手機(jī)應(yīng)用開發(fā)者的廣泛認(rèn)可。最新的MindSpore Lite 1.1.0 在算子性能優(yōu)化、模型小型化、加速庫自動(dòng)裁剪工具、端側(cè)模型訓(xùn)練、語音類模型支持、Java接口開放、模型可視化等方面進(jìn)行了全面升級(jí),升級(jí)后的版本更輕、更快、更易用。接下來看一下 MindSpore Lite 1.1.0 。
獲取1.1.0版本MindSpore Lite:https://www.mindspore.cn/tutorial/lite/zh-CN/r1.1/use/downloads.html

  1. 算子庫優(yōu)化與擴(kuò)展
    1.1 性能優(yōu)化
    推理性能優(yōu)化依然是本次版本的重頭戲,除了持續(xù)的ARM CPU(FP16/FP32/INT8)性能優(yōu)化,ARM GPU和X86_64的優(yōu)化也是本次的亮點(diǎn),GPU方面除了傳統(tǒng)的算子優(yōu)化,還加入了在線融合、AutoTuning等技術(shù),使得ARM GPU推理性能大幅提升;同時(shí)為了更好的支持PC側(cè)推理,在X86_64算子方面做了大量匯編層面的優(yōu)化;經(jīng)過大量模型的實(shí)測,MindSpore Lite 1.1.0 在推理性能方面在業(yè)界各類框架中極具競爭力。
    1.1.1 ARM CPU優(yōu)化
    從引入減少計(jì)算量的更優(yōu)算法,到盡可能減少硬件訪存從而提高指令吞吐量,MindSpore Lite 的CPU算子性能大幅提升。使用TF Hub官網(wǎng)上100+端側(cè)預(yù)置模型進(jìn)行了推理時(shí)延對(duì)比測試,測試結(jié)果顯示在Mate30/P30等高端機(jī)型上MindSpore Lite已全面超越TFLite,在P20等中低端機(jī)型上推理性能優(yōu)于TFLite的占比也達(dá)到97%。
    ? FP16推理性能
    MindSpore Lite全面支持ARMv8.2的FP16推理,推理時(shí)延基本達(dá)到了FP32類型推理的二分之一,在推理時(shí)延大幅降低的同時(shí)精度滿足業(yè)務(wù)要求;FP16推理方案已經(jīng)在華為HMS MLKit和華為手機(jī)預(yù)置的各類AI服務(wù)中普遍應(yīng)用。
    由于TF Lite不支持FP16推理,所以在FP16推理性能對(duì)比測試環(huán)節(jié)中只選擇了阿里MNN最新的1.1版本,從測試結(jié)果看MindSpore Lite在FP16推理性能上展現(xiàn)出一定的優(yōu)勢。

華為Mate30(麒麟990)上網(wǎng)絡(luò)整體時(shí)延對(duì)比情況

華為Mate30(麒麟990)上FP16推理時(shí)延對(duì)比

三星Note20(驍龍865+)上FP16推理時(shí)延對(duì)比
? Int8量化模型推理性能
對(duì)于量化算子,當(dāng)前版本MindSpore Lite實(shí)現(xiàn)了在算法層面加入如Convolution Kernel為3x3的Winograd優(yōu)化算法(目前主要針對(duì)非ARMv8.2機(jī)型),在支持ARMv8.2的高端機(jī)上使用SDOT指令對(duì)MatMul、Fully Connection、Convolution等算子進(jìn)行優(yōu)化,以及提高底層緩存命中率的一系列優(yōu)化策略,使得MindSpore Lite量化推理性能得到大幅提升,相較于FP16推理有40%+的性能提升。選擇了TF Lite最新2.4版本和MNN最新的1.1版本進(jìn)行推理性能對(duì)比測試,使用的模型為TF Hub官方預(yù)置的量化模型(測試過程中發(fā)現(xiàn)MNN存在大量量化模型無法轉(zhuǎn)換問題,甚至TF Lite對(duì)自家模型也存在轉(zhuǎn)換問題),從測試結(jié)果看MindSpore Lite對(duì)量化模型無論在支持度還是推理性能方面,都較其他框架有明顯優(yōu)勢。

華為Mate30(麒麟990)上量化網(wǎng)絡(luò)整體時(shí)延對(duì)比情況
ARMv8.2機(jī)型測試

三星Note20上量化模型時(shí)延對(duì)比
ARMv8機(jī)型測試
華為P20上量化模型時(shí)延對(duì)比
? FP32推理性能
同時(shí)為了確保在低端CPU上使用MindSpore Lite推理時(shí),能夠同樣獲得業(yè)界最優(yōu)的推理性能,持續(xù)對(duì)FP32的推理性能進(jìn)行了優(yōu)化。在華為P20上以TFLite(2.4版本)、MNN(1.1版本)作為對(duì)比對(duì)象,進(jìn)行了benchmark性能測試,從測試結(jié)果中可以看出MindSpore Lite FP32推理性能依然處理領(lǐng)先地位,但與其他框架的差距正在縮小。

華為P20上FP32推理時(shí)延對(duì)比
1.1.2 ARM GPU優(yōu)化
MindSpore Lite 1.1.0 版本對(duì)GPU推理性能進(jìn)行了重點(diǎn)優(yōu)化,除了在算子層面進(jìn)行了常規(guī)優(yōu)化外,還增加了在線融合、AutoTuning、OpenCL kernel二進(jìn)制cache機(jī)制等多種優(yōu)化方式,使得整體性能較MindSpore Lite 1.0 有25%+的提升;
同樣在華為Mate30上使用TF Hub官網(wǎng)100+預(yù)置模型與MNN(1.1版本)和TF(2.4版本),進(jìn)行了GPU推理性能對(duì)比測試,可以從下圖的測試結(jié)果看出MindSpore Lite GPU推理性能在大部分模型上優(yōu)于TF Lite,而對(duì)于MNN則優(yōu)勢明顯。

華為Mate30上GPU FP32推理時(shí)延對(duì)比
1.1.3 X86_64 CPU優(yōu)化
本次版本還對(duì)X86_64平臺(tái)上的推理性能進(jìn)行了大量優(yōu)化工作,在Intel Core i7-8700的CPU上與Intel OpenVINO和MNN在幾個(gè)經(jīng)典CV類網(wǎng)絡(luò)上進(jìn)行了benchmark測試,從測試結(jié)果看MindSpore Lite性能相比于MNN和OpenVINO都有一定的優(yōu)勢。

Intel Core i7-8700 X86_64 CPU推理性能對(duì)比
1.1.4 更多的融合
當(dāng)前MindSpore Lite版本已經(jīng)基本覆蓋了機(jī)器視覺領(lǐng)域通用的卷積相關(guān)融合pattern,同時(shí)針對(duì)基于Transformer結(jié)構(gòu)的語音模型和LSTM結(jié)構(gòu)的模型進(jìn)行了深度融合優(yōu)化,主要包括將小算子融合成Layernorm、LSTM等大算子,多個(gè)MatMul融合成BatchMatMul算子,Slice算子切分矩陣的前移融合等,使得語音類模型獲得20%+的提升,后續(xù)將嘗試融合pattern的自動(dòng)schedule功能。

1.2 算子完備度擴(kuò)展
MindSpore Lite支持包括ARM CPU、ARM GPU、X86 CPU、Kirin NPU、MTK APU在內(nèi)的多種硬件平臺(tái)。
1.2.1 ARM CPU
MindSpore Lite是目前端側(cè)推理框架中CPU算子支持最豐富的框架之一,當(dāng)前的模型轉(zhuǎn)換工具支持TF Lite(100個(gè))、TF(53個(gè))、ONNX(96個(gè))以及Caffe(26個(gè))等第三方框架算子定義的解析,做到了高兼容性,上文性能測試中也提到過MNN對(duì)很多模型無法轉(zhuǎn)換,甚至連TF Lite對(duì)自家官網(wǎng)預(yù)置模型的支持度也不夠完善;同時(shí)MindSpore Lite實(shí)現(xiàn)了121個(gè)FP32,55個(gè)FP16以及71個(gè)INT8 CPU算子;而此次的1.1版本對(duì)控制流算子也進(jìn)行一次大的調(diào)整與完善,以便更好的支持語音類模型。
1.2.2 ARM GPU
新增OpenCL算子10+,當(dāng)前支持GPU算子總數(shù)為58,基本實(shí)現(xiàn)常見CV類網(wǎng)絡(luò)覆蓋;新增在線融合、Auto Tuning等特性支持,同時(shí)支持權(quán)重量化,實(shí)現(xiàn)8bit權(quán)重量化網(wǎng)絡(luò)在GPU整網(wǎng)運(yùn)行。
1.2.3 Kirin NPU
1.1版本完善了對(duì)華為麒麟NPU硬件平臺(tái)的支持,增加了對(duì)Kirin 9000芯片的支持,同時(shí)新增了50+ NPU算子支持,從而實(shí)現(xiàn)支持大部分CV類場景在NPU上的加速執(zhí)行;在華為最新的Mate 40手機(jī)上進(jìn)行了幾個(gè)典型網(wǎng)絡(luò)的benchmark驗(yàn)證,NPU上推理時(shí)延較CPU推理有明顯提升;

Mate 40上NPU和CPU FP32/16推理時(shí)延對(duì)比
2. 支持端側(cè)訓(xùn)練 由于使用公共數(shù)據(jù)集訓(xùn)練的模型與真實(shí)用戶場景存一定的偏差,比如人臉識(shí)別、語音識(shí)別等場景,往往需要利用本地?cái)?shù)據(jù)對(duì)預(yù)訓(xùn)練模型進(jìn)行微調(diào),從而提高本地模型推理的精度,改善用戶體驗(yàn)。

MindSpore Lite 1.1.0 版本將端側(cè)訓(xùn)練框架進(jìn)行了開源,首個(gè)版本給帶來了以下特性:1. 支持30+反向算子,提供SGD、ADAM等常見優(yōu)化器及CrossEntropy/SparsCrossEntropy/MSE等損失函數(shù);既可從零訓(xùn)練模型,也可指定特定網(wǎng)絡(luò)層微調(diào),達(dá)到遷移學(xué)習(xí)目的;
2. 已支持LeNet/AlexNet/ResNet/MobileNetV1/V2/V3和EffectiveNet等網(wǎng)絡(luò)訓(xùn)練,提供完整的模型加載,轉(zhuǎn)換和訓(xùn)練腳本,方便用戶使用和調(diào)測;
3. MindSpore云側(cè)訓(xùn)練和端側(cè)訓(xùn)練實(shí)現(xiàn)無縫對(duì)接,云側(cè)模型可直接加載到端側(cè)進(jìn)行訓(xùn)練;
4. 支持checkpoint機(jī)制,訓(xùn)練過程異常中斷后可快速恢復(fù)繼續(xù)訓(xùn)練;
端側(cè)訓(xùn)練框架已經(jīng)在華為部分設(shè)備的AI應(yīng)用比如家庭相冊等場景進(jìn)行了商用,并取得了很好的用戶體驗(yàn)。
3. 訓(xùn)練后量化 隨著AI應(yīng)用在端側(cè)設(shè)備部署越來越普遍,而受制于端側(cè)資源的局限性,對(duì)于模型小型化和推理性能提升的挑戰(zhàn)日益倍增。MindSpore Lite提供了簡單實(shí)用的訓(xùn)練后量化功能,最大程度壓縮模型大小,減小內(nèi)存占用,提升推理速度,降低功耗。
訓(xùn)練后量化相較于量化重訓(xùn)具有兩個(gè)明顯優(yōu)勢,一是無需大量訓(xùn)練數(shù)據(jù)集,二是無需重新訓(xùn)練,離線快速轉(zhuǎn)換。MindSpore Lite訓(xùn)練后量化工具提供權(quán)重量化和全量化兩種方法,支持1~16bit量化,支持分類,檢測,NLP等多種模型。
為保障訓(xùn)練后量化模型精度損失小,采用pipeline組合量化方法,一階段采用常規(guī)線性量化手段對(duì)權(quán)重和激活值進(jìn)行量化,二階段對(duì)量化誤差進(jìn)行分析,利用統(tǒng)計(jì)學(xué)方法對(duì)量化模型進(jìn)行校正,補(bǔ)償因量化帶來的精度損失。

Pipeline 組合量化
以TF官網(wǎng)MobileNet_v2模型為例,MindSpore Lite訓(xùn)練后量化A8W8(激活值8bit量化、權(quán)重8bit量化)精度與FP32模型相比,經(jīng)損失校正后,精度損失由0.82%降到0.4%,同樣適用7bit量化下,精度損失仍不超過1%。

訓(xùn)練后全量化mobilenet_v2模型精度對(duì)比

在HMS Face場景下模型進(jìn)行了INT8權(quán)重量化(模型size范圍364KB~2.9MB),實(shí)際端到端識(shí)別精度完全滿足服務(wù)要求。權(quán)重量化精度損失矯正方案的相對(duì)精度誤差對(duì)比如下,可以看到損失矯正方案下量化精度損失有明顯降低。

Face場景模型權(quán)重量化精度損失矯正方案相對(duì)精度損失對(duì)比
經(jīng)內(nèi)部大量測試和實(shí)際商用交付反饋,pipeline組合量化方法效果顯著,甚至小至300KB的模型,經(jīng)INT8量化壓縮后精度仍滿足商用要求。
4. 易用性增強(qiáng)
4.1 加速庫自動(dòng)裁剪工具
為了滿足部分對(duì)發(fā)布包大小有極致小型化訴求的場景,提供了一個(gè)一鍵式裁剪工具,該工具可以根據(jù)用戶指定的模型列表,自動(dòng)裁剪出足以運(yùn)行列表中指定模型的最小化MindSpore Lite版本。
4.2 離線工具參數(shù)精簡
對(duì)離線轉(zhuǎn)換工具參數(shù)進(jìn)行了精簡,最大程度地提高轉(zhuǎn)換工具的易用性,讓開發(fā)者在轉(zhuǎn)換三方模型時(shí),無需感知三方模型的量化類型、輸入輸出節(jié)點(diǎn)名稱和對(duì)應(yīng)的數(shù)據(jù)類型等。
4.3 支持Java接口
1.1版本正式開放了Java接口,以方便安卓開發(fā)者更簡單的使用MindSpore Lite進(jìn)行應(yīng)用開發(fā)。
4.4 模型可視化
為了方便開發(fā)者調(diào)試,在Netron開源社區(qū)提交了支持MindSpore Lite模型可視化的代碼,現(xiàn)在開發(fā)者可以使用Netron工具可視化MindSpore Lite模型。相信能給開發(fā)者調(diào)試模型,尤其是一些結(jié)構(gòu)復(fù)雜的模型,帶來極大的方便。

總結(jié)

以上是生活随笔為你收集整理的超轻量AI引擎MindSpore Lite的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。