OpenAI研究人員日前發(fā)布了一個(gè)工具庫(kù),該工具庫(kù)可以幫助研究人員在GPU上建立更快、更高效、占內(nèi)存更少的神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)由一些連接節(jié)點(diǎn)層組成。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)處決于數(shù)據(jù)和應(yīng)用程序,各種結(jié)構(gòu)的變化可以很大,但所有的模型都受到GPU運(yùn)行方式的限制。
一種使用較小的計(jì)算達(dá)到訓(xùn)練較大模型的方法是使用稀疏矩陣。如果一個(gè)矩陣?yán)锎蠖鄶?shù)元素都是零,該矩陣即為稀疏矩陣。矩陣的空白元素(零)可以被壓縮,在做矩陣乘法時(shí)可以跳過(guò)這些元素,而且,稀疏矩陣占用的GPU內(nèi)存較少。
OpenAI的研究科學(xué)家Durk Kingma在向記者解釋時(shí)表示,矩陣運(yùn)算時(shí)的計(jì)算成本與矩陣中非零項(xiàng)的數(shù)量成正比。
使用稀疏矩陣就意味著節(jié)省下來(lái)的額外計(jì)算可用于構(gòu)建橫向更寬或縱向更深的網(wǎng)絡(luò),從而可以更高效地訓(xùn)練和執(zhí)行推導(dǎo)運(yùn)算,比率可高達(dá)十倍。
通過(guò)增加稀疏性后,密集神經(jīng)網(wǎng)絡(luò)(左)可以變成更寬(中)或更深(右)神經(jīng)網(wǎng)絡(luò)。 (圖片來(lái)源:OpenAI)
Kingma表示,Nvidia其實(shí)并不支持稀疏模型。OpenAI的一個(gè)團(tuán)隊(duì)因此決定為廣泛的研究社區(qū)開發(fā)核心程序(一種編譯在硬件上運(yùn)行的軟件的小程序),核心程序是針對(duì)構(gòu)建塊狀稀疏網(wǎng)絡(luò)優(yōu)化過(guò)的。
Elon Musk的人工智能研究部門的研究人員在內(nèi)部利用OpenAI的核心程序訓(xùn)練長(zhǎng)期短期記憶神經(jīng)網(wǎng)絡(luò),這些神經(jīng)網(wǎng)絡(luò)被用于亞馬遜和IMDB上評(píng)論文章的情緒分析。
研究人員在提交準(zhǔn)備發(fā)表的文章(https://blog.openai.com/unsupervised-sentiment-neuron/)里表示,“我們的稀疏模型改善了文檔級(jí)IMDB數(shù)據(jù)集截止目前為止的最好結(jié)果,由原來(lái)的5.91%錯(cuò)誤率提高到5.01%。該改善結(jié)果與我們之前的結(jié)果比表現(xiàn)出了其潛力,原來(lái)的方法只有在處理短句層次文檔時(shí)才能達(dá)到最佳效果。”
該核心程序是用CUDA編寫的,OpenAI目前只為其開發(fā)了一個(gè)TensorFlow包裝器,使用別的框架的研究人員需編寫自己的包裝器。還有,該核心程序僅支持Nvidia GPU。
Open AI的技術(shù)人員Scott Gray告訴記者,“該核心程序肯定可以擴(kuò)展到其他支持小塊矩陣乘法的架構(gòu),包括我知道的大多數(shù)架構(gòu),不過(guò)不包括Google的TPU2。“
Kingma說(shuō),盡管這些結(jié)果很有潛力,但“由于核心程序是新開發(fā)的,我們并不是明確知道核心程序在什么時(shí)候以及什么地方可以幫助神經(jīng)網(wǎng)絡(luò)架構(gòu)。在實(shí)驗(yàn)中,我們提供了一些有助于在模型里添加稀疏性的例子。我們鼓勵(lì)社區(qū)進(jìn)一步探索這個(gè)空間。“
Gray做了補(bǔ)充,他表示,Nvidia已經(jīng)獲悉核心程序方面的工作,他們正在等代碼發(fā)布后進(jìn)一步提供更廣泛的支持。
OpenAI的工作與Taco類似。Taco是由麻省理工學(xué)院的研究人員創(chuàng)建的一個(gè)軟件,可自動(dòng)生成處理稀疏矩陣的代碼。