谷歌更高效的改革者会减缓或加速人工智能的军备竞赛吗

互联网2020-07-27 23:08:20
导读由于更多的电路被塞进了同一块硅晶片区域,技术的前景总是更多、更快、价格更低。和人工智

由于更多的电路被塞进了同一块硅晶片区域,技术的前景总是更多、更快、价格更低。

和人工智能模拟,结果表明,基于最近的工作由工程师在谷歌,他们已经找到一种方法把“变压器”语言模型和版本运行在一个单一的图形处理单元,或GPU,而不是它通常需要多个图形处理单元操作。

这为用户提供了一个有趣的选择。如果你可以在以一种更容易使用的方式获得人工智能领域的顶级技术之间做出选择,你会选择后者,还是会选择扩大现有计算机预算的能力来做更多事情?

这就像在问,你是愿意花更少的钱买一台电脑,还是愿意花更多的钱买一台电脑?对于买家来说,这是一个经典的两难选择。

意图,至少,谷歌的科学家尼基塔Kitaev(谁还持有加州大学伯克利分校的位置,Łukasz皇帝,和安瑟伦Levskaya,是使变压器预算上可用的力量,一项发明他们取名为“改革者”。

他们在本周发布在arXiv预印本服务器上的正式论文中写道:“我们相信,这将有助于大型、富参数化的Transformer模型变得更加普及和可访问。”(谷歌也发表了一篇关于这项工作的博客文章。)

这是他们要解决的情况。在2017年,谷歌的Ashish Vaswani和他的同事引入了Transformer方法来建模序列数据,并引起了轰动。使用“注意力”来预测一个序列的元素的方法基于它附近的其他元素,这成为了许多语言模型的基础,包括谷歌的BERT和OpenAI的“GPT2”。

在谷歌的转换程序中使用“局部敏感”散列函数来减少需要存储在内存中的激活的数量。这些颜色表示数值相近的向量,这些向量可以组合在一起以加强存储。

问题是这些巨型模型需要大量的gpu来运行,主要是因为内存问题,而不是计算问题。gpu用于训练深层神经网络变压器、芯片等Nvidia V100往往与16或32 gb的内存,这是不足以保存所有参数的神经网络与几十层的神经元,以及矩阵每个神经元的激活并行网络试各种符号寻找合适的配对匹配。

以“XLNet”为例,它是去年在Transformer功能方面的一大飞跃。作者杨志林和同事们在他们的实现笔记中写道,他们所有的工作都是在谷歌的TPU芯片上完成的,“这种芯片通常比普通的gpu有更多的内存。”他们计算了什么适合将它转移到gpu:“在论文中使用gpu重新生成XLNet-Large SOTA的大部分结果是非常困难的(昂贵的)。”他们写道,需要32到128个gpu才能满足他们的TPU工作。

此外:谷歌表示,人工智能的“指数”增长正在改变计算的本质

问题不只是人们被限制使用某些形式的深度学习。更深层的担忧是,有关深度学习神经网络可能取得突破的说法,正被庞大的工程资源所掩盖。像谷歌这样的云巨头可能是在扩充资源,而不是真正在人工智能科学上取得突破。在Kitaev引用的一篇关于思维语义学的文章中,Anna Rogers很好地表达了这种担忧。

为了使Transformer更容易访问,Kitaev和同事实现了一些技巧来减少内存占用,比如散列。哈希是一种代码将一个位序列转换为另一个位序列的方法,它可以减少数据的总大小。在本例中,“对位置敏感的哈希”将在值方面相互接近的向量分组。这些是Transformer使用的“关键”向量,用来存储将要搜索的单词,以寻找注意力机制。

“例如,如果K的长度为64K,对于每一个气,我们只能考虑32或64个最近的键的一小部分,”Kitaev和他的同事写道。[“K”是键的矩阵,“q”是访问这些键的查询。]这消除了通常的n平方问题,该问题会使要存储在内存中的向量数量激增。

他们做的第二件大事是减少需要存储的神经元激活的总数。通常,它们都需要被存储,以便于通过遍历层激活来计算神经网络解的梯度的反向传播。随着神经元层数的增加,这种激活存储会膨胀记忆。但是Kitaev和他的团队采用了多伦多大学的Aidan Gomez和他的同事在2017年开发的一种叫做“可逆剩余网络”的技术。Gomez和他的团队采用了传统的ResNet,这样每个层的激活都可以从它后面的层的存储值重建,所以大多数激活根本不需要存储。

此外,人工智能正在改变计算的整个本质

“可逆变压器不需要在每一层存储激活,因此去掉了nl项,”Kitaev和他的同事写道,指的是网络的N层。

他们写道,有了这些效率,他们能够将一个20层的变压器塞进一个GPU。当然,他们不能直接将其性能与一个完整的64层变压器进行比较,因为变压器无法与同一个GPU兼容。但它们显示出的结果似乎具有竞争性。

但现在的问题是:Reformer也可以比Transformer在传统的计算机环境中运行快得多,在这种情况下,8个gpu并行运行,具有与完整Transformer相同的64层。“Reformer与使用完整Transformer获得的结果相匹配,但是运行速度更快,特别是在文本任务上,并且具有数量级的更好的内存效率。”

这意味着Reformer运行在大铁上,您可以处理潜在的数百万个“标记”,即书面作品的单个字符。作者提到了处理陀思妥耶夫斯基的《罪与罚》的所有文本,513812个代币,一台机器上的一个改革者有8gb的内存。您可以想象,如果Reformer在多台机器之间进行乘法运算,它就可以以更大的规模对数据进行操作。

免责声明:本文由用户上传,如有侵权请联系删除!