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