Kiireiset GPU:t: Näytteenotto- ja liukuhihnamenetelmä nopeuttaa syvällistä oppimista suurilla kaavioilla PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Varattu grafiikkasuoritin: Näytteenotto- ja liukuhihnamenetelmä nopeuttaa syvällistä oppimista suurilla kaavioilla

Graafeja, potentiaalisesti laajaa solmuverkkoa, jotka on yhdistetty reunoilla, voidaan käyttää ilmaisemaan ja kyselemään datan välisiä suhteita, kuten sosiaalisia yhteyksiä, rahoitustapahtumia, liikennettä, energiaverkkoja ja molekyylien vuorovaikutuksia. Kun tutkijat keräävät enemmän tietoa ja rakentavat näitä graafisia kuvia, tutkijat tarvitsevat nopeampia ja tehokkaampia menetelmiä sekä enemmän laskentatehoa suorittaakseen syväoppimista niillä graafisen hermoverkkojen (GNN) tapaan.  

Nyt MIT:n ja IBM Researchin tutkijoiden kehittämä uusi menetelmä, nimeltään SALIENT (SAmpling, sLIcing, and data movemeNT), parantaa koulutusta ja päättelykykyä korjaamalla laskennan kolmea keskeistä pullonkaulaa. Tämä lyhentää dramaattisesti GNN-verkkojen käyttöaikaa suurissa tietojoukoissa, jotka sisältävät esimerkiksi 100 miljoonan solmun ja 1 miljardin reunan mittakaavassa. Lisäksi ryhmä havaitsi, että tekniikka skaalautuu hyvin, kun laskentatehoa lisätään yhdestä 16 graafiseen prosessointiyksikköön (GPU). Teos esiteltiin Fifth Conference on Machine Learning and Systems -konferenssissa.

"Aloimme tarkastella haasteita, joita nykyiset järjestelmät kohtaavat skaalattaessa graafisten huippuluokan koneoppimistekniikoita todella suuriksi tietojoukoiksi. Kävi ilmi, että tehtävää oli paljon, koska monet olemassa olevat järjestelmät saavuttivat hyvää suorituskykyä ensisijaisesti pienemmillä datajoukoilla, jotka mahtuvat GPU-muistiin", sanoo Tim Kaler, johtava kirjoittaja ja MIT Computer Sciencen postdoc. ja Artificial Intelligence Laboratory (CSAIL).

Laajoilla tietojoukoilla asiantuntijat tarkoittavat koko Bitcoin-verkoston kaltaisia ​​asteikkoja, joissa tietyt kuviot ja datasuhteet voivat ilmaista trendejä tai virheitä. "Lohkoketjussa on lähes miljardi Bitcoin-transaktiota, ja jos haluamme tunnistaa laitonta toimintaa tällaisen yhteisen verkon sisällä, edessämme on tällaisen mittakaavan kaavio", sanoo toinen kirjoittaja Jie Chen, vanhempi tutkija ja johtaja. IBM Researchista ja MIT-IBM Watson AI Labista. "Haluamme rakentaa järjestelmän, joka pystyy käsittelemään tällaisia ​​kaavioita ja mahdollistaa käsittelyn mahdollisimman tehokkaaksi, koska haluamme pysyä joka päivä syntyvän uuden datan tahdissa."

Kalerin ja Chenin kirjoittajia ovat Jump Tradingin Nickolas Stathas MEng '21, joka kehitti SALIENTin osana jatkotyötään; entinen MIT-IBM Watson AI Lab -harjoittelija ja MIT:n jatko-opiskelija Anne Ouyang; MIT CSAIL postdoc Alexandros-Stavros Iliopoulos; MIT CSAIL -tutkija Tao B. Schardl; ja Charles E. Leiserson, Edwin Sibley Webster sähkötekniikan professori MIT:ssä ja tutkija MIT-IBM Watson AI Labissa.     

Tähän ongelmaan tiimi otti järjestelmälähtöisen lähestymistavan kehittäessään menetelmäään: SALIENT, Kaler sanoo. Tätä varten tutkijat toteuttivat heidän mielestään tärkeitä perusoptimointeja komponenteille, jotka sopivat olemassa oleviin koneoppimiskehikkoihin, kuten PyTorch Geometric ja Deep graph Library (DGL), jotka ovat rajapintoja koneoppimismallin rakentamiseen. Stathas sanoo, että prosessi on kuin moottorien vaihtaminen nopeamman auton rakentamiseksi. Heidän menetelmänsä suunniteltiin sopimaan olemassa oleviin GNN-arkkitehtuureihin, jotta toimialueen asiantuntijat voisivat helposti soveltaa tätä työtä määritellyillä aloilla nopeuttaakseen mallin koulutusta ja saadakseen oivalluksia päättelyn aikana nopeammin. Tiimi päätti, että temppu oli pitää kaikki laitteisto (CPU:t, datalinkit ja GPU:t) aina kiireisinä: CPU ottaa näytteitä kaaviosta ja valmistelee dataa, joka siirretään datalinkin kautta. , sitä kriittisempi GPU työskentelee koneoppimismallin kouluttamiseksi tai johtopäätöksen tekemiseksi. 

Tutkijat aloittivat analysoimalla GNN:ille yleisesti käytetyn koneoppimiskirjaston (PyTorch Geometric) suorituskykyä, mikä osoitti, että käytettävissä olevien GPU-resurssien käyttöaste oli hämmästyttävän alhainen. Yksinkertaisten optimointien avulla tutkijat paransivat grafiikkasuorittimen käyttöastetta 10 prosentista 30 prosenttiin, mikä johti 1.4 - kaksinkertaiseen suorituskykyyn verrattuna julkisiin vertailukoodeihin. Tämä nopea perusviivakoodi voisi suorittaa yhden täydellisen siirron suuren harjoitustietojoukon läpi algoritmin (epookin) läpi 50.4 sekunnissa.                          

Etsiessään lisäparannuksia suorituskykyyn tutkijat päättivät tutkia pullonkauloja, joita esiintyy dataputken alussa: graafisen näytteenoton ja mini-erän valmistelun algoritmeja. Toisin kuin muut hermoverkot, GNN:t suorittavat naapuruston yhdistämisoperaation, joka laskee tiedot solmusta käyttämällä graafin muissa lähellä olevissa solmuissa olevia tietoja – esimerkiksi sosiaalisen verkoston kaaviossa käyttäjän ystävien ystäviltä saatuja tietoja. GNN:n kerrosten lukumäärän kasvaessa niiden solmujen määrä, joihin verkon on tavoitettava tietoa, voi kasvaa räjähdysmäisesti ja ylittää tietokoneen rajat. Naapuruston näytteenottoalgoritmit auttavat valitsemaan pienemmän satunnaisen osajoukon solmuja kerättäväksi; Tutkijat havaitsivat kuitenkin, että tämänhetkiset toteutukset olivat liian hitaita pysyäkseen nykyaikaisten grafiikkasuorittimien käsittelynopeudessa. Vastauksena he tunnistivat yhdistelmän tietorakenteita, algoritmisia optimointeja ja niin edelleen, mikä paransi näytteenottonopeutta ja paransi lopulta pelkästään näytteistystoimintoa noin kolme kertaa, mikä vei jaksokohtaisen suoritusajan 50.4:stä 34.6 sekuntiin. He havaitsivat myös, että näytteenottoa sopivalla nopeudella voidaan tehdä päättelyn aikana, mikä parantaa yleistä energiatehokkuutta ja suorituskykyä, mikä on jätetty huomiotta kirjallisuudessa, ryhmä huomauttaa.      

Aiemmissa järjestelmissä tämä näytteenottovaihe oli usean prosessin lähestymistapa, joka loi ylimääräistä dataa ja tarpeetonta tiedonsiirtoa prosessien välillä. Tutkijat tekivät SALIENT-menetelmästään ketterämmän luomalla yhden prosessin kevyillä säikeillä, jotka pitivät CPU:n tiedot jaetussa muistissa. Lisäksi SALIENT hyödyntää nykyaikaisten prosessorien välimuistia, Stathas sanoo, ja se rinnastaa ominaisuusleikkauksen, joka poimii olennaiset tiedot kiinnostavista solmuista ja niitä ympäröivistä naapureista ja reunoista suorittimen ydinvälimuistin jaetussa muistissa. Tämä taas lyhensi kokonaiskestoaikaa 34.6:sta 27.8 sekuntiin.

Viimeinen pullonkaula, jota tutkijat käsittelivät, oli mini-erätiedonsiirrot CPU:n ja GPU:n välillä käyttämällä esihakuvaihetta, joka valmistaisi tiedot juuri ennen kuin sitä tarvitaan. Tiimi laski, että tämä maksimoisi datalinkin kaistanleveyden käytön ja nostaisi menetelmän täydelliseen käyttöön. He näkivät kuitenkin vain noin 90 prosenttia. He tunnistivat ja korjasivat suositun PyTorch-kirjaston suorituskykyvirheen, joka aiheutti tarpeettoman edestakaisen yhteyden CPU:n ja GPU:n välillä. Kun tämä virhe korjattiin, tiimi saavutti 16.5 sekuntia aikakausia kohti SALIENTin kanssa.

"Työmme osoitti, että paholainen on yksityiskohdissa", Kaler sanoo. "Kun kiinnität tarkkaan huomiota suorituskykyyn vaikuttaviin yksityiskohtiin, kun harjoitat graafin hermoverkkoa, voit ratkaista valtavan määrän suorituskykyongelmia. Ratkaisuillamme päädyimme kokonaan GPU-laskennan pullonkaulaan, mikä on tällaisen järjestelmän ihanteellinen tavoite.

SALIENTin nopeus arvioitiin kolmella vakiotietojoukolla ogbn-arxiv, ogbn-products ja ogbn-papers100M sekä usean koneen asetuksissa, joissa oli eri tasoinen fanout (tietomäärä, jonka CPU valmistelee GPU:ta varten) ja useissa arkkitehtuureissa, mukaan lukien viimeisin uusin GraphSAGE-RI. Kussakin asetuksessa SALIENT suoriutui PyTorch Geometricia paremmin, varsinkin suuressa ogbn-papers100M-tietojoukossa, joka sisältää 100 miljoonaa solmua ja yli miljardi reunaa. Tässä se oli kolme kertaa nopeampi, yhdellä grafiikkasuorittimella, kuin optimoitu perusviiva, joka alun perin luotiin Tämä työ; 16 GPU:lla SALIENT oli lisäksi kahdeksan kertaa nopeampi. 

Vaikka muissa järjestelmissä oli hieman erilaiset laitteistot ja kokeelliset asetukset, joten se ei aina ollut suora vertailu, SALIENT suoritti silti ne. Saman tarkkuuden saavuttaneiden järjestelmien joukossa edustavia suorituskykylukuja ovat 99 sekuntia yhtä GPU:ta ja 32 CPU:ta käytettäessä ja 13 sekuntia 1,536 20 CPU:ta käytettäessä. Sitä vastoin SALIENTin ajonaika yhdellä GPU:lla ja 16.5 CPU:lla oli 16 sekuntia ja vain kaksi sekuntia 320 GPU:lla ja 16 CPU:lla. "Jos tarkastellaan aikaisemman työn raportoimia loppulukuja, XNUMX GPU:n ajonaikamme (kaksi sekuntia) on suuruusluokkaa nopeampi kuin muut luvut, jotka on raportoitu aiemmin tässä tietojoukossa", Kaler sanoo. Tutkijat selittivät suorituskyvyn parannukset osittain siitä, että he optimoivat koodinsa yhdelle koneelle ennen siirtymistä hajautettuun asetukseen. Stathas sanoo, että oppitunti tässä on, että rahallasi "on järkevämpää käyttää olemassa olevaa laitteistoa tehokkaasti ja äärimmäisyyksillään ennen kuin aloitat skaalauksen useisiin tietokoneisiin", mikä voi tarjota merkittäviä säästöjä kustannuksissa ja hiilidioksidipäästöissä. joka voi tulla mallikoulutuksen mukana.

Tämän uuden kapasiteetin ansiosta tutkijat voivat nyt tarttua ja kaivaa syvemmälle suurempia ja suurempia kaavioita. Esimerkiksi aiemmin mainittu Bitcoin-verkko sisälsi 100,000 1,000 solmua; SALIENT-järjestelmä pystyy käsittelemään XNUMX kertaa (tai kolme suuruusluokkaa) suurempaa kuvaajaa.

"Tulevaisuudessa emme vain ajaisi tätä graafisen neuroverkon koulutusjärjestelmää olemassa olevilla algoritmeilla, jotka toteutimme kunkin solmun ominaisuuksien luokittelua tai ennustamista varten, vaan haluamme myös tehdä syvempiä tehtäviä, kuten esim. tunnistaa yleisiä kuvioita kaaviossa (aligraafimallit), [jotka] voivat olla todella mielenkiintoisia osoittamaan talousrikoksia", Chen sanoo. ”Haluamme myös tunnistaa graafista solmuja, jotka ovat samanlaisia ​​siinä mielessä, että ne mahdollisesti vastaisivat samaa pahaa toimijaa talousrikoksessa. Nämä tehtävät vaatisivat lisäalgoritmien ja mahdollisesti myös hermoverkkoarkkitehtuurien kehittämistä.

Tätä tutkimusta tukivat MIT-IBM Watson AI Lab ja osittain US Air Force Research Laboratory ja US Air Force Artificial Intelligence Accelerator.

Aikaleima:

Lisää aiheesta Blockchain-konsultit