在深度学习的领域里,最重要的是数据和运算。谁的数据更多,谁的运算更快,谁就会占据优势。因此,在处理器的选择上,可以用于通用基础计算且运算速率更快的GPU迅速成为人工智能计算的主流芯片。
2017年度GTC技术大会上,英伟达推出了他们公司最新研发的GPU——Volta。该芯片的核心是一款称为“TensorCore(张量处理器)”的人工智能加速器,这是开发下一阶段AI应用的硬件保障。然而,我们需要升级软件,更新AI算法,其原因有两点:一是现有的AI算法不能充分利用这个加速器的性能,二是为了获得AI开发中另外的突破。
如果我们能充分利用这种新代芯片,不仅将大大推进AI应用的进展,甚至可能会创建新的AI应用。比如说,AI算法可以利用该种芯片的高速运行速度,来更好地理解和综合分析人类语言。语音识别系统将极大地完善,音频的转录将更加准确,计算机将会有能表现出语言风格和情感的语音系统。
有许多公司已经认识到了AI所具有的巨大潜力,还研发出了强大的芯片,以期获得AI的广泛应用。例如,英伟达开发的GPU以及谷歌研发出的TPU。
这些芯片有一个共同点,就是它们都根据程序局部性原理来不断优化算法。为了获得局部性优势,需要AI芯片和AI算法的共同支持。目前,新兴的AI芯片已经可以为此提供基础框架(例如Volta的“TensorCore”),但是更多的AI算法还没有获得与这种芯片的相应升级。通俗地说,当下通行的算法不能充分利用到该芯片的高速运行速度。
AI芯片的第一阶段是并行驱动,即同时执行多种任务。
在海量数据集上训练大型神经网络可以充分展示其易被现有并行芯片利用的显著并行性。然而,目前来看,内存提取性能的发展远远不能满足人们的需求。最终这些新芯片会面临“内存墙”的困境,即内存性能会严重限制芯片性能的发挥。
为了进入到下一阶段,AI芯片仍要在局部性上下功夫。局部性可以体现为重复引用同一个变量。打个比方,您在杂货店里购物,您要按照购物清单买东西,清单一共列有10件商品,您如果想加快寻获商品的速度的话,可以请10个朋友,让他们分别找到1件清单上商品。这种方法虽然是并行驱动的,但效率也非常低下,因为清单上不同的物品可能摆在一起,这就会产生让不同的朋友来找寻相邻物品的情况,从而降低了效率。一个更好的办法是让每个朋友去一个不同的过道,并只找那个过道的物品。这就是局部性解决目前“内存墙”困境的方式。
新代AI芯片需要具有显著局部性特点的算法相适应。目前,并不是所有的AI算法都能胜任这一任务,因为它们不具备显著的局部性。计算机视觉算法由于其大量使用卷积神经网络而在局部性上显有优势,但语言和语言应用中所使用的复现神经网络则需要稍加变动(尤其要对其推理能力进行优化),以改善其局部性。
在百度的硅谷AI实验室,研究人员尝试了几种完善算法的方式,来挖掘局部性的潜力。早期的实验显示出了我们非常可能克服这一困难的迹象。例如,研究人员发展了RNN网络,让其在低批量大小下达到了30倍速的提升。这开了一个好头,但未来AI芯片的性能还要有更大的提升。另一个研究方向是整合了来自卷积和复发神经网络的想法得来的,但这个方向的最优解还在后头。
深度学习的AI算法计算有限,迄今为止的突破都是得益于运算速度更快的计算机的出现。然而,当下的算法已经取得了突破性进展,而且已经在语音识别,机器翻译和人类语音综合方面得到了成果。目前,进行下一阶段AI算法研发的硬件已经到位。早期实验中的种种迹象表明——我们正处于下一代算法开发的前端。预计下一代算法能充分利用目前AI芯片的性能,并且可以引领我们得到其他方面的突破。
精彩评论