深鉴科技姚颂:GPU时代将过 硬件平台迎来架构创新
数据、算法和算力被称为现阶段人工智能爆发的三大推动力,这篇文章主要探讨其中最核心的支撑——算力,形象地说就是AI的“大脑”。
深鉴科技联合创始人兼CEO姚颂近日在「华兴·湃」人工智能论坛上做了题为“新时代的AI大脑”的主题演讲。他提出,过去几年GPU引领了AI时代的到来,但已逐渐显露出局限性,未来硬件平台将迎来架构创新,并从技术驱动走向业务驱动,从完全云端变成云和边缘的配合。此外他也就人工智能的场景选择、深度学习的算法模型等问题做出了分析与判断。
「华兴·湃」是华兴的报告会议系列论坛。湃形容水波相击之声,亦有冰镇冷浸之意。华兴希望搭建共享灼见的平台,将投资机构、企业汇聚于此,碰撞思想火花,激荡行业澎湃,弄潮新经济。
演讲嘉宾 | 深鉴科技联合创始人兼CEO 姚颂
以下是演讲实录:
GPU 驱动AI时代的到来
从本质上看,三大要素导致了AI在这一阶段的成功:数据、算法和算力。数据源自互联网时代以及移动互联网时代的大量存储,以及存储器技术的提升。有了数据之后,在深度学习之前,以原来的算法是没办法很好利用这些数据的;但有了深度学习以后,我们的算法能够把这些大规模的数据用起来。另外一个核心问题是算力,如果现在有1000万张图,但没有很强大的芯片,其实也没办法把神经网络训练出来,没有办法让算法利用这些数据。所以算力是硬件方面最底层、最核心的支撑。
AI这个概念从六十年代开始出现,到九十年代,CNN之父Yann LeCun,现Facebook人工智能研究院院长,在1998年发表的一篇文章中就提出了神经网络,叫做LeNet,这个网络是用来做MNIST手写数字识别,它能够识别0到9,每个图像都是黑白的。那个时候LeNet已经具备了今天CNN的雏形,但是短暂繁华后就被迅速淹没了。之后大家都在做SVM支持向量机,以及其他传统的机器学习方式。在21世纪初,所有的算法都没有达到人的精确度,不够实用,浮于概念。
那到底是什么,让大家在这个时代都注意到AI,并认为AI在很多事情上能够碾压人? 这里我们还必须得感谢GPU,如果没有GPU的话,完全不会有这个时代。我认为英伟达公司做了一些非常有前瞻性、有价值的事情,其中最重要的事情是他从2007年开始把一个纯粹的显卡变成了一个General Purpose的GPU。英伟达推出了CUDA平台,用户可以写CUDA对GPU编程,然后可以对GPU编程以后做变形计算,其实是颠覆了CPU原有的处理结构,我觉得这是AI时代最有前瞻性的举动。
谷歌2012年开发出了猫脸识别技术,即在大量图片中识别出哪张是猫,他们当时对这件事情引以为豪,但在那个时代,需要用1000台服务器,16000个CPU,花很长时间才训练了猫脸识别出来。而在同年,ImageNet夺冠的Geoffrey Hinton教授的LeNet只用了两块GPU,花了5到6天就把这个神经网络训练了出来。现在这个节点,所有做AI应用的公司全部都在用GPU做训练,所以必须要感谢GPU引领了这样一个时代的开启。
从工艺创新走向架构创新
但是现在这个时间节点我们已经发现GPU不够了,大家会发现在实际应用场合中,它的功耗、延迟等等都会有一些问题。这就是为什么大家都逐渐开始关注一些新的硬件,比如微软采购了大几十万到一百万块的FPGA,把它很多的计算系统,比如搜索与语音识别等都放到FPGA上去。再比如谷歌也针对于自己的应用需求,开发了他的TPU,所以说这是一个大的趋势。
那到底是怎样的一个趋势呢?这也是我的标题里面,这到底是一个怎样的时代。大家回过头来想我们之前走的路,叫做摩尔定律,我们每18个月,同样的价格能够买到的芯片性能翻倍,或者每18个月同样面积上的芯片,上面晶体管的数量翻倍。这是一个半导体行业经久不衰的、已经持续了好几十年的定律。所以,我们其实在CPU上做一些小的设计、更新,架构从60纳米变成45纳米、28纳米,一步步来,每做一次性能就提升一些。
但现在我们发现这个时代已经开始了变化,它不再是由工艺变化的曲线来驱动,而是进入了架构创新的阶段。GPU相对于CPU就是一个架构创新,最开始为图像显示设计,后来发现这个东西做大规模粗粒度并行可以用,现在大家也在做很多针对于神经网络新的架构。
那为什么要做一个新的架构?它的发展已经从单纯的技术驱动到业务驱动,技术驱动是说我最新的制造工艺已经变成了7个纳米、5个纳米,我就直接能造出一个更强的芯片出来。但如果要做一个新的架构,就一定要跟业务粘得很紧。因为架构越专用,跟业务贴得越紧,就会缺失很多其他的市场,所以大家会必须做得越来越专。所以整个行业的大趋势,最开始用CPU,后来用GPU,现在很多人关注FPGA,也有很多的公司专注于深度学习方面的ASIC专用芯片。
深度学习的两个部分
大家都知道深度学习其实分为两个部分,Training和 Inference,要贴近应用的需求来定义你自己系统芯片的结构。Training,即拿海量的数据喂我的神经网络,然后它通过不断做误差反向传播算法,之后能够从这些数据中学到一些Feature来描述这个事情。关键点在于它是海量的数据,比如说之前最大的学术集叫ImageNet,一个图像的数据级是100万张图,是非常大的人脸库,可以追求极致的高性能,而这些东西都放置在服务器里面。
但是它其实还有一部分,如果我用1亿张图训了一个模型出来,那就到了Inference层面,10个兆的算法模型。如果每一张图片都用这个算法模型处理一次,其实它的要求是不一样的,在真正的应用端首先用的是低延迟,因为低延迟意味着安全性,也意味着用户体验。
云端大脑与边缘计算
海量的数据一定是存在云端的服务器,那训练毫无疑问是在云端做的,还有什么事情应该在云端做呢?
比如语音搜索,语音识别其实是在终端做的,但是你语音识别完,我要回去调用你的搜索引擎。那是一个非常庞大的数据库,非常庞杂的系统,这个事情只能在云端做。所以既然你的数据要返回到云端,为什么不直接在云端算呢?
但是,在前端要做的事情其实非常多,比如说自动驾驶。自动驾驶最关键的一个词是什么?安全。前几天我在一个车展上,看到一个日产的车在演示自动刹车系统,那个是撞倒人之后才停。系统需要非常稳定,保持非常低的延迟,并且做出非常高精准的判断。
另一方面,跟商业模式也有关系,比如监控摄像头。如果我现在要在云端做,我的1080P的视频或者4K的视频,每一个摄像头得拉一个专线,成本非常高。同时,摄像头有摄像头的公司,软件有软件的公司,平台有平台的公司,整合非常困难。所以大家想到整个市场格局,我把整个智能都往前端放,不管你后端是什么平台,什么软件,反正我前端已经把识别做好了,我把可能的人脸抓拍的图抓回来,这样就能大规模节省成本。
所以我们的发现是,如果你在云端需要海量的数据去做检索,有非常隐私的数据,需放在云端做。但是如果你要保证很好的实时性,很短的延迟,很好的安全性,可以放在边缘。把大脑放在边缘计算,是一个更加的灵活,更加稳妥的方式。
深度压缩:更小、更快
我们还有其他的工作,比如减少读内存的数量,把整个算法的复杂度降下来。所以我们很做了一个核心的事情叫深度压缩。你的神经网络里其实也有非常多对结果没有影响的冗余,如果可以发现并去掉这些冗余,模型就更小了,运算速度就更快。读的内存少了,功耗也降下来了。所以这个事情可以变得更小、更快,功耗更低。
因此,这是整个工业界目前开始研究的一个方向。针对于这种压缩后的神经网络,我们有两款专用的神经网络处理器的设计,一款叫做Aristotle,是针对于CNN。哪怕在相对落后的FPGA平台上,我们单独延迟这个指标,已经相对GPU取得了明显的降低。
另外,我们也有一块针对RNN的专业处理架构,把它取名叫Descartes,这一块是针对RNN, CNN跟RNN最大的不同,是CNN每个参数被复用很多遍,RNN每个参数基本不被复用,所以我们用全新的架构来做这个事情。
基于这样的技术,我们在智能安防提供针对视频结构化,针对人脸前端的设备等一系列的解决方案,用户可以把你的算法非常轻松地放到我们平台,并且可以实现非常好的加速。
观点回顾如下:
第一点,应该承认GPU驱动了AI时代的到来,但是到这个节点GPU确实开始显露出局限性。所以我们的硬件平台从工艺创新走向了架构创新,从技术驱动走向了业务驱动。
第二点,云端的AI大脑,如果需要海量数据,它是不可或缺,但在很多使用场合我们都开始注重到边缘计算,可以在边缘直接做感知、控制、决策。
第三点,深度学习计算其实是带宽为王,很多东西并不是算不够,而是读不够。GPU不断在迭代新的Memory技术,但也会遇到一些明显的瓶颈。