开源后5个月,Google的深度学习都有哪些改变?
發布時間: 2016-4-17 13:37:05 ?
2016年4月14日,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 終于到來了。
?
TennsorFlow 0.8發布了,它有一些很好的改進。它為分布式的版本做了一些改變,而且把它們包裹起來使之更容易使用。這篇博客還介紹了用分布式系統訓練卷積圖像識別模型的一些可擴展的數字。
?
| Google 官方博客介紹
?
TensorFlow:
?
TensorFlow是為使用數據流程圖的數值計算開發的開源軟件庫。圖中的節點表示數學運算,而圖的邊代表著彼此溝通的多維數據陣列(Tensors)。在只使用單個API的情況下,靈活的架構可以讓你在桌面、服務器或者移動設備的單個或多個CPUs和GPUs部署計算。TensorFlow最早由Google Brain團隊的研究人員和工程師研發,目的是管理機器學習和深度神經網絡的研究工作,但是這個系統也足夠通用,適用于其他的應用領域。
TensorFlow 0.8:支持分布式計算
Google 在很多的產品中都使用了機器學習技術。為了不斷改進我們的模型,最為重要的是訓練速度要盡可能的快。要做到這一點,其中一個辦法是在幾百臺機器中運行TensorFlow,這能夠把部分模型的訓練過程從數周縮短到幾個小時,并且能夠讓我們在面對不斷增加的規模和復雜性的模型時,也能夠進行實驗。自從我們開源了TensorFlow,分布式的版本就成為最需要的功能之一了。現在,你不需要再等待了。
?
今天(4月14日),我們很興奮地推出了TensorFlow 0.8,它擁有分布式計算的支持,包括在你的基礎設施上訓練分布式模型的一切支持。分布式的TensorFlow由高性能的gRPC 庫支持,也能夠支持在幾百臺機器上并行訓練。它補充了我們最近的公布的Google云機器學習,也能夠使用Google云平臺訓練和服務你的TensorFlow模型。
?
為了和TensorFlow 0.8版本的推出保持一致,我們已經發表了一個“分布式訓練”給TensorFlow模型庫的生成圖像分類的神經網絡。使用分布式訓練,我們訓練了生成網絡(Inception Network),在100個GPUs和不到65小時的訓練時間下,達到了78%的正確率。即便是更小的集群,或者只是你桌子下面的幾臺機器,都可以受益于分布式的TensorFlow,因為增加了更多的 GPUs 提升了整體的吞吐量,并且更快生成準確的結構。
圖:TensorFlow 可以加快訓練生成網絡的速度,使用 100 個 GPUs 能達到 56 倍。來源:Google
?
分布式訓練也支持你使用像Kubernetes這樣的集群管理系統,以進行擴大規模的訓練。更進一步說,一旦你已經訓練了模型,就可以部署到產品并且加快在Kubernetes使用TensorFlow服務的推理速度。
?
除了分布式生成器,TensorFlow 0.8還發布了定義你自己分布式模型的新庫。TensorFlow分布式架構允許很靈活的定義模型,因為集群中的每個進程都可以進行通用的計算。我們之前的系統DistBelief(像很多追隨它的系統)使用特殊的“參數服務器”來管理共享的模型參數,其中的參數服務器有簡單的讀/寫接口,以更新共享的參數。在TensorFlow中,所有的計算,包括參數的管理,都會在數據流的圖中呈現,并且系統會把數據流映射到不同設備的可用處理器中(例如多核CPUs,一般用途的GPUs,手機處理器等)。為了讓TensorFlow更好使用,我們也推出了Python的庫,使之更容易寫模型,在一個處理器中運行,并且擴展到使用多個副本以進行訓練。
?
這種架構使得它可以更容易的擴大單進程的工作到集群中,同時還可以進行新穎的分布式訓練架構的實驗。舉個例子,我的同事最近展示了“重新訪問分布式同步 SGD”(Revisiting Distributed Synchronous SGD),在TensorFlow圖部署,實現了在圖像模型訓練中更好的“時間-精度”。
?
目前支持分布式計算的TensorFlow版本還僅僅是個開始。我們將繼續研究提高分布式訓練表現的方法,既有通過工程的,也有通過算法的改進,我們也會在GitHub社區分享這些改進。
?
搶先嘗試
來源:TensorFlow
?
如果你想跳過復雜的按照過程,感受TensorFlow,Google提供了一個基于瀏覽器的模擬器,能讓你感受基本的TensorFlow和深度學習。
?
首先在左邊選擇你要分析的數據,然后在中間選擇和組合道具,最后看輸出的結果是如何和最早的數據相匹配。最開始看起來會顯得很可笑,但是這很好理解,而且能在抽象層面理解神經網絡是如何運作的。
?
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
總結
以上是生活随笔為你收集整理的开源后5个月,Google的深度学习都有哪些改变?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单形象又有趣地说说强大的神经网络
- 下一篇: 搜索与机器学习