【深度解析】Google第二代深度学习引擎TensorFlow开源

作者:王嘉俊 王婉婷

 

TensorFlow 是 Google 第二代深度学习系统,今天宣布完全开源。TensorFlow 是一种编写机器学习算法的界面,也可以编译执行机器学习算法的代码。使用 TensorFlow 编写的运算可以几乎不用更改,就能被运行在多种异质系统上,从移动设备(例如手机和平板)到拥有几百台的机器和几千个 GPU 之类运算设备的大规模分布式系统。

 

TensorFlow 降低了深度学习的使用门槛,让从业人员能够更简单和方便地开发新产品。作为Google 发布的“平台级产品”,很多人认为它将改变人工智能产业。

 

在听到 Google TensorFlow 开源消息后,新智元的异构计算专家微信群里有很多讨论。这些讨论非常有价值,从专业人士的角度解读了 TensorFlow 的优劣利弊。

 

所以新智元决定连夜采访,收集资料,期待用最快的速度把 Google TensorFlow 的讨论和介绍呈现给大家。

 

在此,特别感谢为我们提供支持的Petuum团队的邢波教授,张浩同学、谢澎涛同学和戴维同学,以及朱军和李宁同仁。另外,Janet Zhao 陪伴我们共同完成这篇文章,带来不少帮助。

 

 

【邢波Eric】各位,本来不想置评TF的,因为他们和我们的工作是一片果园和一株果树的区别,但是既然很多误解直接找上我们,也不得不被迫应战了,希望能解答一些迷惑。下文由CMU Petuum团队的张浩,谢澎涛,戴维,以及同仁朱军,李宁贡献,我做了一些修改:

 

以下是新智元对CMU Petuum团队的采访:

 

 

新智元:TF 能否做到 Google 所说的第二代深度学习系统平台级产品?为什么能or不能,如果不能的话,TF扮演的是什么角色,对应于传统工具诸如 Spark、Petuum 的什么?

 

Petuum团队:TF与Spark和Petuum并不具备可比性,TF大概仅对应于Spark里面的MLlib库,或对应于Petuum里面的深度学习框架。

 

展开来说:

 

第一,从深度学习的角度来分析,TF目前尚缺乏很多系统方面对deep learning的设计和优化(比如在训练深度卷积神经网络时,可以利用CNN的结构特性以及算法特性在系统方面,给出对应的优化,降低内存使用,减少通信负载等),所以TF还不能称为一个specialized 的DL库。

 

第二,Google在白皮书上展望了TF是一个分布式系统上的机器学习框架。但是从目前Tensor Flow的release来看,他们只支持单机多卡,不支持多机的分布式环境。就深度学习这个具体方向上,目前public available的不支持分布式的DL库已经有10个以上,Google当前发布TF作为一个general-purpose的产品,定位有待进一步观察;

 

第三,一个专业的技术产品在发布之前最好服从专业标准,在专业dataset上进行性能测试,并与其它类似框架进行比较;Tensor Flow缺乏公开的评测数据,具体性能如何有待进一步探讨。

 

第四,业界会继续关注的是Google此前收购的在公司内部具有特殊地位的DL公司Deepmind仍在使用Torch和Caffe,未来他们是否会近水楼台使用TensorFlow或Distbelief,大家拭目以待。

 

 

新智元:谷歌在宣传视频中提到,TensorFlow可以带来更好的灵活性和更广的适用性。主要有卖点有:异质平台全通用,上到大规模分布式系统,下到常见的手机和平板;平台迁移时重写代码的代价非常小;从研究室的模型试验到产品开发者的产品部署,代码无缝衔接无需更改。这些卖点有意义吗?有多大的意义?对谁更有意义?

 

Petuum团队:首先这些灵活性和广适性更像是TensorFlow的愿景和展望,尚没有公开的数据或案例表明TensorFlow做到了这一点。异质计算平台上的通用性和平台迁移的容易性是很多机器学习系统追求的目标。很高兴看到Google也有这样的愿景。

 

 

新智元:我们看到这次 TF 并没有发布比较数据,你怎么看待这件事情?

 

Petuum团队:通过发布严格的比较数据来证实一项技术取得了超越性的进展,是业界的一个基本要求。 在Google公开具体比较数据之前,TensorFlow的性能和优势无法具体评估。

 

 

新智元:张浩提到 TF 不支持分布式计算,而 Google 公布信息是支持分布式和单机?是否冲突?单机和分布式,在应用上的差别是什么?

 

Petuum团队:Google本次发布的TF并不支持分布式。单机和分布式在应用上的差别是前者无法支持大规模数据或模型的高速高精度学习。

 

 

新智元:TF 主要会给产业带来什么变化?对于资深的机器学习研究者,或者说学术圈,TF 有帮助么?

 

Petuum团队:TF现有的开源版本只支持单机,对产业和学术圈的贡献比较有限。类似的单机深度学习工具已经比较丰富,比如Caffe, Torch, Theano。与这些工具相比,TF目前尚未显示具体优势。业界会进一步关注TF是否准备开源分布式版本及其性能。

 

 

新智元:TF 和现有开源或者未开源的机器学习和神经网络算法相比,优势和劣势分别是什么?

 

Petuum团队:TF中的两个核心概念,数据流和张量,在之前的很多系统中已有实现。对于TF的开源单机版本,尚未有数据表明其与现有的其他单机深度学习工具相比拥有任何具体优势。TF分布式版本不知是否会开源,目前难以评价其性能。据Google工程师Rajat Monga说,TF分布式版本的很多代码与Goolge的其他系统代码耦合,给开源造成困难。

 

 

新智元:TF 和 PETUUM 的应用领域相同么?对于初创企业,这两个系统各有什么优劣?

 

Petuum团队:Petuum 是通用平台(general-purposed platform)支持多种算法,模型,通讯协议,调度,容错,等等。而目前发布的TF则是专门支援深度学习的一个垂直软件包。如果就深度学习这个具体方向来比较,TF和Petuum Poseidon 可比,但后者是Petuum平台上的一个垂直应用模块,专事CPU和GPU多机分布式和单机上的深度学习,二者都提供了高阶简易的编程界面以及GPU和CPU支援多种深度模型(如CNN、DNN等)。至于深度学习以外的机器学习模型和算法,目前看来并不是TF支持的重点。Petuum的定位则是用通用的界面来做分布式学习,例如,Petuum开源的基于随机采样算法的大规模主題模型,基于坐标下降算法的稀疏回归分析和协同过滤等。总体说来,Petuum和TF是针对不同层面的问题,以不同的思路和框架设计的而建立的不同层面的系统。Petuum走的是通用机器学习(包括深度学习)平台路线,TF则是关注深度学习的专门应用系统,后者对应于Petuum框架下的模块之一机器学习工具库中的Poseidon深度学习系统。面对业界的具体应用场景,各个初期创业公司可以根据具体问题的需求来选择。

 

 

 

 

介绍:Google TensorFlow(翻译自 Google Research Blog)

 

深度学习在计算机科学有非常大的影响,令它能够被运用在最前沿的研究中,又能开发出实用性高到让人惊喜的产品、无数人每天都在使用。

 

我们 2011 年发布了深度学习基础架构 DistBelief,它让 Google 能够通过数据中心存储的成千上万的数据来进行前所未有的大规模训练,建立起Google史上最大的神经网络模型。我们展示了一些例子,例如从 Youtube 上没有被标记的图片中学会识别出“猫”(也就是学会“猫”这个概念),将 Google 应用中的语音识别水平提高25%,也赢得了 Imagenet Large Scale Visual Recognition Challenge 的冠军。

 

虽然 DistBelief 非常成功,但它有很大的限制。它仅仅以神经网络为目的、十分局限,而且很难进行配置,另外它牢牢绑定在 Google 的内部基础设施上,几乎不可能将代码与外界共享。

 

今天我们很自豪地发布了一款开源软件:TensorFlow,第二代机器学习系统,设计上尤其针对克服 DistBelief 的短板。TensorFlow 更通用、灵活、易携带、易使用,而且完全开源。同时,我们也在 DistBelief 的基础上改善了运行速度、可扩缩性和与产品的衔接。实际上,在很多指标上,TensorFlow 要比 DistBelief 要快一倍。

 

独家视频翻译

 

TensorFlow 自带大量的深度学习支持,但并不只是为了深度学习而生,也有一些更通用的支持:任何你可以表达成流程图的计算,你都可以使用 TensorFlow 来完成运算。所以任何基于梯度的机器学习算法都能受益于 TensorFlow 的自动微分和最优程序组。不仅如此,你也很容易就能通过 Python 的前端,在 TensorFlow 编写你的新灵感。

 

 

TensorFlow 在研究中相当有用,但它也已经做好了应用于实际产品的准备。TensorFlow 在最初建立的时候,就被设定为快速、轻便而且与产品衔接迅速。使用 TensorFlow,无论是训练桌面端的 GPU 还是在手机里运行,都没有多大差别。而且,通过使用我们采用最新科技制作的模板结构,你可以用强大的机器学习科技快速开始实施你的想法。例如,我们计划在近期公布 TensorFlow 在 ImageNet 计算机视觉模型的应用。

 

但是关于 TensorFlow 最重要的事情是,它是属于你的。我们已经把 TensorFlow 开源,作为独立的库和相关的工具,建立在 Apache 2.0 的基础上,所以无论你是谁,都可以把它免费运用在你的研究中。

 

我们所有的深度学习实验,都使用了 TensorFlow 架构。我们的工程师通过它把深度神经网络信号放到了 Google 搜索中。我们会持续使用 TensorFlow 来服务于机器学习的产品,而且我们的研究团队,也会分享 TensorFlow 在各大公开的想法中的实施情况。更多的信息,请在 www.tensorflow.org 中了解。

 

 

技术摘要:异质分布式系统上的大规模机器学习(翻译自 TensorFlow 白皮书)

 

TensorFlow是一种编写机器学习算法的界面,也可以编译执行机器学习算法的代码。使用TensorFlow编写的运算可以几乎不用更改地被运行在多种异质系统上,从移动设备(例如手机和平板)到拥有几百台机器和几千个GPU之类的运算设备的大规模分布式系统。TensorFlow的系统灵活性很强,可以用来编写各式各样的算法,包括深度神经网络模型的训练和干扰算法,并且它已经被用于实验研究中,也被部署在产品的机器学习系统中,已经被应用于十几种计算机科学以及其他学科的领域中,包括语音识别、机器视觉、机器人学、信息检索、自然语言处理、地理信息提取以及计算机辅助药物设计。

白皮书全文(19PDF)

在新智元订阅号回复1110下载白皮书全文

白皮书全文(19PDF)

在新智元订阅号回复1110下载白皮书全文

 

 

 

posted @ 2015-11-11 19:43  远里歌声_why  阅读(3361)  评论(1编辑  收藏  举报