谷歌将其自己的人工智能技术TensorFlow通过开源的方式贡献给了全世界,这是谷歌对与互联网所做的最大贡献之一。通过这个做法,谷歌向世界展示了当前的计算机软件正在发生什么样的变化。
最近一段时间,许多互联网巨头都在经常性的将自己的软件技术分享给全世界。开源加速了科技的发展速度。在将自己的人工智能技术TensorFlow进行了开源之后,谷歌将会为出自己之外的其他研究机器学习的公司和机构提供帮助。而且从很多方面来讲,这些研究成功最终都会回到谷歌这里。
但是除了软件之外,谷歌的这个人工智能技术还反映出了计算机硬件世界的发展形势。在谷歌内部,在解决图像识别、语音识别和语言翻译等软件服务的问题时,TensorFlow所依靠的是搭配了专门用来针对游戏来渲染图像的GPU的机器,或是图像处理单元和芯片。而且谷歌对于芯片的依赖程度,其实要远远高于外界普遍的认知。
Jeff Dean是一位来自谷歌的工程师,他负责管理该公司的人工智能工作。Dean表示,谷歌不仅仅是在使用GPU来训练他们的人工智能服务,而且还要使用这些硬件来运行这些服务——将其投送到消费者手中的智能手机之上。
在当今的在线服务世界中,人工智能正在发挥着越来越重要的作用——而且非传统的芯片也在人工智能技术的发展中发或者更加重要的作用。
这意味着一个巨大的变化。今天,在Facebook大规模的计算机数据中心内部,这家公司正在使用GPU来完善他们的面部识别服务,但是在将这些服务投送到用户那里的时候,他们所依靠的却是传统的计算机处理器,也就是CPU。这种做法目前正是行业内部常见的解决方案,就像Facebook CTO Mike Schroepfer最近在面对记者时所说的那样。但是谷歌希望能够找到一种效率更高的解决方案,他们不仅希望使用GPU来完善人工智能,更希望使用GPU将软件服务投送到用户那里。谷歌并不是全世界唯一一家希望做出这种改变的公司。中国的搜索巨头百度也在搭建新的人工智能产品,其工作方式与谷歌的产品基本相同。
这样的改变的对于显示芯片企业nVidia来说是一个好消息,这家公司在GPU硬件研发方面十分在行。而对于另一家芯片企业,全世界最大的芯片制造商英特尔来说,这种改变暴露了该公司最大的短板,因为他们并不生产GPU。然而,还有一些公司和研究人员正在开发另一种芯片:FPGA(现场可编程门阵列),这种设备可以在人工智能领域代替GPU的作用,而英特尔不久之前就宣布他们收购了一家FPGA芯片开发企业,相比这正是英特尔应对这种改变的措施。
无论如何,人工智能都在当前世界的在线服务领域发挥着越来越重要的作用——而非传统芯片的架构也在进一步影响着人工智能的发展。今天,驱动在线服务的,也许依然是科技公司内部的计算机数据中心。但是在未来数年之后,也许驱动在线服务的,将会是移动设备,也就是我们现在使用这些服务的终端。
高速发展的深度学习
在谷歌、Facebook、微软和百度这些公司内部,GPU的作用还不仅如此,它还在所谓的“深度学习”领域发挥着巨大的作用,因为GPU可以平行处理大量琐碎信息。深度学习所依赖的是神经系统网络——与人类大脑神经高度相似的网络——而这种网络出现的目的,就是要在高速的状态下分析海量的数据。例如,如果你想要教会这种网络如何识别出猫的模样,你就要给它提供无数多的猫的图片。而这种工作,正是GPU芯片所擅长的事情。而且相比于CPU,GPU的另一大优势,就是它对能源的需求远远低于CPU。
然而目前为止,当这些公司推出深度学习服务的时候——例如推出一个能够识别猫图像的智能手机应用——驱动这个应用的,依然是数据中心系统中的CPU。 Bryan Catanzaro是百度人工智能集团负责高性能计算系统的工程师,他表示当前深度学习应用依然依赖CPU,是因为GPU只有在收到大量数据的情况下才能发挥效用。而驱动智能手机应用的数据中心服务器软件并不会以这种方式向芯片输入数据。
一般情况下,当手机应用的请求到达的时候,服务器会一次处理一个请求。Catanzaro解释说,如果当请求到达数据中心的时候,你使用GPU来拆分处理每一条请求,那么GPU的运行效率就会收到极大的影响。GPU甚至会无法正常运行。
如果你能够在执行阶段不断的将数据发送给GPU,那么它将会发挥比CPU高的多的效率。在开发新人工智能平台的同时,百度正在进行这方面的尝试。基本上锁,当请求涌入数据中心的时候,它将会把多条请求进行打包处理,当达到一定的体积之后,再将其一同发送给GPU。Catanzaro表示:“我们会对这些请求进行收集和打包,这样就无需让GPU一次只处理一条请求,而是让它同时处理多个请求。这样做能够更好的发挥GPU的效率。”
我们现在还不清楚谷歌将如何处理这个问题。但是该公司表示,已经有相关的案例显示TensorFlow能够在执行阶段运行在GPU上。该公司发言人Jason Freidenfelds透露:“对于不同的问题,我们有时会用GPU训练深度学习,有时也会用它来处理识别工作。”
也许这看起来是一件微不足道的事情,但是其实它对技术发展来说是一件非常重要的事情。这个驱动人工智能程序的系统会被用在越来越多的计算设备上。而这些系统正在我们的日常生活中发挥着重要的作用。谷歌如今正在大量使用深度学习技术,不仅仅是识别照片、语音以及翻译文字,而且他们还在使用这个技术来优化搜索结果。而且其他一些公司还在将深度学习技术与广告投递、计算机安全进行整合,甚至还有公司在使用深度学习技术让计算机来理解人类的正常语义。换句话说,谷歌和百度这些企业将会需要大量的GPU。
无处不在的人工智能
与此同时,TensorFlow还在将一些人工智能技术彻底推到数据中心之外,让其进入到我们每天都在使用的智能手机之中。
一般来说,当你使用手机上的深度学习应用的时候,它的运行必须要依靠网络,因为它需要将信息发送回数据中心之内。所有人工智能处理都是在数据中心内部完成的。例如,当你对着安卓手机说出一个命令的时候,它必须将你所说的话发到谷歌的数据中心之内。在那里,由大量CPU或GPU组成的庞大数据网络将会处理你的指令并作出相应。
但是谷歌在开放了他们的人工智能引擎之后,在某些情况下,这些数据将会在你的手机本地完成处理,而无需再发回到谷歌的数据中心之内。Dean表示:“你可以将一些模型描述添加到手机本地,并且在本地完成运行过程。而且你不需要对这段描述或是代码作出任何改变。”
这其实就是谷歌开发谷歌翻译这个应用所使用的方式。谷歌训练这个应用来识别用户语音,然后在其数据中心内部将这段语音翻译成另一种语言。但是在完成训练之后,这个应用可以自己运行——无需依托互联网连接。就是因为如此,你才可以用手机的摄像头拍摄一个法语单词,让后将其即时翻译成英语。
但是这种工作其实难度很高。毕竟,手机的数据处理能力着实有限。但是随着时间的推移,越来越多的任务将会在手机本地完成。深度学习软件也将会不断进步,移动设备硬件的计算能力也会不断增长。深度学习初创企业Skymind公司的创始人Chris Nicholson就表示:“深度学习的未来发展平台,在于小型移动设备。”
例如,GPU已经找到了它在手机上的发展路线,硬件制造商一直都在努力推动GPU速度和使用效率的发展。同时,有消息称IBM正在开发一个名叫Neuromorphic的芯片,这个芯片是专门针对人工智能任务所开发的。据测试过这个芯片的人表示,这个芯片非常适合移动设备。
今天,谷歌的AI引擎运行时所依托的是服务器的CPU和GPU,智能手机的芯片也是这样。但是谷歌工程师Rajat Monga表示,该公司在开发TensorFlow的时候,刻意的希望工程师能够将其与其他硬件平台进行整合。如今既然这个工具已经开源,这意味着任何人都可以使用它。就像Dean对TensorFlow的描述那样:“它将会被用在更多的硬件上。”
是的,硬件世界当前也在发生着改变——而且其改变速度与软件的改变速度旗鼓相当。
(编辑:Zoey)