Tensorflow Mean the Big Reform of Hardware

谷歌工智能开源项目Tensorflow预示着硬件领域的重大变革

摘要:在谷歌内部,处理图像识别、语音识别和语言翻译等任务时,TensorFlow依赖于配备图像处理单元(GPU)的机器,和被用于渲染游戏图像的芯片等,但对其它的任务也擅长。它对这些芯片的依赖比想象中的更多。

谷歌宣布将其最重要的创新项目之一 —— 人工智能引擎 ——作为开源项目发布到网上供大家免费使用,这展示了计算机软件行业正进行着什么样的变革。

最近,互联网巨头们接二连三地将自己线上核心业务所用的软件开源。项目开源加快了技术发展的进程。随着人工智能引擎TensorFlow的开源,谷歌能以各种方式为公司范围之外的机器学习研究提供支持,这些研究成果也将反馈给谷歌。

不过谷歌的人工智能引擎也反映了当今计算机硬件行业的发展趋势。在谷歌内部,处理图像识别、语音识别和语言翻译等任务时,TensorFlow依赖于配备图像处理单元(GPU)的机器,和被用于渲染游戏图像的芯片等,但对其它的任务也擅长。它对这些芯片的依赖比想象中的更多。

根据负责谷歌AI项目的工程师Jeff Dean的说法,谷歌不仅用GPU训练其AI服务,而且还运行这些服务产品 —— 将它们植入用户手中的智能电话。

那是一次重大的转变。目前,Facebook在其庞大的计算机数据中心里用GPU训练人脸识别模型,但在为用户提供服务时 —— 真刀实战地在社交网站上识别人脸 —— 还是使用传统的处理器,或者CPU。Facebook的CTO Mike “Schrep” Schroepfer近日在公司总部举行的一次简短的记者见面会上指出,这种基本配置是目前的行业标准。但谷歌为了追求更高层次的效率,某些时候在数据中心里GPU既用来训练AI模型,又用来执行模型。谷歌也并不是踽踽独行。中国搜索引擎巨头百度也正在搭建一套类似的AI系统。“这是一次巨大的模式变革”,百度首席科学家Andrew Ng说道。

这一变革对于专注于GPU的芯片巨头NVIDIA来说是件好事。而且这也是世界最大的芯片制造商Intel产品的空白区。Intel不生产GPU。一些互联网企业和研究院开始关注可编程逻辑阵列FPGA了,将它作为AI领域的GPU替代品,并且Intel最近收购了一家专门生产可编程芯片的公司。

AI在全球的在线服务业务中扮演了越来越重要的角色 —— 备选芯片架构在AI中的地位也越来越重要。目前,在我们提供线上服务的计算机数据中心里已经如此了,若干年内,同样的现象也将会在移动设备上出现,因为我们使用的服务其实是相同的。

深度学习实践

在谷歌、Facebook、微软、百度等公司,GPU被证明对“深度学习”非常有效,因为它可以并行处理许多小数据集。深度学习依赖于神经网络 —— 一种模拟人类大脑中神经元的系统 —— 这些网络是用来快速分析大量的数据。举个例子,为了教会神经网络识别一只猫,你就需要输入无数张猫的图像。GPU擅长处理这类任务。另外,它们的能耗也没有CPU这么高。

但是,这些公司在实际应用中使用深度学习技术时 —— 比如识别猫的手机App —— 这个App是由运行在CPU上的数据系统驱动的。根据在百度AI团队负责高性能计算系统的Bryan Catanzaro介绍,这是因为GPU只在持续不断输入数据的时候效率才高,而通常用来驱动手机App的数据服务器软件并不以这种方式往芯片传输数据。通常情况下,当收到手机App发来的请求后,服务器每次处理一个请求。Catanzaro解释道,如果你使用GPU分别处理收到的每个请求,“很难保证GPU有足够多的任务,让它能够有效运行。GPU从未真正发挥出作用。”

就是说,如果在执行环节你能不断地给GPU传入数据,那么它的效率比CPU高得多。百度正在其新的AI平台做这方面尝试。简单说来,就是请求发送到数据中心,然后将多个请求打包传入GPU。“我们打包这些请求,不再让处理器每次处理一个请求,而是每次处理多个请求,”Catanzaro说道。“别让GPU闲下来。”

目前还不清楚谷歌将如何处理这个问题。但是他们表示已经有TensorFlow在执行阶段使用GPU的案例。“基于不同的问题,我们有时候把GPU既用于训练,又用于识别,”谷歌发言人Jason Freidenfelds证实。

这似乎显得微不足道。事实上却是一项大工程。驱动这些AI应用产品的系统包括数十台、数百台、甚至上千台的机器。而且这些系统在我们日常生活中的地位日益重要。现在谷歌的深度学习技术不仅用来识别照片、识别语音、机器翻译,还用来提高搜索质量。其它公司也将同样的技术用于精准广告投放、计算机安全,甚至理解自然语言的应用。换句话说,像谷歌和百度这样的公司还需要大量的GPU。

无处不在的AI

与此同时,TensorFlow也将其中一些AI产品从数据中心推向了智能手机端。

一般来说,如果在手机端使用深度学习相关的App,必须往数据中心回传信息。所有的AI都在服务器端。例如,你在安卓手机上执行了一个命令,这条命令必须传到谷歌的数据中心,在那里用巨大的CPU或者GPU网络来处理。

但是,谷歌也一直在提升自己的AI引擎,某些情况下可以在手机端执行完成。“你能使用一个模型描述,并且在手机端上运行”,Dean说,“而且你并不需要真的对模型描述或是代码做改动。”

谷歌的翻译App正是这么搭建的。谷歌在数据中心训练模型来识别单词和完成翻译,一旦训练完成,App就能独立地运行 —— 不需要网络连接。你可以把手机对准一块法语路牌,立即就能显示出英语翻译。

这要做好很困难。毕竟,手机的处理能力有限。随着时间推进,越来越多的这类任务会被迁移到手机端。深度学习软件会改进,移动设备硬件也在发展。“深度学习的未来在小巧灵活的移动设备上”,深度学习创业公司的创始人Chris Nicholson如是说。

举例来说,GPU正在试图寻找置入手机的方式,硬件制造商也在不断改进CPU的速度和效率。同时,IBM也在开发专为AI任务定制的“neuromorphic”芯片,使用过的人觉得它非常适合移动设备。

如今,谷歌的AI引擎不仅运行在服务器的CPU和GPU上,还运行在常规的智能手机芯片上。但据谷歌工程师Rajat Monga称,他们开发的TensorFlow能让工程师们轻而易举地迁移到其它硬件平台上。现在工具已经开源,外部人员也可以使用了。Dean如此描述TensorFlow:“它应该可以移植到各种硬件。”
没错,硬件界也在经历变革 —— 和软件界并驾齐驱。

原文链接:TensorFlow, Google’s Open Source AI, Signals Big Changes in Hardware

Too(译者/赵屹华 审校/刘帝伟、朱正贵 责编/周建丁)

译者简介:赵屹华,计算广告工程师@搜狗,前生物医学工程师,关注推荐算法、机器学习领域。