AI 前线导读:很多年以后,当我们回望 2017 年,会意识到对于移动互联网的发展来说,这一年是一个重要的里程碑。芯片制造商、移动操作系统提供商、深度学习框架社区以及移动应用开发者都开始转向 On Device AI,同时,这个趋势同样惠及于 IoT 产业的 Edge 端设备。本文就从这几个方面来解读一下这个趋势。
更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)
移动端 AI 现状——正在发生的移动平台的 AI 革命首先,为什么我们需要 On Device AI 能力呢?在 Edge 端设备上的 AI 能力可以带来这几个好处:
那么,Edge 端设备的硬件计算能力毕竟有限,能否支持 AI 模型的 Inference 呢?
2017 年 3 月 ARM 提出了面向 AI 的新架构 DynamlQ 技术。
“Cortex-A CPUs that are designed based on DynamIQ technology can carry out advanced compute capabilities in Machine Learning and Artificial Intelligence. Over the next three to five years, DynamIQ-based systems will deliver up to a 50x* boost in AI performance. This is achieved through an aggressive roadmap of future DynamIQ IP, integrated with new Arm architectural instructions, microarchitectural improvements, and further software optimizations to the Arm Compute Libraries.”
ARM 表示未来 3 到 5 年内实现比基于 Cortex-A73 的设备高 50 倍的人工智能性能,最多可将 CPU 和 SoC 上特定硬件加速器的反应速度提升 10 倍。
紧接着,ARM 在 4 月份开源了支持 Context-A 系列 CPU 和 Mali 系列 GPU 的 Compute Library,让机器学习和深度学习算法在 ARM 平台更高效地运行。
2017 年 8 月高通对外发布了支持 Caffe/Caffe2 和 TensorFlow 的 Neural Processing Engine SDK,让深度学习可以利用 GPU 和 DSP 的计算能力
实际上,在 2017 年 4 月,Facebook 发布了针对 Edge 端设备的深度学习框架 Caffe2,其主要作者贾扬清在 F8 大会上演讲时就提到:“Android 系统上的 GPU 也类似,我们与高通合作开发了‘骁龙神经处理引擎’(SNPE),如今高通骁龙 SoC 芯片为大量的手机服务,现在是 Caffe2 的首要概念( first class concept),我们可以利用这些 CPU 和 DSP,从本质上提升能效和性能。”
高通在 2017 年 12 月发布最新芯片骁龙 845 时提到:“In addition to the existing support for Google’s TensorFlow and Facebook’s Caffe/Caffe2 frameworks, the Snapdragon Neural Processing Engine (NPE) SDK now supports TensorFlow Lite and the new Open Neural Network Exchange (ONNX), making it easy for developers to use their framework of choice, including Caffe2, CNTK and MxNet. Snapdragon 845 also supports Google’s Android NN API.”
也就是说,SNPE 不但支持 Caffe、Caffe2、TensorFlow 和 Edge 设备端专用的 TensorFlow Lite 等深度学习框架,也支持由 Facebook 和微软发起的 ONNX(Open Neural Network Exchange),一个 Intermediate Representation,让 Caffe2、CNTK、PyTorch 以及 MXNet 这些框架可以实现模型互通,方便芯片厂商可以针对一个标准进行硬件级别优化。
2017 年 9 月,华为发布了麒麟 970,内置中科院寒武纪 -1A NPU,可以加速神经网络在手机端的运行。
在发布旗舰设备 Mate 10 之后,华为推出了 HiAI 移动计算平台业务,践行在麒麟 970 发布会上的承诺,打造一个开放式的 AI 生态系统,让开发者可以通过这个平台为华为 Mate 10 这样搭载了最新麒麟芯片的设备上提供具有 AI 能力的应用。
2017 年 9 月,Apple 在年度产品发布会上,发布了将会搭载在 iPhone 8、iPhone 8 Plus 和 iPhone X 上的 A 11 Bionic SoC,用于支持 iOS 系统机器学习和深度学习模型的框架 CoreML 和增强现实框架 ARKit,并且升级了图形处理芯片 Metal 2,用于加速深度学习模型的 Inference。
2017 年 11 月,Google 发布了 Android 8.1 Beta 最终版本,正式支持在今年发布的新款旗舰 Pixel 2 中搭载的 IPU(Image Processing Unit),用于加速图像处理和机器学习的 Inference:“Also, for Pixel 2 users, the Android 8.1 update on these devices enables Pixel Visual Core -- Google's first custom-designed co-processor for image processing and ML -- through a new developer option. Once enabled, apps using Android Camera API can capture HDR+ shots through Pixel Visual Core.”
2017 年 5 月,Google 在年度 I/O 大会上,宣布会推出 TensorFlow Lite,运行在下一代 Android 系统将会新增的 Neural Network API 之上,使得开发者可以将 TensorFlow 深度学习框架创建的模型移植到移动端运行。10 月 25 日,Google 发布了 Android 8.1 Beta 开发者预览版,正式推出了 NN API:
11 月 14 日,Google 发布的 TensorFlow Lite 已经支持 NN API 了,而 DNNLibrary 是一个 GitHub 上开源的库,支持运行通过 DNN Convert Tool 转换的 Caffe 模型。
2017 WWDC 上,Apple 发布了支持 Caffe、TensorFlow 等深度学习框架,以及 SVM、XGBoost 、 sklearn 等机器学习模型的 CoreML。12 月 5 日,Google 发布文章 Announcing Core ML support in TensorFlow Lite,宣布已经和 Apple 合作使得 CoreML 支持 TensorFlow Lite。
2017 年 4 月,Facebook 宣布开源面向 Edge 端设备的深度学习框架 Caffe2,其主要作者 贾扬清在 F8 上说:“在移动端进行机器学习任务有以下好处:保护隐私,因为数据不会离开你的移动端;避免网络延迟和带宽问题;提升用户体验,比如优化 feed ranking 功能。所以我们开始着手,从底层建造一个专门为移动端优化的机器学习框架。”
2017 年 9 月,百度发布了 Mobile Deep Learning library,腾讯早些时候也开源了类似的 ncnn 框架。
2017 年以来,Google 开源了专为移动端优化的 MobileNets 模型;Face++ 提出了适合移动端的 ShuffleNet 模型。OpenCV 3.3 内置了支持多种深度学习框架的 DNN。
从上面的内容可以看到,从芯片制造商到移动操作系统提供商,再到深度学习框架社区,都为 On Device AI 做了很多准备,而且,从 GitHub 和国内外的开发者博客上,我们看到了非常多基于 CoreML、基于 TensorFlow 等深度学习框架的移动端应用案例,体现了开发者对这个趋势的极大热情。无论我们是哪个移动平台的开发者,都应该清晰认识到这个趋势,及时点亮自己的技能点,为用户提供更智能、更人性化的应用。
AI 在智能手机上有哪些应用场景呢,对于不同的开发者来说,如何确定自家的应用是否需要 AI ?如果需要,如何引入?
智能手机制造商(比如 Apple、华为等)和数以万计的应用开发者都可以在自己的 apps 中应用 AI 相关的技术,让自家的 apps 更好地服务用户的同时,提高竞争力和市场占有率。
本部分将从智能手机制造商和应用开发者这两种角色出发,分别进行讨论。
2017 年,最具有明星气质的两款配备 AI 能力的手机是 iPhone X 和 华为 Mate 10,这两款手机有以下共同点:
搭载了专门针对 AI Inference 能力优化的硬件芯片。iPhone X 搭载了 A11 Bionic 芯片,可以加速神经网络模型运行,支持 Metal 2 的 GPU 计算能力,也可以用于深度学习模型的 Inference。
为开发者提供了 Inference 加速能力的 API。Apple 在最新的 iOS 11 中提供了 CoreML,通过 coremltools 将常见的传统机器学习算法模型(比如 XGBoost、SKLearn)和主流深度学习框架训练得到的模型转化为自有格式 .mlmodel (一个整理 CoreML 格式模型的网站:coreml.store),之后该格式的模型可以打包在应用安装包里面,并在运行时加载进行 Inference;华为在 Mate 10 发布后推出了 HiAI 移动计算平台业务 ,进行之前发布有 NPU 的麒麟 970 芯片组时提到的 OpenAI 生态系统建设。
在系统应用中应用了 AI 能力。iPhone X 的 Face ID 、动态表情包和 Siri 就用到了面部识别、语音识别以及 NLP 等相关 AI 能力;华为的智能相机应用、机器翻译和语音助手等也具备 Image Classification、Object Detection 等 AI 能力。
如果大家之前对这两款机型有关注和了解,对这些应该不陌生。接下来,我们整理了对于智能手机制造商来说,移动端 AI 有那些应用场景。
识别自拍或者人像拍摄,提供背景虚化。
拍摄时放大画面,进行自动像素增强。
对于智能手机制造商来说,能够提供的系统应用毕竟是有限的,更多的用户需求需要应用开发者提供各自的解决方案。对于应用开发者来说,其实也可以提供基础类应用,比如拍照应用、智能语音助理等,如果能够借助手机制造商提供的硬件计算能力,达到比系统自带的基础类应用更好的效果,也会得到用户的欢迎。比如 Google 的输入法在 iOS 平台就比较受欢迎,该应用采用了 Google 于上半年提出的 Federated Learning,能够在提供个性化能力的同时,在线优化输入法的预测模型,并在整个过程中不上传用户的输入数据记录,保护了用户隐私。
除了基础类应用,下面这些应用场景对开发者来说也非常值得考虑:
最后,我们还需要强调的是,无论是智能手机制造商还是应用开发者,都需要考虑对用户隐私的保护。当我们可以在移动端高效运行机器学习以及深度学习模型时,有很多任务可以在移动端做,用户的数据无需上传到服务器进行处理,在保护隐私的同时,也减少了流量消耗和服务器成本。上面提到的 Google 推出的 Federated Learning 就是这样做的,Apple 也在自己的官方机器学习博客中介绍了自己的类似做法:Learning with Privacy at Scale。
今日荐文
点击下方图片即可阅读
AI前线 2018 新年送礼活动还在继续哦,请抓住机会~~