乾明 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

淘宝上用的移动AI技术,你也可以用在自己的产品中了。

刚刚,阿里巴巴宣布,开源自家轻量级的深度神经网络推理引擎MNN(Mobile Neural Network),用于在智能手机、IoT设备等端侧加载深度神经网络模型,进行推理预测。

这是阿里开源的首个移动AI项目,已经用于阿里手机淘宝、手机天猫、优酷等20多个应用之中。覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。在IoT等移动设备场景下,也有若干应用。

阿里表示,在iOS、Android的CPU、GPU性能上,MNN已经普遍领先业界。

他们选择深度神经网络模型MobileNet V2和SqueezeNet V1.1进行了测试。

Android方面以小米6为例,MobileNet V2上耗费时间约为27毫秒,SqueezeNet V1.1上耗费约为25毫秒,领先业界至少30%;

iOS方面以iPhone 7为例,MobileNet V2上耗费时间约为15毫秒,SqueezeNet V1.1上耗费约为14.8毫秒,领先业界至少15%。

淘宝端智能无线技术专家离青说,MNN开源之后,每隔两个月都会进行一次更新,发布经过淘宝应用验证的版本。

MNN的两大功能与四大特点

基于淘宝和达摩院的研究成果,阿里巴巴在2017年10月正式组建了MNN团队。

经过淘宝技术部、搜索工程团队、达摩院团队、优酷等各方力量的打磨,以及双11和集五福等重大业务项目的考验,在离青看来,MNN已经是一个成熟的推理引擎了。

现在,MNN可以提供模型转换和计算推理两部分功能。

模型转换部分帮助开发者兼容不同的训练框架。

当前,MNN已经支持Tensorflow(Lite)、Caffe和ONNX,PyTorch/MXNet的模型可先转为ONNX模型再转到MNN。而且,也能通过算子融合、算子替代、布局调整等方式优化图。

计算推理部分致力于高效完成推理计算。

为了更好地完成对模型的加载、计算图的调度,以及各计算设备下的内存分配、Op实现等任务。

他们在MNN中应用了多种优化方案,包括在卷积和反卷积中应用Winograd算法、在矩阵乘法中应用Strassen算法、低精度计算、多线程优化、内存复用、异构计算等。

MNN架构设计

离青介绍称,在这样的架构设计下,MNN具备了以下的四大特点:

轻量性:针对端侧设备特点深度定制和裁剪,无任何依赖,可以方便地部署到移动设备和各种嵌入式设备中。

通用性:支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用网络。

高性能:不依赖任何第三方计算库,依靠大量手写汇编实现核心运算,充分发挥ARM CPU的算力。比如,在iOS设备上,可以开启GPU加速(Metal),常用模型上快于苹果原生的CoreML。

易用性:有高效的图像处理模块,覆盖常见的形变、转换等需求,一般情况下,无需额外引入libyuv或opencv库处理图像。

MNN不仅支持回调机制,可以在网络运行中插入回调,提取数据或者控制运行走向;还支持只运行网络中的一部分,或者指定CPU和GPU间并行运行。

离青介绍,这一项目的核心目标,就是进一步降低开发工程师和算法工程师在移动环境中使用深度学习技术的门槛。

这样的一个引擎,应用到实际中是什么样的情况呢?

这里有一个淘宝的例子——

手机淘宝春节活动:扫年货,集五福

2019年春节期间,淘宝通过扫年货的方式加入到了阿里“集五福”活动之中。

具体的使用场景是,通过扫一扫商品识别能力,来识别红色年货,并分析照片中有年货的概率,根据概率来发放相关权益。

首先,为了扫描年货,淘宝在服务端用百万张年货图片训练出了一个可以鉴别年货的深度神经网络模型。

接下来,就需要MNN发挥作用了。

用户通过相机扫描年货时,淘宝会获取相机中的照片数据。然后,对照片做预处理,包括图片的缩放、颜色空间的转换等。

离青说,扫年货是一个基于相机的应用场景,使用云端AI会消耗用户大量的流量去传输逐帧照片、服务端的计算资源,同时响应速度也会取决于网络状况。

而MNN,可以通过端侧AI,避免了网络开销,使整体体验流畅、稳定。

它能够结合训练好的模型和经过处理的数据,快速做出相应的计算处理,分析出照片中有年货的概率。

如果照片中有年货的概率达到淘宝设定的标准,就可以认定用户扫描到了年货,进而发放相关的权益。

这只是阿里将移动AI应用到自身业务之中的一个场景;MNN,也只是阿里众多移动AI项目中的一个。

在离青看来,移动AI领域的应用、框架/引擎、硬件方面都有着很多的可能性。

接下来,他们将会在维持MNN轻量、通用、易用、高性能等方面特点的情况下,进一步加强在端侧核心算法的投入,降低开发者使用门槛,探索如何在云+端结合的情况下,发挥出更强的AI能力。

如果你对这个项目感兴趣,请收好下面传送门:

https://github.com/alibaba/MNN

在这个项目中,阿里巴巴提供了使用说明文档和基于图片、视频流的示例应用等等。

他们也发出呼吁,希望大家多多进行体验、反馈,用MNN构建出不同的人工智能应用~

One more thing

今年3月份正式宣布加入阿里的框架大牛贾扬清,在MNN项目开源评审时也给出了自己的建议。

在贾扬清看来,与Tensorflow、Caffe2等同时覆盖训练和推理的通用框架相比,MNN更注重在推理时的加速和优化,解决在模型部署的阶段的效率问题,从而在移动端更高效地实现模型背后的业务。

这和服务器端TensorRT等推理引擎的想法不谋而合。

离青说,这样的转变,让MNN有了更切合使用场景的定位,对于其进一步发展,和为开发者服务,都有很大的帮助。

小程序|get更多AI资讯与资源

加入社群

量子位AI社群开始招募啦,量子位社群分:AI讨论群、AI+行业群、AI技术群;

欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“微信群”,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !

阿里开源首个移动AI项目,淘宝同款推理引擎相关推荐

  1. 阿里聚安全发布 企业可享淘宝同款防护

    本文讲的是阿里聚安全发布 企业可享淘宝同款防护[IT168 云计算]互联网蓬勃发展,催生众多创新业务,互联网安全也面临前所未有的挑战.2月25日,阿里巴巴正式推出企业安全产品--阿里聚安全,面向企业和 ...

  2. 腾讯开源首个医疗AI项目,业内首个3D医疗影像大数据预训练模型

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 腾讯AI,开源又有新动作. 旗下顶级AI实验室腾讯优图,对外开源了腾讯首个医疗AI项目--深度学习预训练模型MedicalNet. 这一项 ...

  3. 腾讯开源首个医疗AI项目,业内首个3D医疗影像大数据预训

    腾讯AI,开源又有新动作. 旗下顶级AI实验室腾讯优图,对外开源了腾讯首个医疗AI项目--深度学习预训练模型MedicalNet. 这一项目,专为3D医疗影像在深度学习上的应用开发,也是业内首个同方向 ...

  4. GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

  5. 星巴克猫爪杯开售遭哄抢 淘宝同款比比皆是真假难辨

    原标题:星巴克猫爪杯开售即遭哄抢淘宝同款比比皆是真假难辨 来源:证券日报 报记者 余若晰 近段时间,若要问什么最火爆?并不是哪款线上热门游戏,也不是某款热门色号的口红,而是星巴克推出的新款" ...

  6. 极客日报:阿里再度调整组织架构:天猫淘宝大融合,新设三大中心;苹果M1首席芯片设计师跳槽至英特尔

    一分钟速览新闻点! 腾讯接入数字人民币,微信支持数字人民币支付 阿里再度调整组织架构:天猫淘宝大融合,新设三大中心 七成清华毕业生进入体制内就业 北京最受欢迎:华为腾讯等科技企业也受青睐 钉钉近期将推 ...

  7. 阿里金融成立,从第一天开始,就使用阿里云的云计算平台作为运算淘宝和支付宝数据的计算后台。阿里小贷不需要抵押,纯信用贷款,目前已经能做到3分钟提交申请,1秒批准,0人工干预。数据成为新的信用。...

    阿里金融成立,从第一天开始,就使用阿里云的云计算平台作为运算淘宝和支付宝数据的计算后台.阿里小贷不需要抵押,纯信用贷款,目前已经能做到3分钟提交申请,1秒批准,0人工干预.数据成为新的信用. 转载于: ...

  8. 阿里百川V6安全图,uniapp使用阿里百川SDK V6安全图唤醒淘宝APP 阿里百川新版本打开淘宝领券页面/渠道备案,uniapp对接淘宝联盟等等超级详细

    阿里百川V6安全图,uniapp使用阿里百川SDK V6安全图唤醒淘宝APP 阿里百川新版本打开淘宝领券页面/渠道备案,uniapp对接淘宝联盟等等超级详细 此文章是针对插件市场1.6版本升级的介绍 ...

  9. 淘宝商家如何通过淘宝客来打造淘宝爆款?

    打造爆款大家就会想到直通车和钻展以及刷单,但是这些方法很烧钱,而且爆款不一定能打造出来,那么大家有没有想过用淘宝客推广来打造爆款呢?淘宝客推广是个双赢的选择,淘宝客拿到佣金,卖家自己能将推广风险降到最 ...

最新文章

  1. StoryBoard 视图切换和传值
  2. Java读写文件,中文乱码解决
  3. 一句话介绍区块链是什么
  4. 【NLP-ChatBot】能干活的聊天机器人-对话系统概述
  5. wxWidgets:wxActivateEvent类用法
  6. linux数据库创建表空间语句,如何用LINUX用命令创建ORACLE数据库表空间和用户
  7. C++ class实现双向循环链表(完整代码)
  8. linux 系统 cp: omitting directory 问题解决
  9. weblogic设置classpath、debug端口和log目录
  10. 计算机学术论文写作与发表
  11. python做物联网控制_一步步搭建物联网系统——简单物联网
  12. Arcgis入门,十分钟快速出图
  13. debian7开机启动
  14. 由浅入深玩转华为WLAN—11 安全认证配置(4)AC内置Portal认证(网页认证)
  15. 从别人那copy点学习资料
  16. 关于网络密码的可怕真相
  17. 网络流媒体--RTP和RTCP协议
  18. 北京PM2.5情况分析(2010-2014)
  19. python网络爬虫进入(一)——简单的博客爬行动物
  20. [dpdk]rte_mempool_ops_table

热门文章

  1. 应届生如何自学 Java、成功拿下腾讯 Offer?
  2. 36 小时,程序员可以开发出什么?
  3. 年薪 700 万也换不来区块链开发者的一次回眸
  4. 滴滴接盘小蓝单车,押金问题谁来负责?
  5. 全球活跃开发者不足 1500 万,业余爱好者和学生仅占四分之一
  6. java获取月末日期_Java获取时间年、月、日的方法
  7. 用python写用手机发邮件_如何用python写发邮件?
  8. micropython gpio_micropython GPIO
  9. python写出函数调用关系_函数递归调用: 调用者 与 被调用者之间的四种数据传递关系...
  10. php5框架,Thinkphp5.1框架