剛剛,我用一分鐘之內瀏覽完一篇Yahoo!機器學習研究團隊的貼文(註)後,嘆了一口氣,也鬆了一口氣。
能一分鐘看完,是因為這篇所講的,剛好就是我上週雇到一位研究助理所要做的事:請他去整合和研發出一套能用GPU加速Hadoop/Spark的系統。因為我們已經做過一些研究(例如Hadoop接上GPU,也裝過Caffe/OpenCL),所以我想這套系統應該可以在幾個月內建置出來,主要還是因為人員的訓練需要花時間。(想來工作嗎?)
嘆一口氣,是因為「想做的東西已經被做出來了,而且幾乎和我想得一模一樣」,所以感嘆我們的進度緩慢:一年前就想做的事,因為資源、人力不足,到現在才有比較足夠的能量來用力動手做。
鬆一口氣,也是因為「想做的東西已經被做出來了,而且幾乎和我想得一模一樣」,那證明我們沒想錯方向,所謂「英雄所見略同」。往好處想,我們就可以省點事,只要搞懂人家的東西,有辦法在人家做好的東西上面堆東西就好。
例如,在上面加上Google最新的開源碼機器學習軟體TensorFlow,或是用FPGA來加速如何?
坦白說,我在國內演講、談論這類想法時,最後不少聽眾總是以「你講得很對,但我們還是等等好了」的態度結束對話。我可以體諒這些聽眾們肩上的包袱,所以當面也沒想對他們個人說什麼,但很不客氣地在此說一聲,就是因為這樣不思進取的文化,把產業給拖垮了。
幾個月前,某家大公司的老闆與我談完後,說他很少遇到有這樣想法的學界人士,很欣賞我們的做法,交代手下要找我合作,但之後與他派來的手下談沒兩下,我就傻眼了。跟我說他們公司在雲端產業上做了很多研發工作,但每當我要切入技術面做深入討論時,他就顧左右而言他。
已經有多次了,我發現有不少大公司的中階主管,只會從國外廠商那邊道聽塗說,知道很多專有名詞,知道供給與需求的現況,但根本不懂系統軟體的技術面,也不懂如何創新研發。之後那家公司沒再連絡,我相信老闆的企圖心,但不知中階主管是如何對老闆回報?
我猜,草草了結的可能原因有三。第一,他不在狀況內,似乎有聽,但我不知他是否有懂;第二,他自己本身應該已經有一大堆工作和責任,大概會選擇跳過這種短期無法收割的研發,老闆如果問起,可能就隨便打發掉,反正我跟他又不熟;第三,老闆日理萬機,極有可能想不起來這檔事,我這個人又不喜歡勉強別人,不會主動去提醒他。
但是沒關係,反正國內還是有識貨的公司,資源雖然不多,還好這裡面用到的全都是開源碼軟體,不需要花大筆錢買,我們可以靠自己來努力,讓自己跟上時代,這也就是目前我所謂推動「開源系統軟體」的想法。我們靠自己來做點東西,就像自造者一樣(maker),有機會做出令人刮目相看的東西。
不過,要學這類效能導向的系統技術,不像學純軟體,必須要有個像樣的系統,光是在建置實驗環境上就很傷腦筋。我們最近好不容易拼湊出一個麻雀雖小、五臟俱全的運算叢集,花了很大力氣去湊錢,還得幫設備找空間,很麻煩的。
我們自己建一個以100Gbps Ethernet為骨幹網路的叢集,接上儲存、計算兩用的端點,有大磁碟空間、大記憶體、GPU,上面用KVM和Docker Container跑Hadoop、Spark、Caffe,還特別找廠商來教學生使用高速網卡做RDMA。
雖然人家Yahoo!和Google用上萬台伺服器做的事,我們沒有資源做,但我們可以思考如何善用幾十台伺服器來做研發。一個全高的機櫃可以放進16台3U的機器,最多可以放入總量2PB的硬碟、32TB的記憶體、128TFLOP的GPU。
知道嗎?十年前最快的超級電腦,也不沒有這麼強,現在世界排名第500名的高速電腦,也不見得比較好用。如果能好好發揮這樣的機能,就有很多機會做出很不錯的事,機器學習只是其中之一。
不過,要發揮機能,說的比做的簡單,有多少人做得到呢?就是一般人做不到,才有趣,才要學!我們以自造者的思維來研發創新,自己建系統、瞭解系統、提早把未來的應用發展出來,這是我目前想做的前瞻研發計畫以及想推廣的活動。
人才和教育訓練是最重要的,有意者參加我們的團隊和活動,無論是有心自我學習、有志於前瞻研發、想接觸最新科技,或是關懷學術產業發展單位,我們都熱忱歡迎。
(註)網址:http://yahoohadoop.tumblr.com/post/129872361846/large-scale-distributed-deep-learning-on-hadoop
沒有留言:
張貼留言