1
本文作者: 新智元 | 2016-05-12 11:49 |
按:繼Facebook、Google之后,亞馬遜也宣布開源其深度學(xué)習(xí)工具,Open AI成為主流?本文由新智元翻譯自GitHub、Hacker News,介紹了亞馬遜DSSTNE的深度學(xué)習(xí)工具到底是什么,以及和其他開源工具相比有何不同?
另外,今年夏天,雷鋒網(wǎng)將在深圳舉辦一場盛況空前的“全球人工智能與機(jī)器人創(chuàng)新大會”,并發(fā)布“人工智能&機(jī)器人Top25創(chuàng)新企業(yè)榜”榜單。如果你也是人工智能、機(jī)器人領(lǐng)域的相關(guān)公司,想經(jīng)過層層曬選最終入選榜單,可聯(lián)系:2020@leiphone.com。
亞馬遜也被吹上“flow”的風(fēng)口:繼Facebook公開其深度學(xué)習(xí)訓(xùn)練平臺FBLearner Flow細(xì)節(jié)后,亞馬遜昨日下午突然宣布開源其深度學(xué)習(xí)和機(jī)器學(xué)習(xí)工具DSSTNE,并表示與相比其他深度學(xué)習(xí)工具,DSSTNE尤其擅于訓(xùn)練稀疏數(shù)據(jù)。近年來,谷歌,F(xiàn)B和OpenAI先后搭建平臺,亞馬遜也宣布工具開源,人工智能系統(tǒng)未來開源趨勢已成,國內(nèi)公司何時跟上國際潮流?
2016年5月11日下午,亞馬遜在GitHub網(wǎng)站將其深度學(xué)習(xí)和機(jī)器學(xué)習(xí)工具DSSTNE開源(譯注:DSSTNE與英語“destiny”諧音)。亞馬遜方面稱,與其他開源工具相比,DSSTNE尤其擅長訓(xùn)練稀疏數(shù)據(jù)。新智元第一時間搜集信息,并獲得內(nèi)部核心開發(fā)人員對這款工具的詳解。
向來在開源上不那么積極的亞馬遜有了新動作。難道最近在科技巨頭間掀起了一股“開源”的浪潮?我們能否期待接下來蘋果也會把它家的深度學(xué)習(xí)來個開源?玩笑說到這里,下面我們就一起來看看,亞馬遜這個DSSTNE深度學(xué)習(xí)工具到底有什么用處。
根據(jù)GitHub網(wǎng)站消息,DSSTNE是英文“Deep Scalable Sparse Tensor Network Engine”的簡寫,即“深度可伸縮的稀疏張量網(wǎng)絡(luò)工具”。亞馬遜相關(guān)研究團(tuán)隊對DSSTNE的描述是 “一個使用GPU訓(xùn)練和部署深度神經(jīng)網(wǎng)絡(luò)的開源工具”。
亞馬遜的工程師最初創(chuàng)建DSSTNE是用于解決在亞馬遜平臺上需要處理的深度學(xué)習(xí)難題,建立的目標(biāo)是解決現(xiàn)實中深度學(xué)習(xí)應(yīng)用的產(chǎn)品部署問題,在試驗靈活性以外,還強(qiáng)調(diào)速度和規(guī)模。團(tuán)隊希望把深度學(xué)習(xí)的潛力從語音、語言理解和物體識別領(lǐng)域擴(kuò)展到搜索和推薦等其他領(lǐng)域,激發(fā)更多創(chuàng)意。
每一天,有上億人在亞馬遜購物。亞馬遜希望DSSTNE能幫助消費(fèi)者從眾多的商品中發(fā)現(xiàn)想找的東西。而想要做到好的推薦,就需要神經(jīng)網(wǎng)絡(luò)。即便是簡單的3層自動編碼器,加上一個有上億節(jié)點(diǎn)的輸入層(每一個節(jié)點(diǎn)代表一件商品),以及一個包含1000節(jié)點(diǎn)的隱藏網(wǎng)絡(luò),還有一個能反映輸入層的輸出層,所需要學(xué)習(xí)的參數(shù)就可以達(dá)到10億以上。利用目前的硬件,這是很難實現(xiàn)的。即使把神經(jīng)網(wǎng)絡(luò)的大小局限在單一商品目錄和身處美國的用戶,也幾乎要觸及當(dāng)下GPU的能力上限了。
舉例來說,一個3層的自動編碼加權(quán)矩陣,加上輸入時的800萬個界定,以及輸出層和隱藏層的256個節(jié)點(diǎn),運(yùn)行一次簡單的計算就需要消耗8G的內(nèi)存。使用開放資源軟件以及上千萬用戶的消費(fèi)數(shù)據(jù)來訓(xùn)練這樣的網(wǎng)絡(luò),用市場上最快的GPU也得花上數(shù)周才能得到結(jié)果。亞馬遜意識到,如果不能寫出軟件,然后在多個GPU中分配這些計算的話,他們是不會有大的進(jìn)步的。
DSSTNE有一系列的特征:
多GPU伸縮:訓(xùn)練和預(yù)測擴(kuò)展到使用多GPUs,在每一層平行模型拓展計算和存儲。
多層:模式平行伸縮,讓更大型的網(wǎng)絡(luò)成為可能。
稀疏數(shù)據(jù):在稀疏數(shù)據(jù)集中,DSSTNE經(jīng)過了優(yōu)化,可以有更快速的表現(xiàn)。特殊的GPU核心程序在GPU中運(yùn)行稀疏計算。
在一些數(shù)據(jù)稀疏(幾乎所有的數(shù)值都為零)的任務(wù)中,DSSTNE的表現(xiàn)要遠(yuǎn)優(yōu)于當(dāng)下的一些開放資源深度學(xué)習(xí)工具。
DSSTNE是從無到有的一個工具,用于訓(xùn)練數(shù)據(jù)稀疏條件下的模型,其他的數(shù)工具,比如Caffe,Tensorflow,Theano和Torch都擁有大型的功能集以及網(wǎng)絡(luò)支持。
DSSTNE在氣質(zhì)上跟Caffe很像,強(qiáng)調(diào)產(chǎn)品應(yīng)用的表現(xiàn)。在涉及稀疏數(shù)據(jù)的問題中,DSSTNE比其他仍和深度學(xué)習(xí)工具都要快(2.1x compared to Tensorflow in 1 g2.8xlarge),其中就包括推薦難題和許多自然語言理解(NLU)任務(wù)。單個服務(wù)器內(nèi),多GPU運(yùn)行的情況,DSSTNE的表現(xiàn)也比其他的數(shù)據(jù)庫表現(xiàn)要好。DSSTNE能夠在所有可用的GPU中自動分配計算任務(wù),加速所有的計算過程,并能建立更大的模型。
從實際上來看,這意味著它能建立起推薦系統(tǒng),把上千萬種商品囊括到模型中,而不是上萬種,或者能處理包含大量詞匯的自然語言理解任務(wù)。對于這種等級的難題,其他的工具可能會需要轉(zhuǎn)化到CPU來計算稀疏數(shù)據(jù),這會將效果降低一級。另外,DSSTNE的網(wǎng)絡(luò)定義語言會比Caffe的簡單得多,只需要33行代碼來表示通用的AlexNet圖像識別模型,而Caffe語言要求超過300行代碼。
但是,DSSTNE還不支持圖像識別所需要的卷積層,在一些自然語言理解和語音識別任務(wù)所需要的復(fù)發(fā)層中,支持也很有限。
亞馬遜在GitHub網(wǎng)站上給出了使用DSSTNE訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的實例,包含3個基本步驟:轉(zhuǎn)換數(shù)據(jù)、訓(xùn)練、預(yù)測。
1. 轉(zhuǎn)換數(shù)據(jù):
下載數(shù)據(jù)后,把數(shù)據(jù)轉(zhuǎn)換到NetCDF格式。然后在指定數(shù)據(jù)集中嘗試運(yùn)行一個自動編碼器。
1.1 生成輸入數(shù)據(jù)集:
1.2 生成輸出數(shù)據(jù):
2. 訓(xùn)練:3層神經(jīng)網(wǎng)絡(luò)的隱藏層有128個節(jié)點(diǎn)
3. 預(yù)測:
總結(jié)
| 內(nèi)部人員神吐槽
亞馬遜開源DSSTNE的消息發(fā)布后不久,一位前DSSTNE核心開發(fā)成員就在hackernews網(wǎng)站上透露,DSSTNE創(chuàng)建于2年前,專用于在亞馬遜商品目錄中進(jìn)行產(chǎn)品推薦。他表示:當(dāng)時Tensorflow還沒誕生,只有Theano和Torch;DSSTNE通過稀疏數(shù)據(jù)和多GPU跨神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,跟Theano和Torch都不一樣;現(xiàn)在DSSENE還不支持Alex、VGG或者GoogleNet等,但是如果有需要,只用500行代碼就能實現(xiàn)。
那位前DSSTNE核心開發(fā)員還透露,DSSTNE現(xiàn)在還不明確支持RNN,但它支持分享加權(quán)。而雖然CuDNN 5使用幾百行代碼就能支持LSTM,但他認(rèn)為CuDNN中的LSTM是一個黑盒子(Black Box),所以不能擴(kuò)展到多重GPU。
那位程序員還表示,亞馬遜并不完美,但這家公司讓他們從頭開始搭建了這一平臺,然后現(xiàn)在對外開源。據(jù)這位不愿意透露姓名的程序員表示,加入亞馬遜之前,谷歌把他從Nvidia挖去(這是他難以拒絕的幾個offer之一),但2011年卻把他分配到搜索團(tuán)隊,不讓其再涉及GPU的工作,完全沒有考慮到他是Nvidia CUDA團(tuán)隊的創(chuàng)始成員之一,因此他認(rèn)為谷歌完全沒有認(rèn)識到GPU的作用。在谷歌他沒有待太久,如果他還留在亞馬遜,他認(rèn)為亞馬遜會讓他從事開源編碼相關(guān)工作。
這位選擇匿名的程序員表示,在DSSTNE這個項目中自己是唯一的GPU編碼員,在接受了又一份難以拒絕的offer后,他在4個月前離開了亞馬遜。在他離開時,DSSENE的工作人員不到10人,并且其中大部分都已經(jīng)到別處進(jìn)行深度學(xué)習(xí)引擎開發(fā)去了。
在hackernews網(wǎng)站寫下這些文字的時候,那位不愿意透露姓名的程序員表示,他正在等飛機(jī),在接下來的幾天中將持續(xù)跟進(jìn)這件事。最后,他寫了一點(diǎn)劇透:
DSSTNE的每一個GPU,處理的都是近乎完美伸縮的,具有1000個以上隱藏單元的隱藏層以及高效的自由稀疏輸入層,因為激活和加權(quán)梯度計算有特定的稀疏核心;此外,雖然基于JavaScript輕量級的數(shù)據(jù)交換格式(JavaScript Object Notiation)在2014年獲得認(rèn)可,但DSSTNE需要一個類似TensorFlow圖像輸入才能達(dá)到100%的兼容。
消息來源參考:
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。