人工智能和机器学习的爆炸式发展正在改变计算的本质。
说这话的是谷歌软件工程师Cliff Young,而谷歌是人工智能最大的实践者之一。
Cliff Young上周在硅谷的一个芯片研讨会发表了主题演讲,他说,AI的使用已经达到了一个“指数增长阶段”(exponential phase),与此同时,关于半导体发展的经验法则——摩尔定律——已经陷入停滞。
摩尔定律的内容是:集成电路上可容纳的晶体管数目,约每隔两年便会增加一倍。经常被引用的“18个月”是由英特尔的David House提的:每18个月,芯片的性能提高一倍。
“这个时间有点神经质,”Cliff Young说:“数字CMOS的增速正在放缓,我们也看到英特尔在10纳米芯片的生产方面面临困境,还有格芯(GlobalFoundries)已经宣布放弃了7纳米制造工艺研发,与此同时,深度学习进展迅猛,存在经济需求。”CMOS即Complementary Metal Oxide Semiconductor(互补金属氧化物半导体),是计算机芯片最常见的材料。
Young认为,由于传统芯片难以实现更高的性能和效率,来自AI研究人员的需求正在激增。他一口气列举了一些数据:
arXiv上关于机器学习的学术论文数量每18个月就增加一倍;
在谷歌,专注于AI的内部研究项目数量也每18个月增加一倍。
更为激烈的是,执行机器学习神经网络所需的浮点运算量每三个半月就翻一番。
Young说,所有这些计算需求的增长构成了“超级摩尔定律”,他称这种现象“有点可怕”,“有点危险”,“令人担忧”。
“为什么AI领域出现了这些指数级的增长?”他说,“部分原因是,深度学习确实有效。”
他说:“很长一段时间里,我的职业生涯都忽视了机器学习,因为那时尚不清楚这些东西会不会流行起来。”
但后来,图像识别等领域的突破开始迅速出现,很明显,深度学习“非常有效”。Young说:“在过去5年的大部分时间里,谷歌一直是一家AI-first的公司,我们以AI为基础重建了大部分业务,从搜索业务到广告业务等等。”
谷歌内部领导AI研究的是Google Brain团队,它的需求是“巨型机器”。例如,神经网络有时是通过他们使用的“权重”数量来测量的,这些变量被应用于神经网络,以形成对数据的操纵。
传统的神经网络必须要计算的可能有数十万个这样的权重,甚至数百万,谷歌的科学家们说“请给我们一个tera-weight级的机器”,让计算机能够计算一万亿权重。
这是因为“每次你将神经网络的大小增加一倍,它的准确率就会提高。”AI的规则就是越大越好。
当然,为了应对这样的需求,谷歌一直在开发自己的机器学习芯片,即“张量处理单元”(Tensor Processing Unit,TPU)。由于传统的CPU和图形芯片(GPU)跟不上速度,TPU以及类似的部件是需要的。
Young说:“在很长一段时间里,我们都踌躇不前,并表示英特尔和英伟达在构建高性能系统方面做得非常好。但我们在五年前跨过了这个门槛。”
TPU于2017年首次亮相,标榜其性能优于传统芯片,引起了业界轰动。谷歌目前已进入TPU的第三次迭代,不过是在内部使用,并通过谷歌云提供按需计算节点。
谷歌继续制造越来越大的TPU实例。它的“pod”配置将1024个单独的TPU连接在一起,形成一台新型超级计算机,而且谷歌打算“继续扩展”这个系统。
Young说:“我们正在打造巨大的多处理器计算机,具有几十petabytes的计算力。我们同时向多个方向推进,tera-ops级的也在继续开发。”
他说,这样的工程“带来了超级计算机设计中会出现的所有问题。”
例如,谷歌工程师们采用了传奇的超级计算机公司Cray所使用的技巧。他们将芯片中负责神经网络计算的“巨大的矩阵乘法单元”与“通用向量单元”和“通用标量单元”结合在一起。标量单元和向量单元的结合让Cray的性能优于其他处理器。
谷歌开发了自己的新型算法结构来编程芯片。所谓的“bfloat16”是一种表示实数的方法,可以提高神经网络数字运算的效率。bfloat16的全称是truncated 16-bit floating point(截断浮点数),被通俗地称为“brain float”。
TPU采用最快的内存芯片,即所谓的高带宽内存(HBM)。在训练神经网络时,对内存容量的需求也在激增。
Young说:“内存在训练中更加集中。不只是数亿个权重,还涉及处理神经网络激活变量的问题”。
谷歌也在调整编程神经网络的方式,以充分利用硬件。他们在数据和模型并行性方面做了大量工作,包括“Mesh TensorFlow”等项目,这是对TensorFlow编程框架的改编,目的是将数据和模型并行性在pod-scale上结合起来。
有一些技术细节Young不愿透露。他指出,谷歌没有过多地谈论“互连”(interconnects),即数据在芯片中移动的方式,只是说“我们有巨大的连接器”,拒绝提供更多信息。
Young谈到一些可能并不遥远的更有趣的计算领域。例如,他建议通过模拟芯片进行计算,这种电路将输入作为连续值而不是作为1和0来处理,这样可以发挥重要作用。他说:“也许我们将从模拟领域进行采样,在物理、模拟计算或非易失性技术方面确实有一些很酷的东西。”
249 thoughts on “谷歌工程师:机器学习论文18个月倍增,AI爆发带来“超级摩尔定律””