陆芃臣
摘 要:随着互联网技术、物联网技术、人工智能等技术的不断发展,作为各种算法、程序、软件的承载者——芯片的重要性也愈发凸显。各大互联网公司和科技公司也相继推出了人工智能芯片产品。随着人工智能技术的“热潮”逐渐退去,人们也随之质疑所谓的人工智能芯片是否真的“智能”。本文介绍了人工智能技术原理和人工智能芯片分类,并对未来的人工智能芯片作出展望。
关键词:人工智能;芯片;功能;分类
中图分类号:TP33 文献标识码:A 文章编号:1671-2064(2019)22-0049-02
0 引言
随着人工智能技术和芯片技术的不断发展,人工智能芯片已经从最初的概念落地,成为了新一代“网红科技产品”,而随着多家互联网巨头相继入局,人工智能芯片热度再次上升:预计到2020年全球市场规模将超过100亿美元,在这其中中国市场就独占了将近1/4。人工智能芯片行业增长非常迅猛,且发展空间巨大,因此目前全球的各大芯片公司都在积极进行对AI芯片的新布局。
为了抢夺市场,不同公司针对不同场景推出了各种各样的产品[1]:英伟达公司的GPU不仅应用于各大图像处理场景,更被众多实验室采购以作为深度学习的计算基础;谷歌为Tensorflow开发出专用的TPU来为用户提供计算服务,这种处理器的处理能力达到180Tflop;国内以寒武纪为首的诸多厂商也生产出了自己的AI芯片。如果说在传统的CPU等高端芯片领域技术壁垒高,后起国家难以进入,那么AI芯片则是一片蓝海,等待着科技工作者的进入。
1 人工智能芯片两大功能
顾名思义,人工智能芯片即为搭载人工智能的芯片,在不同的时代人工智能有着不同的实现方式和数学算法。而在今天,当我们谈起人工智能芯片时,我们更多的是在谈论搭载有人工神经网络的芯片,这是因为在当前的科技阶段,人工智能的发展主要依托于统计学原理与日益强大的计算机能力,而一个具体的人工神经网络也往往是单纯为某一个具体的问题而设计与训练的,比如识别人脸、特征提取等,显然,这与人们所想象的“机器人统治世界”的情景天差地别。
神经网络从构造到应用无非是要完成两个任务:训练与推理。神经网络并不是凭空得来的,一个表现优秀的神经网络需要大量的样本数据来完成其自身的训练,在这个过程中,神经网络在传统的线性传递函数中加入了“非线性函数”,即激活函数,来完成一种空间映射。在这种空间映射中,神经网络将数据的无用信息剔除,有用信息保留并进行非线性变换,以达到精确分类的目的。因此,神经网络的“产出过程”往往是:发现问题——问题建模——获取样本数据——训练网络——网络验证——网络确定——网络优化。在确定了网络之后,我们就可以将这种网络用语具体环境中以进行推理。而在当今的工业体系中,不同的群体所面临的网络构建环节往往是不同的。对于那些希望加速训练过程,提高产品迭代频率的研发与科学人员来说,他们需要的是能够加速计算、提高带宽的芯片,并且这种芯片的使用环境也往往不会对芯片功耗提出苛刻的要求;对于那些希望将芯片应用于具体场景中以加速实际情况判断的研发人员来说,他们需求虽然依然是加速计算,但他们的需求却往往是“定向”的,这是因为在网络训练成功后,其数据的流向与网络的机构就已经确定了,如果能够针对性地搭建一款芯片来完成相应计算,就可以大大加速解决这个特定问题的计算过程。
举个例子,对于大多数手机用户而言,他们并没有“构造神经网络”的需求,反而是更加需要一个可靠、快速的神经网络供其在具体应用场景中进行智能判断。例如,在前些日子风靡一时的谷歌“猜话小歌”微信小程序中,手机实时地将用户的绘画涂鸦上传至云端,并交由谷歌的人工智能系统进行判断,并且判断结果也会进一步影响人工智能的训練(即训练与推理是实时进行的);而很多女孩子所使用的“智能美颜”实际上也是软件将训练好的神经网络下载到数据库中,并根据用户的外形数据(例如脸型、眼睛的大小)进行智能判断,挑选出最适合用户的美颜方式进行美颜[2]。
由此我们不难总结,人工智能芯片也对应着两种功能[3]:训练与推理,其本质都在于加速计算,不同点在于在训练任务中每次迭代之后芯片的计算任务都有可能发生变化,这是因为拟合函数的过程本身就是不断变化的;在推理任务中每次迭代芯片所执行的任务都是相通的。在速度上虽然我们都希望尽可能地加速,但具体要求又不尽相同。例如,对于某些需要传输大量数据或是不能允许延时的应用如无人驾驶汽车的推断,就必须在边缘节点上自行执行推断(相应的,有些任务则可以先上传到云端,再由服务器进行运算,这样的任务往往对实时性要求不高)。在可以预见的未来,消费级的终端设备也需要满足自行推断计算的需求,这是当前的处理芯片远远达不到的。所以能够赋予设备足够计算能力来应对越来越多场景的AI芯片成为现在市场所最需要的。
在当前的历史阶段,智能手机毫无疑问是最为广泛的边缘计算终端设备,随着移动办公、娱乐的发展,用户对手机的计算能力的要求也原来越高,三星、苹果、高通等一众公司纷纷开始了自己的AI芯片研发之路。而传统的IP厂商也都在为各类边缘计算终端设备开发专用的IP产品。由此我们可见,手机的人工智能功能更多的是聚焦于“推理”而非“训练”,因此,手机制造厂商需要的是能够迅速进行人工智能推理的芯片系统,那么同样是芯片系统,为什么需要单独制造所谓的人工智能芯片呢?
2 人工智能芯片必要性与分类
在传统的冯诺依曼结构中,计算机将大量的资源留给了逻辑运算系统,即传统CPU的逻辑计算能力和串行执行能力非常出色,但在面对大规模数据运算时,尽管有多层流水线这种优化结构,但指令的数量仍然限制了深度学习的速度。传统CPU只有ALU模块是用来完成指令数据计算,其他各个模块都是为了保证指令能够一条一条的有序进行而存在的[4]。这种通用型结构对于传统的编程计算机模式非常适合,但对于需要大量计算的深度学习来说就不够了。
为了解决这个问题,工程师们一直在探求新的硬件架构,以求在根本上改善集成电路搭载神经网络的能力,从根本上来讲,这些新的硬件架构大体分为三类,分别是图形处理器(GPU),现场可编辑逻辑门阵列(FPGA),面向具体应用场景的片上系统(ASIC)。
GPU因其海量数据并行运算的能力被深度学习首先引入。经实验证明,12颗NVIDIAD的GPU可以提供相当于2000颗CPU的深度学习能力。但是同样,GPU也有局限性,它在应用过程中无法充分使用计算优势,而且无法编程,并且对深度学习的运行能效也远不如FPGA。然而,FPGA作为可编辑门阵列,计算能力依然有限且制造价格有限。
ASIC:ASIC是面向具体的应用场景所设计和制造的“专用”芯片,简单来说,通用的加速芯片GPU虽然能显著提高计算速度,但远远不如专门为某种计算设计的专用芯片。在目前为人工智能专门定制芯片的潮流已经开始初步显露了,以英伟达公司和寒武纪公司为代表,许多公司已经开始了这方面的研究探索。
FPGA:FPGA是在研发阶段常用的人工智能芯片,它就像是乐高积木一样,根据不同的引脚搭配,可以将芯片配制成不同的功能,因此可以模拟各种情况下的芯片。但其缺点在于规模过大,因此一般不应用于实际产品。
我们不难发现,当前手机上所搭载的人工智能芯片其本质上是ASIC的一种,是各大厂商为了应对大规模数据推理的问题所搭载的一种“神经网络加速器”[5]。当然,此处的“大规模”是相对而言,比起神经网络的训练过程,推理所需要的计算资源要小得多,但仍然远大于手机的日常使用所需的计算量。因此,搭载人工智能芯片除了能够节省CPU资源,更重要的是能够大大加快计算速度(手机上所搭载的ASIC往往可以搭载各种各样的神经网络,从这个角度上讲,更应该叫面向多个场景的集成电路)。
当然,手机所要面临的大规模数据计算问题未必唯此一条出路,实际上,无人驾驶等神经网络的应用场景也给了我们很多启示:我们完全可以将数据上传至云端,并交由大规模GPU或是ASIC进行计算并反馈结果,而具体哪种结果更能令人满意或未可知。
3 总结与展望
目前的AI运算都各具优劣,必须在合适的场景才能发挥作用,所以能够适合各种场景的芯片成为了现今市场所最渴求的產品。从这个角度上讲,AI芯片和传统芯片在很长的一段时间内都需要“和平共处”,无法相互替代,因此当前的人工智能芯片还仅仅只是起步阶段,距离真正进入大众生活还要走很长的路。
当然,对于现在人工智能芯片所处的比较滞后的状态,我们大可不必悲观,虽然现在有很多人对于人工智能芯片持怀疑甚至反对态度,但这的确是人类通向弱人工智能并进一步走向强人工智能所必须经历的阶段,在技术发展的每一个时期都不可能完美无缺、普适众生。相信在不远的将来,人工智能的发展将迈上新的台阶。
参考文献
[1] 尹首一,郭珩,魏少军.人工智能芯片发展的现状及趋势[J].科技导报,2018,36(17):45-51.
[2] 孙学全,冯英浚.多层感知器的灵敏度分析[J].计算机学报,2001,24(9):951-958.
[3] 宋光慧.基于迁移学习与深度卷积特征的图像标注方法研究[D].浙江大学,2016.
[4] 岳珂娟.冯·诺依曼体系结构在计算机组成原理教学中的重要性[J].计算机教育,2012(24):99-101.
[5] 司春杰,章磊,张诗欢.寒武纪:自主“芯”引领人工智能时代[J].浦东开发,2018,317(06):22-24.