阿里開源首個移動AI項目:淘寶同款推理引擎
本文經(jīng)AI新媒體量子位(公眾號 ID: QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
本文引用地址:http://www.ex-cimer.com/article/201907/403022.htm淘寶上用的移動AI技術,你也可以用在自己的產(chǎn)品中了。
剛剛,阿里巴巴宣布,開源自家輕量級的深度神經(jīng)網(wǎng)絡推理引擎MNN(Mobile Neural Network),用于在智能手機、IoT設備等端側(cè)加載深度神經(jīng)網(wǎng)絡模型,進行推理預測。
這是阿里開源的首個移動AI項目,已經(jīng)用于阿里手機淘寶、手機天貓、優(yōu)酷等20多個應用之中。覆蓋直播、短視頻、搜索推薦、商品圖像搜索、互動營銷、權(quán)益發(fā)放、安全風控等場景。在IoT等移動設備場景下,也有若干應用。
阿里表示,在iOS、Android的CPU、GPU性能上,MNN已經(jīng)普遍領先業(yè)界。
他們選擇深度神經(jīng)網(wǎng)絡模型MobileNet V2和SqueezeNet V1.1進行了測試。
Android方面以小米6為例,MobileNet V2上耗費時間約為27毫秒,SqueezeNet V1.1上耗費約為25毫秒,領先業(yè)界至少30%;
iOS方面以iPhone 7為例,MobileNet V2上耗費時間約為15毫秒,SqueezeNet V1.1上耗費約為14.8毫秒,領先業(yè)界至少15%。
淘寶端智能無線技術專家離青說,MNN開源之后,每隔兩個月都會進行一次更新,發(fā)布經(jīng)過淘寶應用驗證的版本。
MNN的兩大功能與四大特點
基于淘寶和達摩院的研究成果,阿里巴巴在2017年10月正式組建了MNN團隊。
經(jīng)過淘寶技術部、搜索工程團隊、達摩院團隊、優(yōu)酷等各方力量的打磨,以及雙11和集五福等重大業(yè)務項目的考驗,在離青看來,MNN已經(jīng)是一個成熟的推理引擎了。
現(xiàn)在,MNN可以提供模型轉(zhuǎn)換和計算推理兩部分功能。
模型轉(zhuǎn)換部分幫助開發(fā)者兼容不同的訓練框架。
當前,MNN已經(jīng)支持Tensorflow(Lite)、Caffe和ONNX,PyTorch/MXNet的模型可先轉(zhuǎn)為ONNX模型再轉(zhuǎn)到MNN。而且,也能通過算子融合、算子替代、布局調(diào)整等方式優(yōu)化圖。
計算推理部分致力于高效完成推理計算。
為了更好地完成對模型的加載、計算圖的調(diào)度,以及各計算設備下的內(nèi)存分配、Op實現(xiàn)等任務。
他們在MNN中應用了多種優(yōu)化方案,包括在卷積和反卷積中應用Winograd算法、在矩陣乘法中應用Strassen算法、低精度計算、多線程優(yōu)化、內(nèi)存復用、異構(gòu)計算等。
△MNN架構(gòu)設計
離青介紹稱,在這樣的架構(gòu)設計下,MNN具備了以下的四大特點:
輕量性:針對端側(cè)設備特點深度定制和裁剪,無任何依賴,可以方便地部署到移動設備和各種嵌入式設備中。
通用性:支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用網(wǎng)絡。
高性能:不依賴任何第三方計算庫,依靠大量手寫匯編實現(xiàn)核心運算,充分發(fā)揮ARM CPU的算力。比如,在iOS設備上,可以開啟GPU加速(Metal),常用模型上快于蘋果原生的CoreML。
易用性:有高效的圖像處理模塊,覆蓋常見的形變、轉(zhuǎn)換等需求,一般情況下,無需額外引入libyuv或opencv庫處理圖像。
MNN不僅支持回調(diào)機制,可以在網(wǎng)絡運行中插入回調(diào),提取數(shù)據(jù)或者控制運行走向;還支持只運行網(wǎng)絡中的一部分,或者指定CPU和GPU間并行運行。
離青介紹,這一項目的核心目標,就是進一步降低開發(fā)工程師和算法工程師在移動環(huán)境中使用深度學習技術的門檻。
這樣的一個引擎,應用到實際中是什么樣的情況呢?
這里有一個淘寶的例子——
手機淘寶春節(jié)活動:掃年貨,集五福
2019年春節(jié)期間,淘寶通過掃年貨的方式加入到了阿里“集五?!被顒又?。
具體的使用場景是,通過掃一掃商品識別能力,來識別紅色年貨,并分析照片中有年貨的概率,根據(jù)概率來發(fā)放相關權(quán)益。
首先,為了掃描年貨,淘寶在服務端用百萬張年貨圖片訓練出了一個可以鑒別年貨的深度神經(jīng)網(wǎng)絡模型。
接下來,就需要MNN發(fā)揮作用了。
用戶通過相機掃描年貨時,淘寶會獲取相機中的照片數(shù)據(jù)。然后,對照片做預處理,包括圖片的縮放、顏色空間的轉(zhuǎn)換等。
離青說,掃年貨是一個基于相機的應用場景,使用云端AI會消耗用戶大量的流量去傳輸逐幀照片、服務端的計算資源,同時響應速度也會取決于網(wǎng)絡狀況。
而MNN,可以通過端側(cè)AI,避免了網(wǎng)絡開銷,使整體體驗流暢、穩(wěn)定。
它能夠結(jié)合訓練好的模型和經(jīng)過處理的數(shù)據(jù),快速做出相應的計算處理,分析出照片中有年貨的概率。
如果照片中有年貨的概率達到淘寶設定的標準,就可以認定用戶掃描到了年貨,進而發(fā)放相關的權(quán)益。
這只是阿里將移動AI應用到自身業(yè)務之中的一個場景;MNN,也只是阿里眾多移動AI項目中的一個。
在離青看來,移動AI領域的應用、框架/引擎、硬件方面都有著很多的可能性。
接下來,他們將會在維持MNN輕量、通用、易用、高性能等方面特點的情況下,進一步加強在端側(cè)核心算法的投入,降低開發(fā)者使用門檻,探索如何在云+端結(jié)合的情況下,發(fā)揮出更強的AI能力。
在這個項目中,阿里巴巴提供了使用說明文檔和基于圖片、視頻流的示例應用等等。
他們也發(fā)出呼吁,希望大家多多進行體驗、反饋,用MNN構(gòu)建出不同的人工智能應用~
One more thing
今年3月份正式宣布加入阿里的框架大牛賈揚清,在MNN項目開源評審時也給出了自己的建議。
在賈揚清看來,與Tensorflow、Caffe2等同時覆蓋訓練和推理的通用框架相比,MNN更注重在推理時的加速和優(yōu)化,解決在模型部署的階段的效率問題,從而在移動端更高效地實現(xiàn)模型背后的業(yè)務。
這和服務器端TensorRT等推理引擎的想法不謀而合。
離青說,這樣的轉(zhuǎn)變,讓MNN有了更切合使用場景的定位,對于其進一步發(fā)展,和為開發(fā)者服務,都有很大的幫助。
評論