【深度解析】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下载白皮书全文

时间: 2024-10-24 13:37:58

【深度解析】Google第二代深度学习引擎TensorFlow开源的相关文章

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

Hibernate 3 深度解析--苏春波

Hibernate 3 深度解析 Hibernate 作为 Java ORM 模式的优秀开源实现, 当下已经成为一种标准,为饱受 JDBC 折磨的 Java 开发者带来了“福音.快速的版本更新,想开发者所想,Hibernate 的开发团队俨然就是我们开发者的知音呀.随着 Hibernate 的用户群的越来越壮大,Hibernate 的功能也变得更加强大和健硕起来,下面就对于我们比较常用和关心的一些内容做一些比较深入的探讨,我们的宗旨就是不但会灵活应用,还能知其所以然,不要求大家一定要把 Hibe

深度学习“引擎”之争:GPU加速还是专属神经网络芯片?

深度学习“引擎”之争:GPU加速还是专属神经网络芯片? 深度学习(Deep Learning)在这两年风靡全球,大数据和高性能计算平台的推动作用功不可没,可谓深度学习的“燃料”和“引擎”,GPU则是引擎的引擎,基本所有的深度学习计算平台都采用GPU加速.同时,深度学习已成为GPU提供商NVIDIA的一个新的战略方向,以及3月份的GTC 2015的绝对主角. 那么,GPU用于深度学习的最新进展如何?这些进展对深度学习框架有哪些影响?深度学习开发者应该如何发挥GPU的潜力?GPU与深度学习结合的前景

百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。

百度为何开源深度机器学习平台? 有一系列领先优势的百度却选择开源其深度机器学习平台,为何交底自己的核心技术?深思之下,却是在面对业界无奈时的远见之举. 5月20日,百度在github上开源了其深度机器学习平台.此番发布的深度机器学习开源平台属于"深盟"的开源组织,其核心开发者来自百度深度学习研究院(IDL),微软亚洲研究院.华盛顿大学.纽约大学.香港科技大学,卡耐基·梅陇大学等知名公司和高校. 通过这一开源平台,世界各地的开发者们可以免费获得更优质和更容易使用的分布式机器学习算法源码,

Activiti6.0工作流引擎深度解析与实战|activiti6视频教程

Activiti6.0工作流引擎深度解析与实战网盘地址:https://pan.baidu.com/s/1aqGADN23lUKzcwkbTaV90g 密码: xmj5备用地址(腾讯微云):https://share.weiyun.com/5Z7sAqb 密码:8pwrkb 工作流引擎驱动业务正在互联网公司中盛行,越来越多的互联网公司开始采用工作流引擎的方式来适应业务的快速变化. 本课程将系统且深入源码讲解Activiti6.0工作流引擎的使用.配置.核心api以及BPMN2.0规范.数据库设计

[WebKit内核] JavaScript引擎深度解析--基础篇(一)字节码生成及语法树的构建详情分析

[WebKit内核] JavaScript引擎深度解析--基础篇(一)字节码生成及语法树的构建详情分析 标签: webkit内核JavaScriptCore 2015-03-26 23:26 2285人阅读 评论(1) 收藏 举报  分类: Webkit(34)  JavascriptCore/JIT(3)  版权声明:本文为博主原创文章,未经博主允许不得转载. 看到HorkeyChen写的文章<[WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现>

学习《TensorFlow实战Google深度学习框架 (第2版) 》中文PDF和代码

TensorFlow是谷歌2015年开源的主流深度学习框架,目前已得到广泛应用.<TensorFlow:实战Google深度学习框架(第2版)>为TensorFlow入门参考书,帮助快速.有效的方式上手TensorFlow和深度学习.书中省略了烦琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow示例介绍如何使用深度学习解决实际问题.书中包含深度学习的入门知识和大量实践经验,是走进这个前沿.热门的人工智能领域的优选参考书. 第2版将书中所有示例代码从TensorFlow 0.9

数据库深度解析 | 从NoSQL历史看未来

数据库深度解析 | 从NoSQL历史看未来 http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209753217&idx=1&sn=d3a021a7bd959cbf92ffc658336b2387&scene=1&srcid=fWEZMjyaJKjZo5wrpSiB&from=singlemessage&isappinstalled=0#rd 本文根据王晶昱(花名沈询)老师在“高可用架构”微信群

【转】java内存分配和String类型的深度解析

一.引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题.下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文. 1.java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什么?如何设置各个区域的大小? 2.String类型在执行连接操作时,效率为什么会比StringBuffer或者StringBui