【重磅】Google 分布式 TensorFlow,像 Android 一樣帶來(lái) AI 復興?
Google發(fā)布了分布式 TensorFlow。
今天,Google 發(fā)布了分布式 TensorFlow。Google 的博文介紹了 TensorFlow 在圖像分類(lèi)的任務(wù)中,100 個(gè) GPUs 和不到 65 小時(shí)的訓練時(shí)間下,達到了 78% 的正確率。在激烈的商業(yè)競爭中,更快的訓練速度是人工智能企業(yè)的核心競爭力。而分布式 TensorFlow意味著(zhù)它能夠真正大規模進(jìn)入到人工智能產(chǎn)業(yè)中,產(chǎn)生實(shí)質(zhì)的影響。
Google 今天發(fā)布分布式 TensorFlow 版本!
即便 TensorFlow 在 2015 年底才出現,它已經(jīng)吸引了全球機器學(xué)習開(kāi)發(fā)者的目光。
Google 創(chuàng )始人 Eric Schmidt 堅信 TensorFlow 是 Google 的未來(lái)。深度學(xué)習引擎+云服務(wù)平臺,將會(huì )帶來(lái)編程范式的改變:不僅給電腦編程,而且讓電腦擁有一定的自主能力。
根據 Github 的數據統計,TensorFlow 成為了 2015 年最受關(guān)注的六大開(kāi)源項目之一??紤]到 TensorFlow 僅僅在 12 月才發(fā)布,一個(gè)月的時(shí)間就讓它成為世界關(guān)注的焦點(diǎn)。
不過(guò)那時(shí)候的 TensorFlow,還僅僅是只能在一個(gè)機器上運行的單機版本。這意味著(zhù)它雖然設計精巧,但很難被公司、組織大規模的使用,也很難對產(chǎn)業(yè)造成實(shí)質(zhì)的影響。
但今天發(fā)布的分布式 TensorFlow,最突出的特征是能夠在不同的機器上同時(shí)運行。雖然說(shuō)并不是所有人都需要在幾千臺服務(wù)器上運行 TensorFlow,但研究者和創(chuàng )業(yè)公司的確能在多臺機器運行的 TensorFlow 中獲益。
TensorFlow 技術(shù)負責人 Rajat Monga 解釋了分布式 TensorFlow 的延期發(fā)布:“我們內部使用的軟件棧(Software Stack),和外部人們使用的非常不同......所以要讓它變得開(kāi)源,對于我們來(lái)說(shuō)是極其困難的事情。”
經(jīng)過(guò) 5 個(gè)月的等待,分布式 TensorFlow 終于到來(lái)了。
Google Brain 負責人:Jeff Dean
TensorFlow 0.8 今天發(fā)布了,它有一些很好的改進(jìn)。它為分布式的版本做了一些改變,而且把它們包裹起來(lái)使之更容易使用。這篇博客還介紹了用分布式系統訓練卷積圖像識別模型的一些可擴展的數字。
Google 官方博客介紹
TensorFlow:
TensorFlow 是為使用數據流程圖的數值計算開(kāi)發(fā)的開(kāi)源軟件庫。圖中的節點(diǎn)表示數學(xué)運算,而圖的邊代表著(zhù)彼此溝通的多維數據陣列(Tensors)。在只使用單個(gè) API 的情況下,靈活的架構可以讓你在桌面、服務(wù)器或者移動(dòng)設備的單個(gè)或多個(gè) CPUs 和 GPUs 部署計算。TensorFlow 最早由 Google Brain 團隊的研究人員和工程師研發(fā),目的是管理機器學(xué)習和深度神經(jīng)網(wǎng)絡(luò )的研究工作,但是這個(gè)系統也足夠通用,適用于其他的應用領(lǐng)域。
TensorFlow 0.8:支持分布式計算
Google 在很多的產(chǎn)品中都使用了機器學(xué)習技術(shù)。為了不斷改進(jìn)我們的模型,最為重要的是訓練速度要盡可能的快。要做到這一點(diǎn),其中一個(gè)辦法是在幾百臺機器中運行 TensorFlow,這能夠把部分模型的訓練過(guò)程從數周縮短到幾個(gè)小時(shí),并且能夠讓我們在面對不斷增加的規模和復雜性的模型時(shí),也能夠進(jìn)行實(shí)驗。自從我們開(kāi)源了 TensorFlow,分布式的版本就成為最需要的功能之一了?,F在,你不需要再等待了。
今天,我們很興奮的推出了 TensorFlow 0.8,它擁有分布式計算的支持,包括在你的基礎設施上訓練分布式模型的一切支持。分布式的 TensorFlow 由高性能的 gRPC 庫支持,也能夠支持在幾百臺機器上并行訓練。它補充了我們最近的公布的 Google 云機器學(xué)習,也能夠使用 Google 云平臺訓練和服務(wù)你的 TensorFlow 模型。
為了和 TensorFlow 0.8 版本的推出保持一致,我們已經(jīng)發(fā)表了一個(gè)“分布式訓練”給 TensorFlow 模型庫的生成圖像分類(lèi)的神經(jīng)網(wǎng)絡(luò )。使用分布式訓練,我們訓練了生成網(wǎng)絡(luò )(Inception Network),在 100 個(gè) GPUs 和不到 65 小時(shí)的訓練時(shí)間下,達到了 78% 的正確率。即便是更小的集群,或者只是你桌子下面的幾臺機器,都可以受益于分布式的 TensorFlow,因為增加了更多的 GPUs 提升了整體的吞吐量,并且更快生成準確的結構。
圖:TensorFlow 可以加快訓練生成網(wǎng)絡(luò )的速度,使用 100 個(gè) GPUs 能達到 56 倍。
分布式訓練也支持你使用像 Kubernetes 這樣的集群管理系統,以進(jìn)行擴大規模的訓練。更進(jìn)一步說(shuō),一旦你已經(jīng)訓練了模型,就可以部署到產(chǎn)品并且加快在 Kubernetes 使用 TensorFlow 服務(wù)的推理速度。
除了分布式生成器,TensorFlow 0.8 還發(fā)布了定義你自己分布式模型的新庫。TensorFlow 分布式架構允許很靈活的定義模型,因為集群中的每個(gè)進(jìn)程都可以進(jìn)行通用的計算。我們之前的系統 DistBelief(像很多追隨它的系統)使用特殊的“參數服務(wù)器”來(lái)管理共享的模型參數,其中的參數服務(wù)器有簡(jiǎn)單的讀/寫(xiě)接口,以更新共享的參數。在 TensorFlow 中,所有的計算,包括參數的管理,都會(huì )在數據流的圖中呈現,并且系統會(huì )把數據流映射到不同設備的可用處理器中(例如多核 CPUs,一般用途的 GPUs,手機處理器等)。為了讓 TensorFlow 更好使用,我們也推出了 Python 的庫,使之更容易寫(xiě)模型,在一個(gè)處理器中運行,并且擴展到使用多個(gè)副本以進(jìn)行訓練。
這種架構使得它可以更容易的擴大單進(jìn)程的工作到集群中,同時(shí)還可以進(jìn)行新穎的分布式訓練架構的實(shí)驗。舉個(gè)例子,我的同事最近展示了“重新訪(fǎng)問(wèn)分布式同步 SGD”(Revisiting Distributed Synchronous SGD),在 TensorFlow 圖部署,實(shí)現了在圖像模型訓練中更好的“時(shí)間-精度”。
目前支持分布式計算的 TensorFlow 版本還僅僅是個(gè)開(kāi)始。我們將繼續研究提高分布式訓練表現的方法,既有通過(guò)工程的,也有通過(guò)算法的改進(jìn),我們也會(huì )在 GitHub 社區分享這些改進(jìn)。
搶先嘗試
如果你想跳過(guò)復雜的按照過(guò)程,感受 TensorFlow,Google 提供了一個(gè)基于瀏覽器的模擬器,能讓你感受基本的 TensorFlow 和深度學(xué)習。
首先在左邊選擇你要分析的數據,然后在中間選擇和組合道具,最后看輸出的結果是如何和最早的數據相匹配。最開(kāi)始看起來(lái)會(huì )顯得很可笑,但是這很好理解,而且能在抽象層面理解神經(jīng)網(wǎng)絡(luò )是如何運作的。
領(lǐng)導成員
TensorFlow 訓練庫(TensorFlow training libraries)
:Jianmin Chen, Matthieu Devin, Sherry Moore and Sergio Guadarrama
TensorFlow 內核(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
工程領(lǐng)導(Engineering leadership)
:Jeff Dean and Rajat Monga
TensorFlow 更新歷史
2016.4.13
Announcing TensorFlow 0.8 – now with distributed computing support!
2016.3.23
Machine Learning in the Cloud, with TensorFlow
2016.3.23
Scaling neural network image classification using Kubernetes with TensorFlow Serving
2016.3.9
Train your own image classifier with Inception in TensorFlow
2016.2.16
Running your models in production with TensorFlow Serving
2016.1.21
Teach Yourself Deep Learning with TensorFlow and Udacity
2015.12.7
How to Classify Images with TensorFlow
2015.11.9
Google’s latest machine learning system, open sourced for everyone
最后,記得關(guān)注微信公眾號:鎂客網(wǎng)(im2maker),更多干貨在等你!
硬科技產(chǎn)業(yè)媒體
關(guān)注技術(shù)驅動(dòng)創(chuàng )新
