當前位置:
首頁 > 科技 > 小米「祭出」 AIoT 神器!

小米「祭出」 AIoT 神器!

作者 | 小米MACE團隊

責編 | 胡巍巍

近年來,依託硬體算力的提升和數據集的豐富,以深度學習為代表的人工智慧領域蓬勃發展。

同時,在終端設備上部署AI應用也越來越普遍。小米作為一家以AIoT為核心戰略的企業,在設備端的深度學習部署做了長期的探索。

在2018年,小米對外開源了專門為移動端設備優化的深度學習推理框架MACE(https://github.com/XiaoMi/mace/)。

功能和架構

MACE是一個在移動端運行的高性能深度學習引擎,在多框架支持、性能、系統響應、功耗、內存佔用、模型保護等方面都有專門優化,同時MACE是一個異構計算平台,可以支持多個廠商的多種硬體設備。

框架廣泛支持TensorFlow、Caffe等深度學習框架的模型,同時打通ONNX,也一併支持了所有可以轉到ONNX的框架模型。

在大家都擔心的性能上,為減少計算量和訪存次數,我們對模型運算元的表示層和演算法本身均進行優化,例如運算元融合、Winograd。

在MACE最大優勢,硬體支持上,我們專門針對NEON/OpenCL/HVX,實現CPU和GPU的協調,和8位定點量化加速。尤其在系統響應方面,眾所周知,移動終端設備資源相對受限,而GPU承載了UI渲染,我們安排MACE在計算時自動拆解OpenCL計算任務以保證系統UI的響應和用戶體驗。

MACE還在幾個基本點上反覆打磨,為減少內存佔用,利用內存依賴分析技術,提高內部復用。同時對ARM CPU、Adreno GPU、Hexagon DSP也進行了功耗控制。

這裡,值得一提的是我們的模型保護,默認將模型轉換成C 代碼,對模型節點和數據的字元混淆,對開發者進行最大程度的知識產權保護。

目前,我們不僅支持高通、海思、聯發科、松果的主流CPU晶元,也兼容了Adreno、Mali GPU和Hexagon DSP的計算加速。

三大落地場景

視覺,毋庸置疑是AI上半場最能落地和已經被驗證剛需的場景。網民的生活工作中,手機的相機作為最高頻的入口,在深度學習演算法的加持下,為用戶提供了更出色的基礎畫質,在超過半數的效果中,已可媲美甚至超越數碼相機的精度。

MACE非常及時地支撐了小米暢銷手機的幾大賣點,比如大家所熟知的場景濾鏡,單攝背景虛化、人臉解鎖、超解析度等。

現在手機相冊中也有不少視覺演算法的應用,比如智能照片挑選、圖像美化等功能。

雖然大家擔心NLP在此次的AI浪潮中沒有深刻地落地,但小愛同學不得不提。

這款深入人心的語音助手,利用深度學習的長短時記憶網路(LSTM)在眾多NLP的場景中,尤其翻譯領域中,激活了操作系統MIUI,也鏈接了線下的智能家居。

面對主流翻譯模型對計算的速度、內存等資源的龐大需求,MACE為翻譯模型中計算量佔比最大的矩陣乘專門做了優化,通過優化訪存順序、量化等方式大幅提升計算速度。

而量化本身又將模型大小縮減75%,大幅縮減了運行時的內存佔用,並且量化後的模型預測精度仍然符合預期。

同時,MACE本身提供內存復用的方式,通過標記內存的引用數,來複用申請的內存,基本上將運行時MACE庫的內存控制在2MB左右,解決了LSTM模型運算元繁多導致運行時內存佔用高的問題。MACE對LSTM模型已有較好的支持,小米內部也已經有多個相關模型應用於手機上。

在網民每一次呼喚「小愛同學」背後,深度循環神經網路都在針對你的聲音、語言特點和語料內容,不斷訓練著小愛同學的聲學模型和語言模型。

為此,MACE也在推理層面做了大量配套工作。除了CNN網路外,MACE也支持了語音識別深度學習模型中常用的LSTM、TDNN等網路。

另外,MACE還針對在語音識別領域廣泛使用的深度學習訓練平台Kaldi框架,開發了模型轉換工具,可以方便地將Kaldi模型轉換成ONNX格式模型文件,使用這一工具和MACE對ONNX模型的支持,可以極大地降低部署語音識別模型的難度和縮短語音識別模型從訓練到部署的時間。

此外,MACE還針對語音識別模型在嵌入式處理器上的推理計算過程中,進行了多方面的優化,如融合計算、內存優化、定點計算等,在降低運算時功耗的同時,大大提升了語音識別的速度。

工程經驗

為了方面開發者對模型有直觀的性能預警,MACE提供了Benchmark工具,偵測具體到每個運算元所花費的時間。

另一個Validate工具也十分好用,原理是通過與其他模型訓練平台的計算結果進行餘弦相似度、信噪比、像素一致性等三維比對,保證了MACE引擎計算結果的正確性。

在兼容性方面,MACE支持高通、聯發科等主流晶元的CPU、GPU、Hexagon DSP等計算加速,還支持在具有POSIX介面的系統上運行CPU計算加速。

同時,利用GitLab的持續集成(CI)功能,對於MACE的每一次更新,都能實現對於計算結果、兼容性、量化功能等多項任務的自動化測試。

與MACE同步地,我們開源了MobileAIBench評測工具(https://github.com/XiaoMi/mobile-ai-bench ),使開發者能夠更為方便地評測在不同硬體(CPU、GPU、DSP等)和計算框架(MACE、SNPE、NCNN、Tensorflow Lite等)上同一模型(如MobileNetV1、MobileNetV2等)的運行性能和精度表現,對開發者的選擇給出客觀參考。

未來計劃

未來,MACE將持續在易用性、高性能、兼容性上持續發力。計劃如下:

1)為了支持更豐富的上層業務,我們將覆蓋更多類型的模型,現階段已經支持了圖像、文本以及語音的模型,之後會增加更多相關操作,包括控制操作。

為使一些簡單的模型能夠在設備端訓練個性化數據,我們會針對具體業務探索在端上進行訓練的支持。

MACE將進一步解偶針對不同設備的代碼,去除依賴、按需編譯、精簡庫大小;也將支持混合精度,探索用更少比特位量化的方案,結合模型稀疏編碼等壓縮技術,減小模型大小。

2)我們將持續優化運算元的性能,針對不同設備的特性,針對性地進一步優化主流晶元上的性能,也將探索如何在運用量化技術減少運行時間的同時,提高模型精度,如支持分層量化機制。

3)MACE將支持更多的設備和晶元,包括iOS,以及針對神經網路設計的專有NPU晶元。MACE將支持針對不同設備特性與模型結構,自動化的選擇合適的晶元運行。

作者簡介:MACE團隊,小米人工智慧部。成員分別畢業於清華、武大、UCL,先後就職於百度、騰訊、微軟、依圖。目前團隊專註移動端AI業務模型的孵化和落地。

本文系作者投稿,僅代表作者觀點,不代表CSDN立場。

【End】

熱 文推 薦

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

為什麼所有人都對 HTML、CSS 失望了?
為什麼要使用 SQLite 資料庫?

TAG:CSDN |