繼谷歌、Facebook之后,亞馬遜開(kāi)源的深度學(xué)習(xí)工具又能帶來(lái)什么?

責(zé)任編輯:editor007

作者:新智元

2016-05-12 21:35:15

摘自:雷鋒網(wǎng)

在一些數(shù)據(jù)稀疏(幾乎所有的數(shù)值都為零)的任務(wù)中,DSSTNE的表現(xiàn)要遠(yuǎn)優(yōu)于當(dāng)下的一些開(kāi)放資源深度學(xué)習(xí)工具。亞馬遜在GitHub網(wǎng)站上給出了使用DSSTNE訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的實(shí)例,包含3個(gè)基本步驟:轉(zhuǎn)換數(shù)據(jù)、訓(xùn)練、預(yù)測(cè)。

按:繼Facebook、Google之后,亞馬遜也宣布開(kāi)源其深度學(xué)習(xí)工具,Open AI成為主流?本文由新智元翻譯自Github、Hacker News,介紹了亞馬遜DSSTNE的深度學(xué)習(xí)工具到底是什么,以及和其他開(kāi)源工具相比有何不同?

另外,今年夏天,雷鋒網(wǎng)(搜索“雷鋒網(wǎng)”公眾號(hào)關(guān)注)將在深圳舉辦一場(chǎng)盛況空前的“全球人工智能與機(jī)器人創(chuàng)新大會(huì)”,并發(fā)布“人工智能&機(jī)器人Top25創(chuàng)新企業(yè)榜”榜單。如果你也是人工智能、機(jī)器人領(lǐng)域的相關(guān)公司,想經(jīng)過(guò)層層曬選最終入選榜單,可聯(lián)系:2020@leiphone.com。

亞馬遜也被吹上“flow”的風(fēng)口:繼Facebook公開(kāi)其深度學(xué)習(xí)訓(xùn)練平臺(tái)FBLearner Flow細(xì)節(jié)后,亞馬遜昨日下午突然宣布開(kāi)源其深度學(xué)習(xí)和機(jī)器學(xué)習(xí)工具DSSTNE,并表示與相比其他深度學(xué)習(xí)工具,DSSTNE尤其擅于訓(xùn)練稀疏數(shù)據(jù)。近年來(lái),谷歌,F(xiàn)B和OpenAI先后搭建平臺(tái),亞馬遜也宣布工具開(kāi)源,人工智能系統(tǒng)未來(lái)開(kāi)源趨勢(shì)已成,國(guó)內(nèi)公司何時(shí)跟上國(guó)際潮流?

2016年5月11日下午,亞馬遜在GitHub網(wǎng)站將其深度學(xué)習(xí)和機(jī)器學(xué)習(xí)工具DSSTNE開(kāi)源(譯注:DSSTNE與英語(yǔ)“destiny”諧音)。亞馬遜方面稱(chēng),與其他開(kāi)源工具相比,DSSTNE尤其擅長(zhǎng)訓(xùn)練稀疏數(shù)據(jù)。新智元第一時(shí)間搜集信息,并獲得內(nèi)部核心開(kāi)發(fā)人員對(duì)這款工具的詳解。

向來(lái)在開(kāi)源上不那么積極的亞馬遜有了新動(dòng)作。難道最近在科技巨頭間掀起了一股“開(kāi)源”的浪潮?我們能否期待接下來(lái)蘋(píng)果也會(huì)把它家的深度學(xué)習(xí)來(lái)個(gè)開(kāi)源?玩笑說(shuō)到這里,下面我們就一起來(lái)看看,亞馬遜這個(gè)DSSTNE深度學(xué)習(xí)工具到底有什么用處。

|DSSTNE是什么?

根據(jù)GitHub網(wǎng)站消息,DSSTNE是英文“Deep Scalable Sparse Tensor Network Engine”的簡(jiǎn)寫(xiě),即“深度可伸縮的稀疏張量網(wǎng)絡(luò)工具”。亞馬遜相關(guān)研究團(tuán)隊(duì)對(duì)DSSTNE的描述是 “一個(gè)使用GPU訓(xùn)練和部署深度神經(jīng)網(wǎng)絡(luò)的開(kāi)源工具”。

亞馬遜的工程師最初創(chuàng)建DSSTNE是用于解決在亞馬遜平臺(tái)上需要處理的深度學(xué)習(xí)難題,建立的目標(biāo)是解決現(xiàn)實(shí)中深度學(xué)習(xí)應(yīng)用的產(chǎn)品部署問(wèn)題,在試驗(yàn)靈活性以外,還強(qiáng)調(diào)速度和規(guī)模。團(tuán)隊(duì)希望把深度學(xué)習(xí)的潛力從語(yǔ)音、語(yǔ)言理解和物體識(shí)別領(lǐng)域擴(kuò)展到搜索和推薦等其他領(lǐng)域,激發(fā)更多創(chuàng)意。

每一天,有上億人在亞馬遜購(gòu)物。亞馬遜希望DSSTNE能幫助消費(fèi)者從眾多的商品中發(fā)現(xiàn)想找的東西。而想要做到好的推薦,就需要神經(jīng)網(wǎng)絡(luò)。即便是簡(jiǎn)單的3層自動(dòng)編碼器,加上一個(gè)有上億節(jié)點(diǎn)的輸入層(每一個(gè)節(jié)點(diǎn)代表一件商品),以及一個(gè)包含1000節(jié)點(diǎn)的隱藏網(wǎng)絡(luò),還有一個(gè)能反映輸入層的輸出層,所需要學(xué)習(xí)的參數(shù)就可以達(dá)到10億以上。利用目前的硬件,這是很難實(shí)現(xiàn)的。即使把神經(jīng)網(wǎng)絡(luò)的大小局限在單一商品目錄和身處美國(guó)的用戶(hù),也幾乎要觸及當(dāng)下GPU的能力上限了。

舉例來(lái)說(shuō),一個(gè)3層的自動(dòng)編碼加權(quán)矩陣,加上輸入時(shí)的800萬(wàn)個(gè)界定,以及輸出層和隱藏層的256個(gè)節(jié)點(diǎn),運(yùn)行一次簡(jiǎn)單的計(jì)算就需要消耗8G的內(nèi)存。使用開(kāi)放資源軟件以及上千萬(wàn)用戶(hù)的消費(fèi)數(shù)據(jù)來(lái)訓(xùn)練這樣的網(wǎng)絡(luò),用市場(chǎng)上最快的GPU也得花上數(shù)周才能得到結(jié)果。亞馬遜意識(shí)到,如果不能寫(xiě)出軟件,然后在多個(gè)GPU中分配這些計(jì)算的話(huà),他們是不會(huì)有大的進(jìn)步的。

DSSTNE有一系列的特征:

多GPU伸縮:訓(xùn)練和預(yù)測(cè)擴(kuò)展到使用多GPUs,在每一層平行模型拓展計(jì)算和存儲(chǔ)。

多層:模式平行伸縮,讓更大型的網(wǎng)絡(luò)成為可能。

稀疏數(shù)據(jù):在稀疏數(shù)據(jù)集中,DSSTNE經(jīng)過(guò)了優(yōu)化,可以有更快速的表現(xiàn)。特殊的GPU核心程序在GPU中運(yùn)行稀疏計(jì)算。

| DSSTNE與其他深度學(xué)習(xí)工具有何不同之處?

在一些數(shù)據(jù)稀疏(幾乎所有的數(shù)值都為零)的任務(wù)中,DSSTNE的表現(xiàn)要遠(yuǎn)優(yōu)于當(dāng)下的一些開(kāi)放資源深度學(xué)習(xí)工具。

DSSTNE是從無(wú)到有的一個(gè)工具,用于訓(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ù)的問(wèn)題中,DSSTNE比其他仍和深度學(xué)習(xí)工具都要快(2.1x compared to Tensorflow in 1 g2.8xlarge),其中就包括推薦難題和許多自然語(yǔ)言理解(NLU)任務(wù)。單個(gè)服務(wù)器內(nèi),多GPU運(yùn)行的情況,DSSTNE的表現(xiàn)也比其他的數(shù)據(jù)庫(kù)表現(xiàn)要好。DSSTNE能夠在所有可用的GPU中自動(dòng)分配計(jì)算任務(wù),加速所有的計(jì)算過(guò)程,并能建立更大的模型。

從實(shí)際上來(lái)看,這意味著它能建立起推薦系統(tǒng),把上千萬(wàn)種商品囊括到模型中,而不是上萬(wàn)種,或者能處理包含大量詞匯的自然語(yǔ)言理解任務(wù)。對(duì)于這種等級(jí)的難題,其他的工具可能會(huì)需要轉(zhuǎn)化到CPU來(lái)計(jì)算稀疏數(shù)據(jù),這會(huì)將效果降低一級(jí)。另外,DSSTNE的網(wǎng)絡(luò)定義語(yǔ)言會(huì)比Caffe的簡(jiǎn)單得多,只需要33行代碼來(lái)表示通用的AlexNet圖像識(shí)別模型,而Caffe語(yǔ)言要求超過(guò)300行代碼。

但是,DSSTNE還不支持圖像識(shí)別所需要的卷積層,在一些自然語(yǔ)言理解和語(yǔ)音識(shí)別任務(wù)所需要的復(fù)發(fā)層中,支持也很有限。

| 該怎么用DSSTNE訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型?

亞馬遜在GitHub網(wǎng)站上給出了使用DSSTNE訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的實(shí)例,包含3個(gè)基本步驟:轉(zhuǎn)換數(shù)據(jù)、訓(xùn)練、預(yù)測(cè)。

1. 轉(zhuǎn)換數(shù)據(jù):

下載數(shù)據(jù)后,把數(shù)據(jù)轉(zhuǎn)換到NetCDF格式。然后在指定數(shù)據(jù)集中嘗試運(yùn)行一個(gè)自動(dòng)編碼器。

1.1 生成輸入數(shù)據(jù)集:

  1.2 生成輸出數(shù)據(jù):

  2. 訓(xùn)練:3層神經(jīng)網(wǎng)絡(luò)的隱藏層有128個(gè)節(jié)點(diǎn)

  3. 預(yù)測(cè):

  總結(jié)

  | 內(nèi)部人員神吐槽

亞馬遜開(kāi)源DSSTNE的消息發(fā)布后不久,一位前DSSTNE核心開(kāi)發(fā)成員就在hackernews網(wǎng)站上透露,DSSTNE創(chuàng)建于2年前,專(zhuān)用于在亞馬遜商品目錄中進(jìn)行產(chǎn)品推薦。他表示:當(dāng)時(shí)Tensorflow還沒(méi)誕生,只有Theano和Torch;DSSTNE通過(guò)稀疏數(shù)據(jù)和多GPU跨神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,跟Theano和Torch都不一樣;現(xiàn)在DSSENE還不支持Alex、VGG或者GoogleNet等,但是如果有需要,只用500行代碼就能實(shí)現(xiàn)。

那位前DSSTNE核心開(kāi)發(fā)員還透露,DSSTNE現(xiàn)在還不明確支持RNN,但它支持分享加權(quán)。而雖然CuDNN 5使用幾百行代碼就能支持LSTM,但他認(rèn)為CuDNN中的LSTM是一個(gè)黑盒子(Black Box),所以不能擴(kuò)展到多重GPU。

那位程序員還表示,亞馬遜并不完美,但這家公司讓他們從頭開(kāi)始搭建了這一平臺(tái),然后現(xiàn)在對(duì)外開(kāi)源。據(jù)這位不愿意透露姓名的程序員表示,加入亞馬遜之前,谷歌把他從Nvidia挖去(這是他難以拒絕的幾個(gè)offer之一),但2011年卻把他分配到搜索團(tuán)隊(duì),不讓其再涉及GPU的工作,完全沒(méi)有考慮到他是Nvidia CUDA團(tuán)隊(duì)的創(chuàng)始成員之一,因此他認(rèn)為谷歌完全沒(méi)有認(rèn)識(shí)到GPU的作用。在谷歌他沒(méi)有待太久,如果他還留在亞馬遜,他認(rèn)為亞馬遜會(huì)讓他從事開(kāi)源編碼相關(guān)工作。

這位選擇匿名的程序員表示,在DSSTNE這個(gè)項(xiàng)目中自己是唯一的GPU編碼員,在接受了又一份難以拒絕的offer后,他在4個(gè)月前離開(kāi)了亞馬遜。在他離開(kāi)時(shí),DSSENE的工作人員不到10人,并且其中大部分都已經(jīng)到別處進(jìn)行深度學(xué)習(xí)引擎開(kāi)發(fā)去了。

在hackernews網(wǎng)站寫(xiě)下這些文字的時(shí)候,那位不愿意透露姓名的程序員表示,他正在等飛機(jī),在接下來(lái)的幾天中將持續(xù)跟進(jìn)這件事。最后,他寫(xiě)了一點(diǎn)劇透:

DSSTNE的每一個(gè)GPU,處理的都是近乎完美伸縮的,具有1000個(gè)以上隱藏單元的隱藏層以及高效的自由稀疏輸入層,因?yàn)榧せ詈图訖?quán)梯度計(jì)算有特定的稀疏核心;此外,雖然基于JavaScript輕量級(jí)的數(shù)據(jù)交換格式(JavaScript Object Notiation)在2014年獲得認(rèn)可,但DSSTNE需要一個(gè)類(lèi)似TensorFlow圖像輸入才能達(dá)到100%的兼容。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)