当吴恩达还在Google训练电脑矩阵使用人工智能,识别喵星人视频时,他并非一帆风顺。
Google在世界各地的数据中心拥有海量计算机,对于吴恩达的工作,计算量绝对绰绰有余。但配置如此强大的计算机集群并不是一件容易的事情,如果有一台服务器忽然当机(如果你同时使用1000台机器,这种事情几乎每天都会发生),就会减小准确性。
吴恩达透露,这是深度学习世界里众多问题之一,如今大数据和人工智能里最热的议题是:与云计算的发展不符。Google、亚马逊和Facebook已经使用云计算在数万台计算机上运行软件。
在吴恩达的人工智能实验后没多久,一位名叫Adam Coates的斯坦福大学研究人员想出了一个更好的解决方案,他用一种不同的微处理器,图形处理器GPU(Graphical Processing Unit),将三台计算机连贯在一起,让它们像是一个系统一样运行,结果与Google数千台计算机的运行效果是一样的。这绝对是一个非凡的成就。
Coates目前在吴恩达手下,就职与百度。他说,
“和以前支持人工智能的处理器相比,GPU在资源处理上有很大不同,不仅速度更快,同时能在更小系统上紧密整合,成本也得以降低。”
游戏玩家应该对GPU非常熟悉,他们会购买专门的显卡提升视频游戏体验。实际上,在吴恩达的Google人工智能试验之前,学术界也早已了解GPU,它具有强大的数学处理能力,对深度学习而言再合适不过。一开始,研究人员只为单一系统编写深度学习软件,而Coates则在很多基于GPU的计算机上构建深度学习网络。
Google和Facebook也在使用GPU,当然还有一些著名人工智能实验室,如橡树岭国家实验室(Oak Ridge National Labs)和劳伦斯·利弗莫尔国家实验室(Lawrence Livermore National Laboratory)。他们希望利用强大的芯片和速度超快的网络设备(现以广泛应用于超级计算机内)支持深度学习的计算能力。
超级计算机遇到深度学习
在橡树岭国家实验室有一个研究设施SNS(散裂中子源),它构建于2006年,曾引爆过世界上最强的材料中子束,帮助物理学家和化学家了解材料内部结构是如何形成的。
SNS产生了大量数据,它们需要被彻底分析。而科学家们相信,他们可以利用深度学习算法快速识别数据类型,提升分析能力。识别数据类型可是深度学习的专长。
但问题是,对于科学模拟来说,每次产生700TB数据似乎太正常不过了,不过这比美国国会图书馆所有信息加起来的量还要大。
不过,在高性能计算机网络的支持下,现在由GPU支持的深度学习可以解决上述问题。实验室的Titan超级计算机和Google云有些不一样,虽然它也是有数千台计算机组成的计算矩阵,但Titan可以在每台机器内存实现快速进出、交换数据,并且推送给其他机器。也就是说,研究人员已经能在Titan上利用深度学习算法。
Facebook也使用GPU,但负责深度学习的研究人员Yann LeCun还没有完全摆脱对CPU的依赖。他说:
“Facebook使用了基于GPU的基础设施来训练深度学习模型,传统CPU集群的处理速度的确太慢了。不过全新的多核CPU芯片,会与GPU产生差不多的效果。”
在人工智能被真正认识之前,极客们必须编写在超级计算机上运行的深度学习软件。但开发这样的软件可能还需要很多年时间才能完成。
吴恩达最初在Google构建“猫咪视频”的人工智能模型里,有10亿个参数,这才多少让计算机有了点儿人类认知的能力,可以区分照片和视频里的内容,比如是猫咪还是仓鼠。
劳伦斯利弗莫尔实验室已经构建出了包含150亿个参数的软件,是Google模型的15倍,人工智能识别能力也会更强大。实验室负责人Barry Chen说道:
“我们希望项目结束时,可以构建成世界上最大的神经网络训练算法,当然这需要高性能的计算机支持。”
那么,Google在做什么呢?它也在向GPU转型,不过选择了一条不同的路径而已。Google构建了一个全新深度学习系统DistBelief,在其庞大而蔓生的云系统上既可以运行GPU,也可以运行CPU。
Google将数字运算工作拆分成了数以百计的小集群,每个集群会配置1到32台计算机,如此巨大的计算能力让Google的人工智能软件水平有了很大提升,可以区分椅子和凳子,还能区分“Shift”和“Ship”这样的单词。
当然,Google数据中心内部的计算机也可能会当机,这是不可避免的,但是即便如此,也不会对Google造成太大的影响。事实上,Google整个系统的设计非常棒,用Google研究科学家Greg Corrado的话说,即便有计算机坏了,研究人员们甚至都不会察觉到。
“云计算VS高性能计算,其实和公司文化、可用资源、甚至是企业品味相关。作为Google研究人员,我当然为Google内部系统感到高兴。”
VIA wired