深度学习的发展会带给硬件架构怎样的影响?
张康康2019 ISSCC 大会于2月17—21日在美国旧金山开幕,Facebook 首席 AI 科学家 Yann LeCun 在会上发表了主题演讲「深度学习硬件:过去、现在和未来」,详细介绍了深度学习研究的发展将如何影响未来硬件架构。
如今,只要在网络上搜索“深度学习”算法,都会显示很多相关的信息,在过去的数十年里,人工智能已经越来越成功地应用于生物识别、语音识别、视频识别、翻译等。国内更是诞生了诸如旷视科技、商汤科技、极链科技Video++、依图科技等优秀人工智能初创企业。设计人员将大量高度并行的计算加载到硬件上,尤其是最初为快速图像渲染而开发的图形处理单元(GPU)。这些芯片特别适合于计算密集型“训练”阶段,该阶段使用许多经过验证的例子来调整系统参数。在“推理”阶段,其中部署深度学习处理的输入,需要更大的存储器访问和快速响应,目前已经可以使用GPU实现。
深度学习与GPU
为了快速应对增长的需求,许多公司都正在开发能够直接赋予深度学习能力的硬件,迫切的需要进行推理以及培训。近年来随着深度学习的迅速发展,卷积神经网络(Convolutional Neural Network)被广泛使用,特别是在图像识别场景中的应用。为了满足更多场景应用,需要有一种能够根据实际场景需求替换不同CNN网络模型的系统框架。在过去的20年里,视频、游戏等产业推动了GPU的进步,其绘制图形所需的矩阵正是深度学习所需的计算类型。
GPU技术的进步则是推动了神经网络的发展,因为在没有GPU的情况下训练深度学习模型在大多数情况下会非常缓慢。许多人把生产中深度学习的想法想的过于复杂,我们可以在生产中使用CPU和选择的网络服务器进行深入学习。生产中进行训练是非常罕见的。即使你想每天更新你的模型权重,也不需要在生产中进行训练。这意味着你只是在生产过程中进行“推理”,比“培训”更快更容易。你可以使用任何你喜欢的Web服务器,并将其设置为简单的API调用。如果能够有效地批量处理数据,GPU只会提供更快的速度。
GPU在处理图形的时候,从最初的设计就能够执行并行指令,从一个GPU核心收到一组多边形数据,到完成所有处理并输出图像可以做到完全独立。由于最初GPU就采用了大量的执行单元,这些执行单元可以轻松的加载并行处理,而不像CPU那样的单线程处理。另外,现代的GPU也可以在每个指令周期执行更多的单一指令。所以GPU比CPU更适合深度学习的大量矩阵、卷积运算的需求。深度学习的应用与其原先的应用需求颇为类似。GPU厂家顺理成章的在深度学习,找到了新增长点。
深度学习发展是否出现“瓶颈”
我们之所以使用GPU加速深度学习,是因为深度学习所要计算的数据量异常庞大,用传统的计算方式需要漫长的时间。但如果未来深度学习的数据量有所下降,或者说我们不能提供给深度学习所需要的足够数据量,是否就意味着深度学习也要进入“瓶颈”了呢?
做深度神经网络训练需要大量模型,然后才能实现数学上的收敛。深度学习要真正接近成人的智力,它所需要的神经网络规模非常庞大,它所需要的数据量,会比我们做语言识别、图像处理要多得多。假设说,我们发现我们没有办法提供这样的数据,则很有可能出现瓶颈。
目前,深度学习还在蓬勃发展往上的阶段。比如我们现阶段主要做得比较成熟的语音、图像、视频方面,整个的数据量还是在不断的增多的,网络规模也在不断的变复杂。可以说深度学习是GPU计算发展的关键,谁能找到最适合深度学习的模式,谁就是胜利者。
结语:
深度学习经过这么长时间的发展,在网络的种类、复杂程度和处理的信息量上都发生了天翻地覆的变化。当前,网络种类上,从早期的 AlexNet 和 GoogleNet 到现在各企业推出的 GAN以及各种深度强化学习的网络,它们各自网络结构都有不同,开发者在适应最新的网络上常常会遇到一些麻烦。处理的信息量也在成倍地增长,算力需求越来越高的情况下,也将对搭载处理单元的硬件有着更高的要求。