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