如何挑战百万年薪的人工智能!

https://edu.csdn.net/topic/ai30?utm_source= csdn_bw

作者 | 小米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等)的运行性能和精度表现,对开发者的选择给出客观参考。

牛了,这几个案例让你迅速掌握AI技术!

https://edu.csdn.net/topic/ai30?utm_source= csdn_bw

未来计划

未来,MACE将持续在易用性、高性能、兼容性上持续发力。计划如下:

1)为了支持更丰富的上层业务,我们将覆盖更多类型的模型,现阶段已经支持了图像、文本以及语音的模型,之后会增加更多相关操作,包括控制操作。

为使一些简单的模型能够在设备端训练个性化数据,我们会针对具体业务探索在端上进行训练的支持。

MACE将进一步解偶针对不同设备的代码,去除依赖、按需编译、精简库大小;也将支持混合精度,探索用更少比特位量化的方案,结合模型稀疏编码等压缩技术,减小模型大小。

2)我们将持续优化算子的性能,针对不同设备的特性,针对性地进一步优化主流芯片上的性能,也将探索如何在运用量化技术减少运行时间的同时,提高模型精度,如支持分层量化机制。

3)MACE将支持更多的设备和芯片,包括iOS,以及针对神经网络设计的专有NPU芯片。MACE将支持针对不同设备特性与模型结构,自动化的选择合适的芯片运行。

作者简介:MACE团队,小米人工智能部。成员分别毕业于清华、武大、UCL,先后就职于百度、腾讯、微软、依图。目前团队专注移动端AI业务模型的孵化和落地。

本文系作者投稿,仅代表作者观点,不代表CSDN立场。

【End】

 热 文 推 荐  

☞淘宝、飞猪、闲鱼都挂了,阿里云却正常?!

☞“十亿赌约”,雷军输,董明珠胜?

☞今天,Java 12 正式发布了!

☞程序员版的《小王子》,过于真实!

☞前阿里 P9 级员工称离婚是模拟测试,已回滚复婚!

☞没有新芯片,没有大核弹,黄教主这次给大家带来了个PRADA

☞要钱还是要命? 比特币正悄悄杀死你...

☞刚刚,数学界“诺奖”Abel Prize迎来首位女性得主

☞曝光!月薪 5 万的程序员面试题:73% 人都做错,你敢试吗?

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

喜欢就点击“在看”吧!

2019程序员转型学什么?

https://edu.csdn.net/topic/ai30?utm_source= csdn_bw

小米“祭出” AIoT 神器!| 技术头条相关推荐

  1. 报告老板,微服务高可用神器已祭出,您花巨资营销的高流量来了没?

    来自:码大叔 我得意地来到老板的办公室:"报告老板,高可用神器已祭出,您花巨资营销的高流量什么时候到?" 老板呵呵一声:"高流量下周一来报道,你可以准备下和他做工作交接了 ...

  2. ​突破 1nm!台积电祭出“半金属”取代硅材料;搜狗发布手语 AI 合成主播;iOS 微信 8.0.6 版本更新|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  3. 还在用Matplotlib? 又一可视化神器Altair登场 | 技术头条

    作者 | Fernando Irarrázaval 翻译 | Monanfei 责编 | Jane 出品 | Python 大本营(id:pythonnews) [导语]如何将我们的数据以更好的形势呈 ...

  4. Python程序员Debug利器,和Print说再见 | 技术头条

    整理 | Rachel 责编 | Jane 出品 | Python大本营(id:pythonnews) [导语]程序员每日都在和 debug 相伴.新手程序员需要学习的 debug 手段复杂多样,设置 ...

  5. 全球嵌入式技术与 IoT 产业回顾与展望 | 技术头条

    作者 | 何小庆 本文经授权转自"麦克泰技术" 编辑 | 沭七 半导体公司的并购.IoT 和 AI 热潮驱动嵌入式技术向安全.低功耗和互联的方向发展,AI 和 IoT 将越来越多呈 ...

  6. 仅用语音,AI 就能“脑补”你的脸! | 技术头条

    作者 | Wav2pix 研究团队 译者 | 刘畅 编辑 | Jane 出品 |  AI科技大本营(公众号id:rgznai100) [导语]之前我们为大家介绍过一项非常酸爽的研究"Talk ...

  7. 如何做到毫秒级从百亿大表任意维度筛选数据?| 技术头条

    业务背景 随着闲鱼业务的发展,用户规模达到数亿级,用户维度的数据指标,达到上百个之多.如何从亿级别的数据中,快速筛选出符合期望的用户人群,进行精细化人群运营,是技术需要解决的问题.业界的很多方案往往需 ...

  8. 收藏指数爆表!CVPR 2018-2019几十篇优质论文解读大礼包! | 技术头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 作者 | Olga Liakhovich 译者 | AI科技大本营编译志愿者团队 编辑 | Jane 出品 | ...

  9. 宁波打响“外卖保卫战” 祭出“黑科技”实现精准监管

    图为市场监管人员对网上监控到的违规信息进行现场核查. 李佳赟 摄 图为市场监管人员对网上监控到的违规信息进行现场核查. 李佳赟 摄 中新网宁波1月28日电(记者 李佳赟)打开手机APP,动动手指,美食 ...

最新文章

  1. (转)小小的研究了一下linux下的”注册表“ gconf-editor
  2. linux下mysql主从复制搭建
  3. python 依据某几列累加求和_Python爬虫笔记:爬取单个页面
  4. fasterrcnn tensorflow代码详解_pytorch目标检测代码的一些bug调试
  5. AJAX 中Sys.WebForms.PageRequestManager的事件激发顺序
  6. Promise对象和运算符
  7. JavaScript 运算符优先级 - 汇总表
  8. 关于记忆的10个惊人事实
  9. 5个物联网商业案例及其带给我们的启示
  10. JavaSE第04篇:Java基础语法之循环结构
  11. 买马桶哪个牌子的最好?
  12. 苹果真抠门!iPhone 12不再附送充电器
  13. 一文看懂!百度对话系统PLATO家族
  14. 2008 NBA 全明星周未之扣篮大赛
  15. 我用 Python 代码爬取“学习”了全网各种风格妹子1T的小图片
  16. freefilesync数据同步
  17. 对2345王牌输入法的评价
  18. urllib与urllib2
  19. 北斗七星之一北斗卫星授时系统(北斗卫星时钟系统)
  20. 微信小程序地图签到功能

热门文章

  1. 爱可生 mysql监控_MySQL 数据传输DTLE 最新版来啦-爱可生
  2. C++基于STL的演讲比赛流程管理系统
  3. Dart基础-变量与类型
  4. 交流适配器行业调研报告 - 市场现状分析与发展前景预测
  5. java系统属性_java 系统属性
  6. Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶/高并发
  7. 一个基于运气的数据结构,你猜是啥?
  8. 华为 Mate 40 系列搭载麒麟 9000 芯片;短视频平台 Quibi 宣布关闭;Node.js 15 正式版发布|极客头条
  9. 2020年入门数据分析选择Python还是SQL?七个常用操作对比!
  10. 鸿蒙 OS 尖刀武器之分布式软总线技术全解析!