當吳恩達還在Google訓練電腦矩陣使用人工智能,識別喵星人視頻時,他并非一帆風順。
Google在世界各地的數據中心擁有海量計算機,對于吳恩達的工作,計算量絕對綽綽有余。但配置如此強大的計算機集群并不是一件容易的事情,如果有一臺服務器忽然當機(如果你同時使用1000臺機器,這種事情幾乎每天都會發生),就會減小準確性。
吳恩達透露,這是深度學習世界里眾多問題之一,如今大數據和人工智能里最熱的議題是:與云計算的發展不符。Google、亞馬遜和Facebook已經使用云計算在數萬臺計算機上運行軟件。
在吳恩達的人工智能實驗后沒多久,一位名叫Adam Coates的斯坦福大學研究人員想出了一個更好的解決方案,他用一種不同的微處理器,圖形處理器GPU(Graphical Processing Unit),將三臺計算機連貫在一起,讓它們像是一個系統一樣運行,結果與Google數千臺計算機的運行效果是一樣的。這絕對是一個非凡的成就。
Coates目前在吳恩達手下,就職與百度。他說,
“和以前支持人工智能的處理器相比,GPU在資源處理上有很大不同,不僅速度更快,同時能在更小系統上緊密整合,成本也得以降低。”
游戲玩家應該對GPU非常熟悉,他們會購買專門的顯卡提升視頻游戲體驗。實際上,在吳恩達的Google人工智能試驗之前,學術界也早已了解GPU,它具有強大的數學處理能力,對深度學習而言再合適不過。一開始,研究人員只為單一系統編寫深度學習軟件,而Coates則在很多基于GPU的計算機上構建深度學習網絡。
Google和Facebook也在使用GPU,當然還有一些著名人工智能實驗室,如橡樹嶺國家實驗室(Oak Ridge National Labs)和勞倫斯·利弗莫爾國家實驗室(Lawrence Livermore National Laboratory)。他們希望利用強大的芯片和速度超快的網絡設備(現以廣泛應用于超級計算機內)支持深度學習的計算能力。
超級計算機遇到深度學習
在橡樹嶺國家實驗室有一個研究設施SNS(散裂中子源),它構建于2006年,曾引爆過世界上最強的材料中子束,幫助物理學家和化學家了解材料內部結構是如何形成的。
SNS產生了大量數據,它們需要被徹底分析。而科學家們相信,他們可以利用深度學習算法快速識別數據類型,提升分析能力。識別數據類型可是深度學習的專長。
但問題是,對于科學模擬來說,每次產生700TB數據似乎太正常不過了,不過這比美國國會圖書館所有信息加起來的量還要大。
不過,在高性能計算機網絡的支持下,現在由GPU支持的深度學習可以解決上述問題。實驗室的Titan超級計算機和Google云有些不一樣,雖然它也是有數千臺計算機組成的計算矩陣,但Titan可以在每臺機器內存實現快速進出、交換數據,并且推送給其他機器。也就是說,研究人員已經能在Titan上利用深度學習算法。
Facebook也使用GPU,但負責深度學習的研究人員Yann LeCun還沒有完全擺脫對CPU的依賴。他說:
“Facebook使用了基于GPU的基礎設施來訓練深度學習模型,傳統CPU集群的處理速度的確太慢了。不過全新的多核CPU芯片,會與GPU產生差不多的效果。”
支持超級計算的軟件
在人工智能被真正認識之前,極客們必須編寫在超級計算機上運行的深度學習軟件。但開發這樣的軟件可能還需要很多年時間才能完成。
吳恩達最初在Google構建“貓咪視頻”的人工智能模型里,有10億個參數,這才多少讓計算機有了點兒人類認知的能力,可以區分照片和視頻里的內容,比如是貓咪還是倉鼠。
勞倫斯利弗莫爾實驗室已經構建出了包含150億個參數的軟件,是Google模型的15倍,人工智能識別能力也會更強大。實驗室負責人Barry Chen說道:
“我們希望項目結束時,可以構建成世界上最大的神經網絡訓練算法,當然這需要高性能的計算機支持。”
Google的方式
那么,Google在做什么呢?它也在向GPU轉型,不過選擇了一條不同的路徑而已。Google構建了一個全新深度學習系統DistBelief,在其龐大而蔓生的云系統上既可以運行GPU,也可以運行CPU。
Google將數字運算工作拆分成了數以百計的小集群,每個集群會配置1到32臺計算機,如此巨大的計算能力讓Google的人工智能軟件水平有了很大提升,可以區分椅子和凳子,還能區分“Shift”和“Ship”這樣的單詞。
當然,Google數據中心內部的計算機也可能會當機,這是不可避免的,但是即便如此,也不會對Google造成太大的影響。事實上,Google整個系統的設計非常棒,用Google研究科學家Greg Corrado的話說,即便有計算機壞了,研究人員們甚至都不會察覺到。
“云計算VS高性能計算,其實和公司文化、可用資源、甚至是企業品味相關。作為Google研究人員,我當然為Google內部系統感到高興。”