随着华为旗舰机型Mate 10即将发布,科技媒体纷纷爆料,华为Mate10将首次在智能手机历史上,搭载一颗人工智能芯片。其实早在华为半年业绩发布会上,华为余承东就透露,预计将在今年秋季推出人工智能芯片,而根据目前最新的消息,这颗人工智能芯片极有可能就是搭载在麒麟970之中的寒武纪芯片。
当然,目前Mate 10的最终规格还没发布,具体还要期待10月16日的慕尼黑发布会,上述消息仅是我们的合理猜测。如果属实的话,意味着Mate 10将成为全球首款具备人工智能芯片的机型,这将会为业界带来怎样的冲击?毕竟智能手机自乔布斯后,再无革命性的范式进步。
这无疑是一个有趣而又重要的问题,本文接下来将看看寒武纪芯片的前世今生,实际上这颗芯片更为精确地说,是一款深度网络加速芯片,其本身并无梦幻的AI技能,而其加速功能,又究竟能在何种场景上带来逆天的变化?
寒武纪芯片是何方神圣?
根据目前最新消息,麒麟970极有可能通过IP授权的方式搭载寒武纪人工智能芯片,本文这里先解释一下IP授权这一概念。目前无论是高通骁龙还是海思麒麟,都不是严格意义上的纯CPU芯片,而是一块SoC(System-on-chip)芯片。所谓的SoC即芯片上集成了若干不同的功能模块。以高通骁龙801为例,801上除了四核Krait 400 CPU外,还集成了Adreno 330 GPU、Snapdragon Camera相机图像信号处理器、蓝牙、GPS、WIFI以及视频音频编解码等模块,上面的每一个这些模块通常都是SoC厂商上游的技术提供商通过IP(intellectual property,知识产权)提供授权,当然这样做的好处是技术提供商可专注于IP方案设计,而芯片封装工作可交由高通等SoC商负责,这样双方扬长避短,共同加速芯片的上市及更新迭代速度。
麒麟970上搭载的寒武纪IP,主要用于深度神经网络(DNN)中的复杂计算,而深度神经网络正是目前人工智能技术的半壁江山,这样一来麒麟970将成为全球首款具备人工智能处理能力的SoC芯片。当然目前寒武纪这家公司对于大众来说还十分陌生,这里先对寒武纪进行简单的介绍。
寒武纪科技(Cambricon)是中科院计算所孵化的一家独角兽公司,2016年推出的寒武纪1A处理器(Cambricon-1A)是世界首款商用深度学习专用处理器,面向智能手机、安防监控、可穿戴设备、无人机和智能驾驶等各类终端设备,最近获得了包括阿里在内的1亿美元A轮融资。这家成立于2016年的AI芯片公司以火箭般的速度发展,据寒武纪称,其在2016年已经实现了盈利并获得1亿元量级的营收。而华为与寒武纪的合作,很可能是因为华为与中科院计算所长久以来不菲的合作关系,早在2011年,华为就与中科院计算所成立了“中科院计算所-华为联合实验室”。
当然打铁还得自身硬,寒武纪科技创始人陈天石教授是人工智能硬件加速的早期倡导者,连谷歌在其万众瞩目的人工智能芯片TPU的论文之中,全文共引用了寒武纪团队成员发表的6篇论文,在全球人工智能公司中,能享受到谷歌如此待遇恐怕实属凤毛麟角。
而对于华为而言,在产品中具备这样一个中国完全自主知识产权的人工智能芯片IP,或许更加是一项营销利器。
AI芯片将为手机带来何种计算能力?
大家还记得去年火爆的俄罗斯修图应用Prisma吗?
Prisma使用了深度神经网络来获取著名绘画大师和主要流派的艺术风格,然后对用户的照片进行智能风格转化,一张普通的照片通过Prisma能变成具备令人惊叹艺术效果的作品,下面是一组示例:
从技术原理上说,Prisma使用了GAN对抗生成网络,是一款典型的基于深度网络的人工智能应用。但用过Prisma的人都知道其实际体验并不是非常友好,在最初的时候,用户首先要上传待修的图片到Prisma服务器上,经过一段时间才能够下载修好的作品。但随着Prisma的火爆,用户云端等待时间越来越长,国内用户更是要忍受连接到俄罗斯服务器的爆高网络延迟。尽管后来Prisma实现了本地计算,但其速度仍然比较缓慢,部分风格滤镜需要计算10秒以上才能完成图片转换,当然相比此前只能依赖云端计算,其体验已经有所进步,但与美图等主流修图应用的修图速度仍然无法相比。
Prisma上述这些体验的不完美,其主要原因是深度神经网络的执行需要大量的计算。一般而言,建立一款如Prisma的人工智能应用,需要通过训练(training)和推断(inference)两个过程:训练是通过大量的数据输入,或采取增强学习等非监督学习方法,训练出一个神经网络模型,如对于Prisma来说,在训练过程中神经网络学习了大量的绘画风格。一旦训练完成,即可使用由训练确定的权值进行计算,如Prisma中通过训练好的网络改变图像风格,这个应用的过程被称为推断(inference)。
由于深度神经网络本身的特征,在推断过程中往往需要大量的权重计算,这在服务器端通常没什么问题,但一旦放在手机等设备上就有点捉襟见肘了。如Prisma的手机本地端计算,虽然通过大量优化显著降低了模型的复杂度(当然这样做的直接后果就是效果变差了),但对于手机CPU来说仍然负荷很大。
这样一来问题就摆出来了,如果要让手机掌握更多的人工智能应用,需要让手机具备强大的计算能力做inference,否则用户体验难以保障,但摩尔定律毕竟放在哪,CPU本身目前难以具备如此的计算能力,这就是深度神经网络在手机等各种嵌入式设备上的应用难题。
这时候,深度网络加速芯片应运而生了。
深度网络加速芯片是怎么一回事?在深度神经网络的应用过程中,人们发现实际上复杂的神经网络架构中计算量通常都集中在少量的计算类型上,比如矩阵运算,如果设计一款专门优化的硬件芯片从事这些繁重的计算,正如当年CPU对复杂的图像运算力不从心,催生了GPU的出现,岂不是把问题给解决了?
业界确实是这样做的,如谷歌自家推出的深度网络加速芯片TPU,定义了十几个专门为神经网络推理而设计的高级指令,比如矩阵运算、计算激活函数、读取/写入内存等,相比用CPU进行相同的计算,TPU的功耗效率(performance/Watt, 每耗电1瓦的性能)比CPU高出80倍,下图列出的是谷歌TPU部分核心的高级指令。
这时候,大家是不是想起了比特币矿机中的ASIC(专用集成电路)呢?没错,深度网络加速芯片也是一款ASIC,只不过比特币的ASIC只能进行哈希运算,深度网络加速芯片则定位于承载若干种深度网络的常用计算。
而华为Mate 10即将搭配的寒武纪芯片,也正是这样的一款深度网络加速芯片。由于目前寒武纪芯片尚未正式公布,其真实性能情况无从知晓,但从寒武纪科技自家去年在计算机架构顶级会议ISCA上发布的论文《Cambricon: An Instruction Set Architecture for Neural Networks》中,我们就能够管中窥豹。论文中提及了寒武纪(Cambricon)是一款面向于目前神经网络技术,集成了常量运算、向量运算、矩阵运算、逻辑运算、数据转换以及控制指令等功能的深度神经网络加速芯片架构(…..we propose a novel domain-specific Instruction Set Architecture (ISA) for NN accelerators, called Cambricon, which is a load-store architecture that integrates scalar, vector, matrix, logical, data transfer, and control instructions, based on a comprehensive analysis of existing NN techniques.),其主要定位是解决深度神经网络中推断(inference)所涉及的复杂计算问题。
到此为止,华为Mate 10上的麒麟970芯片,所搭载的人工智能模块就相当清晰了:与其说它是一块人工智能芯片,更准确地说是一块深度网络加速芯片,主要用于加速人工智能中深度神经网络所带来的复杂计算。
若真如此,华为粉丝们的热切期待恐怕会失望了,麒麟970本身不会带来任何梦幻的智能,而是赋予了手机本身处理深度神经网络中前所未有的计算能力,让如Prisma等需要跑在深度神经网络上的应用能够有革命性的体验。
智能手机迈向智慧手机:场景为王
麒麟970上的深度网络加速模块,如果要为业界带来冲击的话,我认为首先是让大家深入思考,在手机等移动设备中加入深度网络硬件加速,是否是一个未来的趋势?消费者是否愿意为这块芯片买单?当然这个问题是很显浅的,其核心在于是否能为消费者带来有价值的应用场景。
深度神经网络作为人工智能目前的半壁江山,其在智能语音、计算机视觉中有广泛的应用,前者典型的应用如Siri等智能语音助手,以及基于此目前火爆得不能再火的智能音箱;而后者在消费端莫过于各种类似Prisma的修图应用。
通过深度神经网络,能实现图像编辑的智能化。比如以往需要大量用户手工操作的瘦脸、美颜、瘦腰、拉长腿,通过深度神经网络的加持,用户可以如使用Prisma的体验一般,智能化搞定全部。当然图像智能编辑是目前计算机视觉中的热门应用,未来期待还有更多梦幻的应用出现。
对于很有可能搭载寒武纪的Mate 10,这里大胆猜测一句,其广告语会是“智能摄影大师”吗(笑)?
图像识别是另外一个应用点,比如,用户在手机中标准了一张人脸后(比如同事A),通过图像识别,手机能把图库中所有含有同事A的照片都筛选出来,这个运算在当前的智能手机上会非常缓慢,但有了深度网络加速芯片后变得可能。
语音识别是深度网络的另外一个核心应用,目前我们都知道,Siri、出门问问等语音助手都需要在联网的状态下才能使用,原因是语音识别的inference放在了云端处理,而同样通过深度网络加速芯片,或许能实现手机本底端的识别,即在无网络的情况下,依然能使用智能语音助手实现有限度的应用,比如让助手找出通讯录中符合条件的某个人。
当然,站在市场营销层面,有很多实际上并不需要深度网络加速芯片去加速的应用,都可以通过混淆概念的方式纳入消费者的想象之中,比如拿起手机亮屏、在漆黑的环境中自动打开手电等。
然而我们客观地说,目前智能手机上需要使用到深度网络加速芯片去加速的应用,并不能算很多,其中真正能算是有效需求的更加寥寥无几。在安防摄像头、无人机、自动驾驶汽车中融合人工智能专用芯片无疑是未来的清晰趋势,毕竟如无人驾驶汽车中,我们不能指望使用云端的方式去做inference,毕竟网络一旦出现问题,难道放任汽车撞树上?但智能手机这个充分竞争的领域,任何功能的革新都需要经过市场的长期考验,而其中的关键还是在于场景。
而这次极有可能搭载了深度网络加速芯片的Mate 10,将会为我们带来什么尚未想象到的场景?或许这点,才是我们真正需要热切期待的。