如何評價Google發布的第二代深度學習系統TensorFlow?

【重磅】谷歌第二代深度學習系統TensorFlow首次解密(70PDF下載) -- 楊靜lillian -- 傳送門

Google資深系統專家Jeff Dean在最近的灣區機器學習大會做了 Large-Scale Deep Learning for Inelligent Computer Systems 的演講。


在大會上,Jeff Dean 解密了谷歌未曾在論文上發表過的第二代深度學習系統TensorFlow。

演講slides:http://stanford.edu/~rezab/nips2014workshop/slides/jeff.pdf


個人的一點看法:
1. TensorFlow是採用的DataFlow的數據流模型,不過我不覺得和Dryad有太多相似之處,此外Dryad也不是第一個提出DataFlow模型的地方,要說最早可以參考MIT TaggedToken
machine裡面的static dataflow 和dynamic dataflow architecture[2]的資料. 在一個大規模機器學習系統上全面、可靠的支持DataFlow的feature本不是一件容易的事情,但是Tensorflow做到這一點,支持control_dependence, merge, condition,for-loop/while-loop, iteration。1. 就像LSTM的unrolling,原來需要predefine unroll,現在用for-loop去做展開(內部維持狀態的變化) 2. 還有比如一些演算法需要對不同的input example做不同的訓練(不同的gradient,更新不一樣的variables),以前需要hack很多東西(至少在DistBelif上是),現在只需要一個ConditionOp就解決了。3. 比如不同的variables用不同的optimizer,SGD/AdaGrad/FTRL/Momentum等。有了ControlFlow的支持,tensorflow graph更像是一種語言的抽象(variables, tensors, controlflow, compile[這個是指會rewrite整個graph, send/recv node, un-reference, graph partition, dynamic placement], parallelism,functional programming等),從這個角度講還是有不少新東西在裡面。

2. 是否用Dataflow和BSP並無直接對應關係,Dataflow只是tensor/token的流動,怎麼 schedule和控制流動是別的部分的事情(session 如何drive)。事實上,Tensorflow提供的靈活性用戶很容易在上層做BSP(如果你非常喜歡這樣做的話,這種模型最大的缺點是fault tolerance很難做),SSP(如果非要把這個概念引入的話) 或者parameter server的結構(事實上我從來不認為這是一種通用的結構,只是ps被centralized起來存有狀態的variables而已, 5年前的DistBelief就是這種架構),有了這個框架的抽象,然後進一步你可以做Synchronous or Asynchronous training。所以說Dataflow只能做BSP,這個是很沒有緣由的。

3. 數據表示成tensor/token,單單這一點非要說這個有多少的創新確實也談不上。不過基於tensor的每一個single op怎麼做實現就有考究了,從Eigen開始到每一個kernels op基本都有micro-benchmark來保證單個op的performance達到最優,既然是kernel級的tensorflow的框架支持用戶可以隨便擴展GPU、CPU甚至即使是CPU的可以針對不同的指令級做優化和定製。當然任何事情有得就有失,大的系統的設計本身就是trade-off,比如你本來所有的東西揉在一起操作指針、inplace內存讀寫就可以,但現在抽象成多個各個粒度的operators,operators之間讀寫難免有很多overhead(當然graph rewrite已經最大限度的避免)。所以概括而言TensorFlow採用(目標)的設計其實是是production級的performance/成熟度和research flexibility的trade-off。從Google內部的各種產品線(Search/inbox/Photo等)的使用看,這個系統無論從各個方面都是經受住了考驗(performance/scalability/flexibility/usability等)。Ps: TensorFlow絕不是只能做deep learning, shallow/wide model 以及傳統的ML都可以基於這個系統來做(當然一些operators並不現成,需要去實現)。

4. 最後說一下多機版本的開源問題。有各種複雜的因素導致了這次release的版本沒有多機在裡面,比如並沒有很好的job shedule和高性能的RPC系統的支持。這個問題不深入講但是希望不久的將來這些障礙都會排除。說到和DistBelief的性能比較,各種大大小小的task表明Tensorflow比DistBelief的性能提高不少(我不會說幾X的這樣的number,顯然不同的tasks這個number的variance會很大. Tensorflow比DistBelief擴展性和靈活性的優勢自然不用多少)要說開放出來比較數據更是沒有意義,因為DistBelief本身並沒有開源。

5. 再來說一下distributed version support的問題,如果你仔細研究一下Tensorflow的framework就會發現再當前的基礎上加一個分散式的支持是相當容易的,你可以用Zeromq/MPI 任何一種高效的通信框架來做,結合當前的Graph rewrite的functionality,只需要增加一些通信的節點就可以。

6. 最後關於詳細情況請參考Tensorflow writepaper[3],歡迎試用。

[1]: Arvind and David E. Culler. Annual review
of computer science vol. 1, 1986. chapter
Dataflow Architectures, pages 225–253. 1986 http://www.dtic.mil/cgi-bin/GetTRDoc?Location=U2
doc=GetTRDoc.pdfAD=ADA166235.
[2]: Arvind and Rishiyur S. Nikhil. Executing a program
on the MIT tagged-token dataflow architecture.
IEEE Trans. Comput., 39(3):300–318, 1990.
http://dl.acm.org/citation.cfm?id=78583.
[3]: TensorFlow:
Large-Scale Machine Learning on Heterogeneous Distributed Systems


我極少在公開場合質疑或批評別人的工作,但是Google這次的宣傳與實際開源的東西差別太大,忍不住出來說幾句。在尚未確定能否發布分散式版本之前,把一個單機工具描述成 」Today we』re proud to announce the open source release of TensorFlow -- our second-generation machine learning system [4]「 , 」Why Google Is Giving Away Its Artificial Intelligence Secrets [5]",這樣的claim是否過大? 不管是工業界還是學術界,都應該珍惜機器學習(或者人工智慧)今天這來之不易的局面,在宣傳與推廣自己工作的時候實事求是,不給公眾造成誤導。

=========================================

仔細研讀了TensorFlow的開源代碼文檔和slides,總體印象是:一個新的單機深度學習工具包,沒有明顯的理論和系統創新,開源版本不支持分散式,所以對大規模深度學習沒有太大益處。

1. 編程模式。採用了一種稱作「computation graph」的數據流編程模式,這種模式在之前很多系統中已有實現,如微軟Dryad [1], Spark。
2. 數據表示。稱作為」Tensor「,統一來表示向量、矩陣、三維及以上張量。類似的抽象在之前很多系統與工具中已有。大部分機器學習操作的對象(數據或者參數)都是以向量、矩陣的形式存在,少部分是張量。統一表徵成"tensor"沒有問題,但在創新性上貢獻有限。
3. 開源版本不支持分散式。單機的深度學習工具已經不下10個,Google沒有提供測評數據顯示TensorFlow相比這些工具在性能上有優勢。市面上真正缺乏的是能夠支持大規模深度學習的分散式框架或系統,而TensorFlow開源版本並沒有提供。

希望TensorFlow能夠開源分散式版本。如果不方便開源的話,希望在以後的宣傳中清晰指出開源版本是一個單機深度學習工具,而不是支持大規模深度學習的系統,這二者有本質的區別。

[1] Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks
[2] A Comparison of Lasso-type Algorithms on Distributed Parallel Machine Learning Platforms
[3] Petuum: A New Platform for Distributed Machine Learning on Big Data
[4] http://googleresearch.blogspot.com/2015/11/tensorflow-googles-latest-machine_9.html
[5] Google Is Giving Away TensorFlow AI Software to Developers


一些個人的看法:這個工作最大的價值不在於系統如何實現,而是在於一個分散式機器學習的集群應該如何抽象:一個機器學習的流水線應當作為一個數據流(DataFlow)來刻畫和抽象

一個生產級別的機器學習任務除了訓練模型(Model Training)外還涉及很多相關的數據處理周期。例如,Data ingress, Filtering (Sampling), Cleaning,Egress,Storage,Serving等等。用數據流來統籌整個機器學習任務的流水線是更加自然的表達。在系統易用性和性能上得到一個較好的折中。這種抽象能夠

  • 更好的讓機器學習任務嵌入到日常的生產級別的分散式數據處理任務之中,例如:廣告定價,推薦系統,集群監控等等。
  • 更好地利用多年來數據流系統的研發經驗來優化機器學習任務在異構硬體(例如說GPU,FPGA,多核CPU等)上的表現。

另一方面,谷歌也相當於承認了第一代系統DistBelief裡面提供的Parameter Server(PS)的架構稍顯局限:PS不應作為機器學習集群的核心,而是一個高度優化的具有狀態的數據流節點(Stateful Iterative Operator)。PS的架構實質上衍生於Client-Server架構,並針對向量和迭代計算做了大量的優化。這種架構針對於模型優化階段提供良好的伸縮性是足夠好的。但是,如何將其嵌入到生產級別的機群(例如說YARN)裡面相對不那麼直觀,並且維護起來非常困難。

在DistBelief發布後,大家普遍認為谷歌在嘗試使用基於圖和數據流來搭建機器學習集群取得的性能效果不理想,因此轉而採用PS來實現生產級別的機器學習任務。這次發布TensorFlow也相當於對於DistBelief的經驗做了總結,指出了機器學習任務其實是可以(並且應該)統籌於圖和數據流計算模型之下的。

不過很遺憾的是,這次開源的TensorFlow是單機實現。其最有價值的分散式數據流實現,並沒有開源。


說明內部已經在用第三代了。。。


感受一下


開源了,粗略一看,被那龐大的operator庫給嚇到了。
又看了看怎麼實現的,看到一堆字元串,竟然是在用c++進行符號式編程。。給google的大神跪了。
---------------------------------------------------------
昨晚一直奇怪,符號編程怎麼能達到高效率呢?今天早上看微博上有人出了評測結果,速度比mxnet慢了1倍(cifar10,400/sec vs 800/sec),顯存消耗也大很多。
竟然用的還是cudnn v2版本,安上最新版的cuda之後竟然無法安裝tensorflow,這果然是google的上一代引擎么?
現在暫時持觀望態度,先把mxnet學好再說,畢竟這個更加開放,以後不會有版權糾紛問題,而且幾乎完全由國人開發,我們要多多支持自己人搞出來的東西。
相比tensorflow來說,mxnet只是少一些operator,在速度、顯存消耗、兼容性等方面都完勝tensorflow。我們要多多貢獻代碼,儘快完善mxnet的operator呀。


1. 個人感覺完全沒有乾貨啊,不過確實對深度網路做了很好的抽象。個人意見依然是一個深度學習平台最重要的是平台的易用性;介面的設計,不同語言、不同數據類型的支持;需要保證每一個場景都能夠有不錯的model跑出來很重要。
2. 感覺另外一個點:提到演算法可以運行在電話(手機),單機CPU上,這個是一個大的特點,應該是向輕量級應用blooming的轉變的信號。


看到有噴沒有開源分散式版本的,jeff dean在github回復了,是因為分散式版本和google內部架構耦合,還需要做些後續工作,已經提上日程了。有點兒類似於第一個版本先佔個坑,培養用戶,後面發布一個分散式版本還能再搞一次大新聞,何樂而不為啊。

Link:
Distributed Version · Issue #23 · tensorflow/tensorflow · GitHub


瀉藥。
總感覺沒有太大的革新啊……雖然他的一代我都沒用過,但是感覺二代也並沒有很黑的科技。
反觀微軟,牛津計劃(Project Oxford)能夠幫助非機器學習領域的開發者解決人臉識別和自然語言解析等問題,開發者只需要玩好API即可。現在,這一系列免費開發工具已可以在GitHub上找到,語言理解智能服務(LUIS)也已開放,並提供中文支持
http://blogs.technet.com/b/machinelearning/archive/2015/10/26/microsoft-expands-availability-of-project-oxford-intelligent-services.aspx

這個感覺還有意思一點


這不是Google自家的Theano或Torch么?還是我理解的有問題。。。


更新:

基於 LSTM 的學習項目。

TensorFlow-Bitcoin-Robot:Tensorflow 比特幣交易機器人

TensorFlow 一個月從入門到作出 github 200 star 的項目:

我們常看到用機器學習識別字體,自動駕駛等項目,今天給大家推薦一個有趣的項目 FaceRank,這是個開源項目,它基於 TensorFlow CNN 模型,提供了一些圖片處理的工具集,後續還會提供訓練好的模型。

從此以後,讓它來幫你尋找高顏值的小電影,幫你篩選附近高顏值的妹子(漢子),讓它幫你給學校或者公司帥哥美女做個排行榜,讓它給明星打分並且你可以自豪的說「一切都是人工智慧的選擇」。。。

以下是機器給蒼老師的打分。

fendouai/FaceRank


google頭一次讓人莫名地失望, 總覺得有些華而不實, 或搞了噱頭但有意地抽掉關鍵功能
這裡跟另一個我用的框架比較 deeplearning4j 及其分開的數值庫 nd4j 也是支持張量的

1. 雖然已實作的網路種類很廣, 但不少都是那種只要框架本身架構好些, 就挺容易自行擴展實現的, 對任何有自行編程擴展能力的人來說, 這不能算是個好處. 因為深度學習架構日新月異, 更重要的是實作新架構的彈性, 這點tensorflow目前略勝, 用Java還是有點痛苦的. 但若是用其他支持設計DSL的JVM語言如Scala或Groovy等, 也是大有可為. 已經有人用Scala或Groovy的DSL搞出一個Dataflow或甚至reactive的範式用於界面設計, 雖還沒人用在深度學習架構上, 但這只是有沒人要做的問題. python C++ 不支持DSL, 沒辦法自然地嵌入其他範式, 硬做成dataflow還是有些難看的

2. 暫時不支持分散式, 不知道要等到猴年馬月才會釋出, 說不定根本不會釋出, 用了說不定就被Google服務給綁架了, 說綁架是情緒化些, 但這確實是Google常用的商業模式, 用所謂的開源軟體搭配閉源且很關鍵的服務. 現在應用場景的數量級一個比一個大, 沒分佈式只能玩玩具. 但此時已經有兩個用java寫的框架支持分佈式, 似無必要作此賭注. 其中一個是我沒用過的SINGA, 及我用的 deeplearning4j

3. deeplearning4j 後端可抽換, 有 spark 後端支持分佈式, 還有更輕量的 Akka 分佈式後端, 另外Spark後端支持在每台主機上用Cuda加速, 甚至還貌似很容易的加上了有zookeeper跟這個我不知道是什麽的分佈式後端, 若第1點講的是語言界面前端的彈性, 這第3點就是講後端的彈性了, 兩端的可攜性都強到一定境界. 若是Tensorflow也要增加新後端, 恐怕是到處都在定義 Protocolbuf, 這點 另 Tensorflow 相形見絀

4. Tensorflow把能在其他cpu架構上跑當作賣點, 但很不巧 deeplearning4j 選上了JVM, 不用什麽調整就能在手機上跑, 只要你用不依賴原生函式庫的純Java後端像是JBlas


今天,Google選擇了開源其第二代深度學習系統TensorFlow,同全世界的開發者免費分享其人工智慧背後的一條條源代碼,有需要者可以直接訪問項目網站http://tensorflow.org/ 。


想要了解TensorFlow,多位業內專家推薦閱讀Google最新發布的白皮書TensorFlow: Large-Scale
Machine Learning on Heterogeneous Systems 。(下載地址:http://download.tensorflow.org/paper/whitepaper2015.pdf)

Tensor(張量)意味著N維數組,Flow(流)意味著基於數據流圖的計算,TensorFlow即為張量從圖象的一端流動到另一端。TensorFlow 表達了高層次的機器學習計算,大幅簡化了第一代系統,並且具備更好的靈活性和可延展性。TensorFlow一大亮點是支持異構設備分散式計算,它能夠在各個平台上自動運行模型,從電話、單個CPU / GPU到成百上千GPU卡組成的分散式系統。


根據Google的介紹,TensorFlow支持CNN、RNN/LSTM等機器學習演算法,擁有C++/Python編程介面。官網介紹透露,著名的GoogLeNet就用TensorFlow訓練的。GoogLeNet是一個22層的深度網路,奪得過2014年ILSVRC(大規模視覺識別挑戰賽)冠軍,在比賽中將Top-5 的錯誤率降低到6.67%。


TensorFlow最早是在2015年10月的灣區機器學習大會(BayLearn 2015)上亮相的。當時,Google 資深系統專家Jeff Dean做了題為Large-Scale Deep Learning for Intelligent Computer Systems的演講,介紹了Google未曾在論文上發表過的第二代深度學習系統TensorFlow。


Dean是Google的傳奇人物,在1999年加入公司時,他在計算機科學圈子裡就已聲名遠揚。聘任Dean可謂是Google的一個里程碑,彼時公司還默默無聞,員工只有兩位數。在隨後幾年裡,Dean成為構建Google軟體基礎構架的領軍人物。


矽谷流傳著許多關於極客Dean的傳說。據說某天他出門時誤將Etch-a-Sketch畫板當成筆記本電腦了,在回家拿電腦的路上,他對畫板進行了編程,用它來玩俄羅斯方塊。


現年46歲的Dean在本科論文項目中就曾用過現在熱門的神經網路。然而他曾和大部分同行得出過相似的結論:神經網路的黃金時期尚未到來。Dean當時認為:「神經網路前途無量,但因為我們尚沒有足夠的計算能力使其一鳴驚人,神經網路一度銷聲匿跡。」


人工智慧的新路徑


然而風向已轉。現在,深度學習被視為是超越機器學習的關鍵一步,已經成為人工智慧領域最熱門的話題。不僅是Google,Microsoft、IBM和Facebook等巨頭都開始積極招攬這個領域中為數不多的科學家。


深度學習基於人腦結構,一層層互相連接的人工模擬神經元模仿大腦的行為,處理視覺和語言等複雜問題。這些人工神經網路可以收集信息,也可以對其做出反應。它們能對事物的外形和聲音做出解釋,還可以自行學習與工作,不需要人為提示或者參與控制。


深度學習從邊緣課題變成Google等網路巨頭仰賴的核心技術,背後的科學家是Geoffrey Hinton。早在 80 年代初期,Hinton和他的同事們就開始研究深度學習。然而彼時電腦還不夠快,不足以處理有關神經網路的這些龐大的數據。當時AI研究的普遍方向也與他們相反,人們都在尋找捷徑,直接模擬出行為而不是模仿大腦的運作。

Hinton堅持了下來,即便是到了2004年,學術界對他們的研究仍未提起興趣。而這時距離他們首次提出「反向傳播」演算法已經過了20年,這一演算法是神經網路研究的墊腳石。這一年,靠著少量資金支持,Hinton創立了Neural Computation and Adaptive Perception(NCAP,神經計算和自適應感知)項目。


NCAP定期舉行研討會,這加快了研究步伐。最終,他們建立了更有效的深度學習演算法,贏得全球AI界的關注,並吸引到了網路巨頭們。2011年,NCAP研究成員、斯坦福大學副教授吳恩達加入Google擔任顧問,之後Hinton也加盟了Google。今天,Google正在用神經網路來幫助識別Android手機上的語音命令和網路搜索中的圖像。2014年,吳恩達離開谷歌加入百度,以發展後者自己的人工智慧項目。


谷歌大腦


也就是在2011年,Jeff Dean在公司茶水間里遇到了吳恩達,彼時吳每周會花上一天時間呆在Google。Dean問吳恩達在忙些什麼,吳恩達的回答令他大吃一驚——「我們在試圖訓練神經網路」。吳恩達告訴Dean,伴隨著深度學習領域的突破,神經網路表現頗佳,如果Google可以掌握訓練大型網路的技術,奇蹟就會發生。


在隨後的6個月里,Jeff Dean理解了這些進步,相信建立一個龐大神經網路系統能很快取得實質成果,並著手和吳恩達合作將深度學習研究變為獨立項目。這一項目被稱作Google Brain,立項於Google X。2012年,在研究積累了一定成果後,項目組走出了純實驗部門Google X ,轉移到Knowledge部門。


Google
Brain最開始嘗試的是無監督學習(Unsupervised Learning),因為「這個世界處在監控外的數據遠多於監控下的數據」。根據項目組的第一篇論文,Google Brain在當時擁有1.6萬個多個微處理器,創建了一個有數十億連接的神經網路,在一項實驗中觀看了千萬數量級的YouTube圖像。在接受《紐約時報》採訪時,Dean表示該系統從圖像中自主辨識出了「貓」,「在訓練中,我們從未告訴它『這是一隻貓』。基本上可以說,它發明了貓這個概念。」


這項測試只是開始,深度學習項目組很快就新建了一個更加強大的神經網路,並將之應用到語音和圖像識別等任務上。在2013年的國際機器學習大會(ICML)上,Google語音搜索組專家Vincent Vanhoucke展示了深度學習的威力:僅僅用了3個月時間,語音搜索的相對錯誤率減少了10%。在搜索領域,這堪稱天文數字。


事實上,早在20世紀80年代末與90年代,神經網路就在語音及音素識別上有了應用,但受限於當時演算法和硬體,並沒有被廣泛採納。隨後神經網路在語音世界裡消失了近10年,直到2010年左右深度學習熱潮興起後才重回人們的視野。


在圖像識別方面,4位Google深度學習科學家在2014年發表了一篇題為「Show and Tell: A Neural Image Caption Generator(NIC,神經圖片標題生成器)」的論文,展示了神經網路為圖片自主擬出標題的技術。NIC堪與圖片編輯相比,是一項包含視覺和語言要素的大型實驗。其非凡之處在於,它將可視化圖片的學習系統建立在神經網路的基礎上,而後者可以用自然語言造句。


TensorFlow與Google Brain的未來

2015年10月5日,Google為其第二代深度學習系統TensorFlow提交了註冊商標申請。第一代系統名為DistBelief,其可擴縮性優良,但用於研究時靈活性不足。在2015灣區機器學習大會上,Jeff Dean對DistBelief的應用以及出現的問題進行了總結,也闡述了TensorFlow之所以出現的重要原因。


自從Jeff Dean深度學習小組從Google
X轉移到Knowledge部門,他們就一直與搜索團隊進行著密切合作。Google Brain已經成為公司的一個人工智慧工具,Dean透露Google現有35到40個小組在使用它,除了搜索和語言,這項技術在廣告、街景和自動駕駛方面都有應用。


他們現在所做的嘗試之一是打造一個更好的實時翻譯軟體。此前,微軟展示了Skype通過聲音完成實時翻譯的技術。Dean認為Google新的深度學習系統在識別語音細節方面更勝一籌,通過訓練一對對用兩種語言表達但意義一致的句子,僅通過神經網路就可以實現點對點的語言翻譯。Dean 表示:「如果對現有技術進行擴展,未來可以做更震撼的事情。」


2004年,Google的兩位創始人拉里·佩奇(Larry
Page)和謝爾蓋·布林(Sergey Brin)曾經半開玩笑地預言,計算機將被植入人類大腦,搜索會成為大腦的一種活動。11年之後,Google並沒有將搜索功能植入大腦,但它正在打造屬於自己的人工智慧大腦,第二代深度學習系統TensorFlow正是通向未來的里程碑之一。

【黑匣(微信號:blackxtech)出品,謝絕轉載。】

專註於人工智慧、虛擬現實與智能硬體的資訊平台


為了讓國內的技術人員在最短的時間內迅速掌握這一世界領先的 AI 系統,極客學院 Wiki 團隊發起對 TensorFlow 官方文檔的中文協同翻譯,一周之內,全部翻譯認領完成,一個月後,全部30章節翻譯校對完成,上線極客學院Wiki平台並提供下載。鏈接附上:TensorFlow官方文檔中文版_TensorFlow中文教程_TensorFlow開發中文手冊[PDF]下載
有興趣的可以自己去看看相關內容。


大夥是不是該開個新帖子討論一下新發布的分散式版本?


已經開源了,以後應該會成為一個重要的行業標準


我的關注點完全了不同。
難道整個社會沒有關心關鍵指標的差異嗎?

1,是否有公認的測試數據和指標?
有沒有benchmark 什麼的,直接跑出個值。大家有個基本概念。
2,社區有根據單機版預測分布版的指標嗎?
沒有分布版的時候,大家都在叫。難道沒人自己做個分布版,然後做個預測嗎?
有了分布版預測,然後發布的分布版進行對比,到底這指標差多少?
3,有行業指標和google 指標進行對比,沒人說明其革命性在哪裡嗎?
如果你寫的分散式有95%弱於google,但是5%的強於google。
那麼你自己的公司說不定就能賣給google了,畢竟這5%也是價值啊。

總之,我只看到,花花的嘴炮,沒看到從工程角度的細節分解啊。


題目中演講slides的鏈接給錯了,應該是這篇吧 Large-Scale Deep Learning forIntelligent Computer SystemsJeff Dean


@謝澎濤 估計根本沒在工業界幹過。

這玩藝的價值不是說開源了你就能拿它寫個東西放data center去跑的。這玩藝開源部份的價值是問題抽象。Jeff Dean作為主要作者,他造的輪子向來都是業界知名的(MapReduce, GFS等)。我們這些小屁孩得關心的是那麼複雜的問題,這些會造輪子的人牛們,是如何設計及架構這個東西的。

至於你說性能,Google的東西給你個硬盤讓你把代碼全拷回家你也不可能跑起來,那是整整20年的工程積累,tensorflow運行的環境,有無數個類似tensorflow這樣的Google內部項目作支撐的,根本不可能開源,開了你連怎麼裝都不知道。現在tensorflow這堆人是在做一個多機版的給外界用,但是你放心,即使做出來了,性能也一定和Google內部版本的差遠了(就如hadoop的性能沒法和mapreduce比一樣)。對於不是在企業而是在學校裡玩的小朋友,拿著單機版的東西寫兩三個模型跑跑就夠了。

這玩藝開源的目的就是讓外界知道輪子怎麼造,給業界定個標準,以後大家的模型都按Google的API和架構造,Google自己招人也方便,使用學界的模型也方便。本來目的就不是讓學界能夠建個data center去跑大項目,或者給Google的競爭對手們一個能直接佈署的平台用的。最經濟受惠的可能是要搞startup的人,不用太多工程師就能搭出個簡單的東西來。


這個系統是劃時代的 而且馬上要就要開源了


推薦閱讀:

如何理解我的母親反對我「不嫁鳳凰男」的想法?
編程領域都有哪些牛逼閃閃的「禁術」?
由小鮮肉變大叔是一種什麼樣的體驗?
手握權力是種怎樣的體驗?
穿Lolita裝是種怎樣的體驗?

TAG:機器學習 | 谷歌 (Google) | 如何看待/評價 X | 深度學習(Deep Learning) | TensorFlow |