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

  淘宝上用的移动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间并行运行。

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

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

  这里有一个淘宝的例子——  郑州不孕不育医院:http://wapyyk.39.net/zz3/zonghe/1d427.html郑州不孕不育医院哪家好:http://wapyyk.39.net/zz3/zonghe/1d427.html

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_39443136/article/details/89881569