麻省理工學(xué)院 | 繁忙的圖形處理器:采樣和流水線方法加速了大型圖形的深度學(xué)習(xí)
指南者留學(xué)
2022-11-30 08:27:25
閱讀量:1186
<p>圖是一種由邊連接的節(jié)點(diǎn)組成的潛在的廣泛網(wǎng)絡(luò),可以用來(lái)表達(dá)和查詢數(shù)據(jù)之間的關(guān)系,如社會(huì)關(guān)系、金融交易、交通、能源網(wǎng)格和分子相互作用。隨著研究人員收集更多的數(shù)據(jù)并構(gòu)建這些圖形圖像,研究人員將需要更快、更有效的方法,以及更強(qiáng)的計(jì)算能力,以圖神經(jīng)網(wǎng)絡(luò)(GNN)的方式對(duì)它們進(jìn)行深度學(xué)習(xí)。</p>
<p> </p>
<p>現(xiàn)在,麻省理工學(xué)院和IBM研究院的研究人員開(kāi)發(fā)了一種名為SALIENT(采樣、切片和數(shù)據(jù)移動(dòng))的新方法,通過(guò)解決計(jì)算中的三個(gè)關(guān)鍵瓶頸來(lái)提高訓(xùn)練和推理性能。這大大減少了大型數(shù)據(jù)集上gnn的運(yùn)行時(shí)間,例如,包含1億個(gè)節(jié)點(diǎn)和10億個(gè)邊。此外,該團(tuán)隊(duì)發(fā)現(xiàn),當(dāng)計(jì)算能力從1個(gè)圖形處理單元(gpu)增加到16個(gè)時(shí),該技術(shù)的擴(kuò)展性很好。這項(xiàng)工作在第五屆機(jī)器學(xué)習(xí)和系統(tǒng)會(huì)議上發(fā)表。</p>
<p> </p>
<p>“我們開(kāi)始關(guān)注當(dāng)前系統(tǒng)在將最先進(jìn)的機(jī)器學(xué)習(xí)技術(shù)用于圖形到真正大的數(shù)據(jù)集時(shí)所面臨的挑戰(zhàn)。事實(shí)證明,還有很多工作要做,因?yàn)樵S多現(xiàn)有的系統(tǒng)主要在適合GPU內(nèi)存的較小數(shù)據(jù)集上取得了良好的性能,”該研究的第一作者、麻省理工學(xué)院計(jì)算機(jī)科學(xué)和人工智能實(shí)驗(yàn)室(CSAIL)的博士后蒂姆·卡勒說(shuō)。</p>
<p> </p>
<p>專家們所說(shuō)的龐大數(shù)據(jù)集,指的是整個(gè)比特幣網(wǎng)絡(luò)的規(guī)模,其中的某些模式和數(shù)據(jù)關(guān)系可能闡明趨勢(shì)或欺詐行為。“區(qū)塊鏈上有近10億比特幣交易,如果我們想要識(shí)別這樣一個(gè)聯(lián)合網(wǎng)絡(luò)中的非法活動(dòng),那么我們就要面對(duì)這樣一個(gè)規(guī)模的圖表,”IBM研究院和MIT-IBM沃森人工智能實(shí)驗(yàn)室的高級(jí)研究科學(xué)家和經(jīng)理、合著者陳杰(Jie Chen)說(shuō)。“我們希望建立一個(gè)能夠處理這種圖形的系統(tǒng),并允許處理盡可能高效,因?yàn)槲覀兠刻於枷M闲聰?shù)據(jù)生成的速度。”</p>
<p> </p>
<p>Kaler和Chen的合著者包括Jump Trading的Nickolas Stathas孟'21,他開(kāi)發(fā)了SALIENT作為其研究生工作的一部分;前MIT- ibm沃森人工智能實(shí)驗(yàn)室實(shí)習(xí)生、MIT研究生Anne Ouyang;麻省理工學(xué)院CSAIL博士后Alexandros-Stavros Iliopoulos;MIT CSAIL研究科學(xué)家Tao B. Schardl;以及麻省理工學(xué)院埃德溫·西布里·韋伯斯特電氣工程教授、MIT- ibm沃森人工智能實(shí)驗(yàn)室研究員查爾斯·e·雷瑟森。</p>
<p> </p>
<p>對(duì)于這個(gè)問(wèn)題,該團(tuán)隊(duì)采取了一種系統(tǒng)導(dǎo)向的方法來(lái)開(kāi)發(fā)他們的方法:SALIENT, Kaler說(shuō)。為了做到這一點(diǎn),研究人員實(shí)現(xiàn)了他們認(rèn)為重要的基本優(yōu)化組件,這些組件適合現(xiàn)有的機(jī)器學(xué)習(xí)框架,如PyTorch幾何和深度圖庫(kù)(DGL),它們是用于構(gòu)建機(jī)器學(xué)習(xí)模型的接口。斯塔薩斯說(shuō),這個(gè)過(guò)程就像更換引擎來(lái)制造更快的汽車。他們的方法設(shè)計(jì)適合現(xiàn)有的GNN架構(gòu),因此領(lǐng)域?qū)<铱梢暂p松地將這項(xiàng)工作應(yīng)用到他們的特定領(lǐng)域,以加快模型訓(xùn)練,并在推斷過(guò)程中更快地梳理出見(jiàn)解。該團(tuán)隊(duì)確定,訣竅是讓所有硬件(CPU、數(shù)據(jù)鏈和GPU)始終處于忙碌狀態(tài):當(dāng)CPU采樣圖并準(zhǔn)備小批量數(shù)據(jù),然后通過(guò)數(shù)據(jù)鏈傳輸時(shí),更關(guān)鍵的GPU正在工作,以訓(xùn)練機(jī)器學(xué)習(xí)模型或進(jìn)行推斷。</p>
<p> </p>
<p>研究人員首先分析了gnn常用的機(jī)器學(xué)習(xí)庫(kù)(PyTorch Geometric)的性能,該庫(kù)顯示出可用GPU資源的利用率低得驚人。通過(guò)簡(jiǎn)單的優(yōu)化,研究人員將GPU利用率從10%提高到30%,相對(duì)于公共基準(zhǔn)測(cè)試代碼,性能提高了1.4到2倍。這種快速基線代碼可以在50.4秒內(nèi)通過(guò)算法(一個(gè)歷元)對(duì)大型訓(xùn)練數(shù)據(jù)集執(zhí)行一次完整的遍歷。</p>
<p> </p>
<p>為了進(jìn)一步提高性能,研究人員開(kāi)始研究發(fā)生在數(shù)據(jù)管道開(kāi)始的瓶頸:圖采樣和小批準(zhǔn)備的算法。與其他神經(jīng)網(wǎng)絡(luò)不同,gnn執(zhí)行鄰域聚合操作,它使用圖中其他鄰近節(jié)點(diǎn)的信息計(jì)算關(guān)于一個(gè)節(jié)點(diǎn)的信息——例如,在社交網(wǎng)絡(luò)圖中,用戶的朋友的朋友的信息。隨著GNN層數(shù)的增加,網(wǎng)絡(luò)中獲取信息的節(jié)點(diǎn)數(shù)量可能會(huì)激增,超過(guò)計(jì)算機(jī)的極限。鄰域抽樣算法通過(guò)選擇更小的隨機(jī)節(jié)點(diǎn)子集來(lái)進(jìn)行收集;然而,研究人員發(fā)現(xiàn),目前的實(shí)現(xiàn)速度太慢,無(wú)法跟上現(xiàn)代gpu的處理速度。作為回應(yīng),他們確定了數(shù)據(jù)結(jié)構(gòu)、算法優(yōu)化等的組合,從而提高了采樣速度,最終將采樣操作提高了約三倍,將每個(gè)周期的運(yùn)行時(shí)間從50.4秒提高到34.6秒。他們還發(fā)現(xiàn),在推斷過(guò)程中,以適當(dāng)?shù)念l率進(jìn)行采樣,可以提高整體能源效率和性能,該團(tuán)隊(duì)指出,這一點(diǎn)在文獻(xiàn)中被忽略了。</p>
<p> </p>
<p>在以前的系統(tǒng)中,這個(gè)抽樣步驟是一種多進(jìn)程方法,這會(huì)在進(jìn)程之間產(chǎn)生額外的數(shù)據(jù)和不必要的數(shù)據(jù)移動(dòng)。研究人員通過(guò)創(chuàng)建一個(gè)具有輕量級(jí)線程的單一進(jìn)程,將數(shù)據(jù)保存在共享內(nèi)存中,從而使他們的SALIENT方法更加靈活。此外,顯著利用了現(xiàn)代處理器的緩存,Stathas說(shuō),并行特征切片,從CPU核心緩存的共享內(nèi)存中感興趣的節(jié)點(diǎn)及其周圍的鄰居和邊緣提取相關(guān)信息。這再次將整個(gè)周期運(yùn)行時(shí)間從34.6秒減少到27.8秒。</p>
<p> </p>
<p>研究人員解決的最后一個(gè)瓶頸是使用預(yù)取步驟在CPU和GPU之間流水線小批數(shù)據(jù)傳輸,這將在需要數(shù)據(jù)之前準(zhǔn)備數(shù)據(jù)。該團(tuán)隊(duì)計(jì)算出,這將最大化數(shù)據(jù)鏈的帶寬使用,并使該方法達(dá)到完美利用;然而,他們只看到了大約90%。他們?cè)谝粋€(gè)流行的PyTorch庫(kù)中發(fā)現(xiàn)并修復(fù)了一個(gè)導(dǎo)致CPU和GPU之間不必要的往返通信的性能bug。修復(fù)了這個(gè)bug后,團(tuán)隊(duì)使用SALIENT實(shí)現(xiàn)了16.5秒的周期運(yùn)行時(shí)間。</p>
<p> </p>
<p>卡勒說(shuō):“我認(rèn)為,我們的研究表明,細(xì)節(jié)決定成敗。”“當(dāng)你在訓(xùn)練一個(gè)圖神經(jīng)網(wǎng)絡(luò)時(shí)密切關(guān)注影響性能的細(xì)節(jié),你可以解決大量的性能問(wèn)題。在我們的解決方案中,我們最終完全被GPU計(jì)算所困,而這正是這種系統(tǒng)的理想目標(biāo)。”</p>
<p> </p>
<p>在三個(gè)標(biāo)準(zhǔn)數(shù)據(jù)集ogbn-arxiv、ogbn-products和ogbn-papers100M上評(píng)估了SALIENT的速度,以及在多機(jī)設(shè)置下,使用不同級(jí)別的fanout (CPU將為GPU準(zhǔn)備的數(shù)據(jù)量),并跨越多個(gè)架構(gòu),包括最新的最先進(jìn)的架構(gòu)GraphSAGE-RI。在每一個(gè)設(shè)置中,SALIENT都優(yōu)于PyTorch Geometric,最顯著的是在大型ogbn-papers100M數(shù)據(jù)集上,包含1億個(gè)節(jié)點(diǎn)和超過(guò)10億個(gè)邊。這里,它在一個(gè)GPU上運(yùn)行的速度是最初為這項(xiàng)工作創(chuàng)建的優(yōu)化基線的三倍;在配備16個(gè)gpu的情況下,SALIENT的速度增加了8倍。</p>
<p> </p>
<p>雖然其他系統(tǒng)的硬件和實(shí)驗(yàn)設(shè)置略有不同,所以并不總是直接的比較,但SALIENT仍然優(yōu)于它們。在達(dá)到類似精度的系統(tǒng)中,代表性的性能數(shù)字包括使用一個(gè)GPU和32個(gè)cpu用時(shí)99秒,使用1536個(gè)cpu用時(shí)13秒。相比之下,使用1個(gè)GPU和20個(gè)cpu時(shí),SALIENT的運(yùn)行時(shí)間為16.5秒,而使用16個(gè)GPU和320個(gè)cpu時(shí)僅為2秒。Kaler說(shuō):“如果你看看之前工作報(bào)告的底線數(shù)字,我們的16個(gè)GPU運(yùn)行時(shí)間(2秒)比之前報(bào)告的其他數(shù)據(jù)快了一個(gè)數(shù)量級(jí)。”研究人員將他們的性能改進(jìn)部分歸因于他們?cè)谵D(zhuǎn)移到分布式設(shè)置之前針對(duì)單個(gè)機(jī)器優(yōu)化代碼的方法。斯塔薩斯說(shuō),這里的教訓(xùn)是,對(duì)于你的錢來(lái)說(shuō),“在你開(kāi)始擴(kuò)展到多臺(tái)計(jì)算機(jī)之前,更有意義的是有效地使用你的硬件,并將其發(fā)揮到極致”,這可以在成本和碳排放方面提供顯著的節(jié)省,這可以與模型訓(xùn)練相結(jié)合。</p>
<p> </p>
<p>這種新的能力現(xiàn)在將允許研究人員處理和深入挖掘越來(lái)越大的圖表。例如,前面提到的比特幣網(wǎng)絡(luò)包含10萬(wàn)個(gè)節(jié)點(diǎn);SALIENT系統(tǒng)能夠處理1000倍(或3個(gè)數(shù)量級(jí))大的圖形。</p>
<p> </p>
<p>Chen說(shuō):“未來(lái),我們不僅要在現(xiàn)有的算法上運(yùn)行這個(gè)圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練系統(tǒng),我們已經(jīng)實(shí)現(xiàn)了分類或預(yù)測(cè)每個(gè)節(jié)點(diǎn)的屬性,我們還想做更深入的任務(wù),比如識(shí)別圖中的常見(jiàn)模式(子圖模式),(這)實(shí)際上可能對(duì)指示金融犯罪很有趣。”“我們還想在圖中識(shí)別相似的節(jié)點(diǎn),這些節(jié)點(diǎn)在某種意義上可能對(duì)應(yīng)于金融犯罪中的同一壞人。這些任務(wù)將需要開(kāi)發(fā)額外的算法,可能還需要神經(jīng)網(wǎng)絡(luò)架構(gòu)。”</p>
<p> </p>
<p>這項(xiàng)研究得到了麻省理工學(xué)院- ibm沃森人工智能實(shí)驗(yàn)室的支持,部分得到了美國(guó)空軍研究實(shí)驗(yàn)室和美國(guó)空軍人工智能加速器的支持。</p>
<p> </p>
<blockquote>
<p>注:本文由院校官方新聞直譯,僅供參考,不代表指南者留學(xué)態(tài)度觀點(diǎn)。</p>
</blockquote>