开源系统TensorFlow 0.8 发布 – 支持分布式计算

时间:2017-07-18 17:49

开源系统TensorFlow 0.8 发布 – 支持分布式计算

如今,Google已将机器学习运用到了多种产品中,并推出了能够加速机器学习模型改进与升级的TensorFlow开源系统。今天,Google推出TensorFlow 0.8,以满足用户对机器学习模型分布式训练的需求。

支持分布式计算的TensorFlow 0.8能够使用户在自己的机器学习基础结构中训练分布式模型。该系统以高性能的gRPC库为支撑(gRPC库支持同时对上百台机器进行训练),且与最近发布的Google Cloud 机器学习服务互补,使用户能够利用Google云平台,对其TensorFlow模型进行训练并提供服务。

配合TensorFlow 0.8的发布,Google还在TensorFlow模型库中发行了一款针对Inception图像分类神经网络的分布式训练程序。利用该分布式训练程序,Google能够使用100个GPU,在短短65小时内将Inception网络的精确度提高至78%。随着GPU数量的增加,系统的整体处理量可以得到提升,并且能够更快地计算出精确的结果。因此,即使是小型集群或一组设备也能因分布式TensorFlow受益。

TensorFlow 0.8 发布 – 支持分布式计算

TensorFlow利用100个GPU将Inception训练的速度提高了56倍。

这个分散式训练程序还可以让用户通过使用如Kubernetes等集群管理系统,扩大训练规模。此外,用户在训练程序后,还可以通过在Kubernetes中使用TensorFlow服务,进行生产部署和推理加速。

除分布式Inception之外,TensorFlow 0.8还包括便于用户自行定义分布式模型的新型库。由于集群内的每个程序都能处理各种通用计算,因此TensorFlow的分布式结构大大提高了用户在定制模型时的灵活性。Google之前推出的DistBelief系统(与后续推出的很多系统类似)主要通过“参数服务器”管理共享模型的参数。该服务器的读写界面非常简单,便于用户获取和更新共享的参数数据。

包括参数管理在内,TensorFlow系统中所有的计算,均通过数据流图表呈现。该系统还可以将这些数据传输到不同设备上(如多核CPU、通用GPU和移动处理器等)。为了让TensorFlow系统便于使用,Google还在系统中包含了Python库,从而便于编写那些可在单一程序中运行并且能通过多个副本进行训练以扩大训练规模的模型。

该结构便于用户从运用单进程工作扩大到使用集群工作,还便于用户使用新结构进行试验,以完成分布式训练。Google发现,将有备份功能的同步化SGD用在TensorFlow系统图表中,能提高图像模型训练的准确性,并缩短耗时。

目前,TensorFlow系统中的分布式计算支持尚处于初级阶段。Google会继续通过工程设计以及算法改进,来提高分布式训练的性能,并将在GitHub中与广大用户分享Google所取得的成就。如果没有下面这些人的帮助,我们不可能做到现在这样:

TensorFlow training libraries – Jianmin Chen, Matthieu Devin, Sherry Moore and Sergio Guadarrama

TensorFlow core – Zhifeng Chen, Manjunath Kudlur and Vijay Vasudevan

Testing – Shanqing Cai

Inception model architecture – Christian Szegedy, Sergey Ioffe, Vincent Vanhoucke, Jonathon Shlens and Zbigniew Wojna

Project management – Amy McDonald Sandjideh

Engineering leadership – Jeff Dean and Rajat Monga

 

英文原文:Announcing TensorFlow 0.8 – now with distributed computing support!
译文转自:Google推出支持分布式计算的TensorFlow 0.8
发布人:软件工程师 Derek Murray