Akselererer storskala nevrale nettverkstrening på CPUer med ThirdAI og AWS Graviton | Amazon Web Services

Akselererer storskala nevrale nettverkstrening på CPUer med ThirdAI og AWS Graviton | Amazon Web Services

Dette gjesteinnlegget er skrevet av Vihan Lakshman, Tharun Medini og Anshumali Shrivastava fra ThirdAI.

Storstilt dyp læring har nylig produsert revolusjonerende fremskritt på en lang rekke felt. Selv om denne fantastiske fremgangen innen kunstig intelligens fortsatt er bemerkelsesverdig, har de økonomiske kostnadene og energiforbruket som kreves for å trene disse modellene dukket opp som en kritisk flaskehals på grunn av behovet for spesialisert maskinvare som GPUer. Tradisjonelt har selv beskjedne størrelse nevrale modeller krevd kostbare maskinvareakseleratorer for opplæring, noe som begrenser antallet organisasjoner med økonomiske midler til å dra full nytte av denne teknologien.

ThirdAI Corp. ble grunnlagt i 2021, og er en oppstart dedikert til oppdraget med å demokratisere kunstig intelligens-teknologier gjennom algoritmer og programvareinnovasjoner som fundamentalt endrer økonomien til dyp læring. Vi har utviklet en sparsom dyp læringsmotor, kjent som BOLT, som er spesielt designet for opplæring og distribusjon av modeller på standard CPU-maskinvare i motsetning til kostbare og energikrevende akseleratorer som GPUer. Mange av våre kunder har rapporterte om stor tilfredshet med ThirdAIs evne til å trene og distribuere dyplæringsmodeller for kritiske forretningsproblemer på kostnadseffektiv CPU-infrastruktur.

I dette innlegget undersøker vi potensialet for AWS Graviton3-prosessoren for å akselerere nevrale nettverkstrening for ThirdAIs unike CPU-baserte dyplæringsmotor.

Fordelene med høyytelses CPUer

Hos ThirdAI oppnår vi disse gjennombruddene innen effektiv nevrale nettverkstrening på CPUer gjennom proprietære dynamiske sparsomme algoritmer som aktiverer bare en undergruppe av nevroner for en gitt inngang (se følgende figur), og derved omgås behovet for full tette beregninger. I motsetning til andre tilnærminger til sparsom nevrale nettverkstrening, bruker ThirdAI lokalitetsfølsom hashing for å dynamisk velge nevroner for en gitt inngang som vist i de fete linjene nedenfor. I visse tilfeller har vi til og med observert at vår sparsomme CPU-baserte modeller trene raskere enn den sammenlignbare tette arkitekturen på GPUer.

Tett nevral arkitektur med dristige linjer som viser hvilke nevroner som er valgt

Gitt at mange av våre målkunder opererer i skyen – og blant dem bruker flertallet AWS – var vi glade for å prøve ut AWS Graviton3-prosessoren for å se om de imponerende pris-ytelsesforbedringene til Amazons silisiuminnovasjon ville oversettes til vår unike arbeidsmengde av sparsom nevrale nettverksopplæring og dermed gi ytterligere besparelser for kundene. Selv om både forskningsmiljøet og AWS Graviton-teamet har levert spennende fremskritt innen akselerasjon nevrale nettverksslutninger på CPU-forekomster er vi i ThirdAI, så vidt vi vet, de første som seriøst studerte hvordan man trener nevrale modeller på CPUer effektivt.

Som vist i resultatene våre, observerte vi en betydelig treningshastighet med AWS Graviton3 i forhold til de sammenlignbare Intel- og NVIDIA-forekomstene på flere representative arbeidsbelastninger for modellering.

Forekomststyper

For vår evaluering vurderte vi to sammenlignbare AWS CPU-forekomster: en c6i.8xlarge-maskin drevet av Intels Ice Lake-prosessor og en c7g.8xlarge drevet av AWS Graviton3. Tabellen nedenfor oppsummerer detaljene for hver forekomst.

Forekomst vCPU RAM (GB) prosessor On-Demand-pris (us-east-1)
c7g.8xlarge 32 64 AWS Graviton3 $ 1.1562 / t
c6i.8xlarge 32 64 Intel Ice Lake $ 1.36 / t
g5g.8xlarge (GPU) 32 64 med 16 GB GPU-minne AWS Graviton2-prosessorer med 1 NVIDIA T4G GPU $ 1.3720 / t

Evaluering 1: Ekstrem klassifisering

For vår første evaluering fokuserer vi på problemet med ekstrem multi-label klassifisering (XMC), et stadig mer populært maskinlæringsparadigme (ML) med en rekke praktiske anvendelser innen søk og anbefalinger (inkludert på Amazon). For vår evaluering fokuserer vi på publikum Amazon-670K produktanbefalingsoppgave, som, gitt et inngangsprodukt, identifiserer lignende produkter fra en samling på over 670,000 XNUMX varer.

I dette eksperimentet benchmarker vi ThirdAIs BOLT-motor mot TensorFlow 2.11 og PyTorch 2.0 på de nevnte maskinvarevalgene: Intel Ice Lake, AWS Graviton3 og en NVIDIA T4G GPU. For våre eksperimenter på Intel og AWS Graviton bruker vi AWS Deep Learning AMI (Ubuntu 18.04) versjon 59.0. For vår GPU-evaluering bruker vi NVIDIA GPU-optimalisert Arm64 AMI, tilgjengelig via AWS Marketplace. For denne evalueringen bruker vi SLIDE modellarkitektur, som oppnår både konkurransedyktig ytelse på denne ekstreme klassifiseringsoppgaven og sterk treningsytelse på CPUer. For våre TensorFlow- og PyTorch-sammenlikninger implementerer vi den analoge versjonen av SLIDE multi-layer perceptron (MLP) arkitektur med tette matrisemultiplikasjoner. Vi trener hver modell i fem epoker (fulle passeringer gjennom treningsdatasettet) med en fast batchstørrelse på 256 og læringsrate på 0.001. Vi observerte at alle modellene oppnådde samme testnøyaktighet på 33.6 %.

Følgende diagram sammenligner treningstiden til ThirdAIs BOLT med TensorFlow 2.11 og PyTorch 2.0 på Amazon670k ekstremklassifiseringsbenchmark. Alle modeller oppnår samme testpresisjon. Vi observerer at AWS Graviton3 akselererer ytelsen til BOLT ut av esken betraktelig uten behov for tilpasninger – med omtrent 40 %. ThirdAIs BOLT på AWS Graviton3 oppnår også betydelig raskere trening enn TensorFlow- eller PyTorch-modellene trent på GPU. Merk at det ikke er noe ThirdAI-resultat på NVIDIA GPU-referansen fordi BOLT er designet for å kjøre på CPUer. Vi inkluderer ikke TensorFlow og PyTorch CPU-benchmarks på grunn av den uoverkommelige lange treningstiden.

Amazon 670k Treningstid Stolpediagram som sammenligner forekomster c6i.8xlarge vs c7g.8xlarge

Tabellen nedenfor oppsummerer treningstiden og testnøyaktigheten for hver prosessor/spesialisert prosessor (GPU).

prosessor Motor Treningstid(er) Test nøyaktighet
Intel Ice Lake (c6i.8xlarge) BOLT 1470 33.6
AWS Graviton3 (c7g.8xlarge) BOLT 935 33.6
NVIDIA T4G (g5g.8xlarge) tensorflow 7550 33.6
NVIDIA T4G (g5g.8xlarge) PyTorch 5130 33.6

Evaluering 2: Yelp Polaritet sentiment analyse

For vår andre evaluering fokuserer vi på det populære Yelp Polarity referanseindeks for sentimentanalyse, som innebærer å klassifisere en anmeldelse som positiv eller negativ. For denne evalueringen sammenligner vi ThirdAI Universal Deep Transformers (UDT) modell mot en finjustert DistilBERT nettverk, en komprimert ferdigtrent språkmodell som oppnår nærmest toppmoderne ytelse med redusert slutningsforsinkelse. Fordi finjustering av DistilBERT-modeller på en CPU vil ta uoverkommelig lang tid (minst flere dager), sammenligner vi ThirdAIs CPU-baserte modeller mot DistilBERT finjustert på en GPU. Vi trener alle modeller med en batchstørrelse på 256 for en enkelt gjennomgang av dataene (én epoke). Vi legger merke til at vi kan oppnå litt høyere nøyaktighet med BOLT med flere gjennomganger av dataene, men vi begrenser oss til en enkelt gjennomgang i denne evalueringen for konsistens.

Som vist i følgende figur, akselererer AWS Graviton3 igjen ThirdAIs UDT-modelltrening betraktelig. Videre er UDT i stand til å oppnå sammenlignbar testnøyaktighet som DistilBERT med en brøkdel av treningstiden og uten behov for en GPU. Vi legger merke til at det også har vært arbeid i senere tid optimalisere finjusteringen av Yelp Polarity på CPUer. Modellene våre oppnår imidlertid fortsatt større effektivitetsgevinster og unngår kostnadene ved forhåndstrening, som er betydelig og krever bruk av maskinvareakseleratorer som GPUer.

Treningstid på Yelp Polarity C7g vs c6i

Tabellen nedenfor oppsummerer treningstiden, testnøyaktigheten og slutningsforsinkelsen.

prosessor Motor Modell Treningstid(er) Test nøyaktighet Inferensforsinkelse (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 47 93.2 <1
Graviton3 (c7g.8xlarge) BOLT UDT 29 92.9 <1
T4G GPU (g5g.8xlarge) tensorflow DistilBERT 4200 93.3 8.7
T4G GPU (g5g.8xlarge) PyTorch DistilBERT 3780 93.4 8.3

Evaluering 3: Multi-class tekstklassifisering (DBPedia)

For vår sluttevaluering fokuserer vi på problemet med flerklassetekstklassifisering, som innebærer å tilordne en etikett til en gitt inndatatekst fra et sett med mer enn to utdataklasser. Vi fokuserer på DBPedia benchmark, som består av 14 mulige produksjonsklasser. Igjen ser vi at AWS Graviton3 akselererer UDT-ytelsen over den sammenlignbare Intel-forekomsten med omtrent 40 %. Vi ser også at BOLT oppnår sammenlignbare resultater med den DistilBERT-transformatorbaserte modellen finjustert på en GPU samtidig som den oppnår sub-millisekundes latency.

ThirdAI BOLT treningstid på c7g vs c6i

Tabellen nedenfor oppsummerer treningstiden, testnøyaktigheten og slutningsforsinkelsen.

prosessor Motor Modell Treningstid(er) Test nøyaktighet Inferensforsinkelse (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 23 98.23 <1
Graviton3 (c7g.8xlarge) BOLT UDT 14 98.10 <1
T4G GPU (g5g.8xlarge) tensorflow DistilBERT 4320 99.23 8.6
T4G GPU (g5g.8xlarge) PyTorch DistilBERT 3480 99.29 8

Kom i gang med ThirdAI på AWS Graviton

Vi har designet vår BOLT-programvare for kompatibilitet med alle større CPU-arkitekturer, inkludert AWS Graviton3. Faktisk trengte vi ikke å gjøre noen tilpasninger av koden vår for å kjøre på AWS Graviton3. Derfor kan du bruke ThirdAI for modelltrening og distribusjon på AWS Graviton3 uten ekstra innsats. I tillegg, som beskrevet i vår siste forskning whitepaper, har vi utviklet et sett med nye matematiske teknikker for automatisk å justere de spesialiserte hyperparametrene knyttet til de sparsomme modellene våre, slik at modellene våre kan fungere godt umiddelbart ut av esken.

Vi legger også merke til at modellene våre primært fungerer godt for søk, anbefaling og prosesseringsoppgaver med naturlig språk som vanligvis har store, høydimensjonale utdatarom og et krav om ekstremt lav inferensforsinkelse. Vi jobber aktivt med å utvide metodene våre til flere domener, for eksempel datasyn, men vær oppmerksom på at effektivitetsforbedringene våre ikke oversettes til alle ML-domener for øyeblikket.

konklusjonen

I dette innlegget undersøkte vi potensialet for AWS Graviton3-prosessoren for å akselerere nevrale nettverkstrening for ThirdAIs unike CPU-baserte dyplæringsmotor. Våre benchmarks for søk, tekstklassifisering og anbefalinger antyder at AWS Graviton3 kan akselerere ThirdAIs modelltreningsarbeidsmengde med 30–40 % i forhold til sammenlignbare x86-forekomster med en pris-ytelsesforbedring på nesten 50 %. Videre, fordi AWS Graviton3-forekomster er tilgjengelige til en lavere pris enn de analoge Intel- og NVIDIA-maskinene og muliggjør kortere trenings- og slutningstider, kan du ytterligere låse opp verdien av AWS pay-as-you-go-bruksmodellen ved å bruke lavere kostnader maskiner for kortere varighet.

Vi er veldig begeistret over pris- og ytelsesbesparelsene til AWS Graviton3 og vil se etter å videreformidle disse forbedringene til kundene våre slik at de kan nyte raskere ML-trening og slutninger med forbedret ytelse på lavkost-CPUer. Som kunder av AWS selv er vi glade for hastigheten som AWS Graviton3 lar oss eksperimentere med modellene våre med, og vi ser frem til å bruke mer banebrytende silisiuminnovasjon fra AWS fremover. Graviton teknisk veiledning er en god ressurs å vurdere når du evaluerer ML-arbeidsbelastningene dine for å kjøre på Graviton. Du kan også prøve Graviton t4g-forekomster gratis prøveperiode.

Innholdet og meningene i dette innlegget er de fra tredjepartsforfatteren, og AWS er ​​ikke ansvarlig for innholdet eller nøyaktigheten til dette innlegget. På tidspunktet for skriving av bloggen var den mest aktuelle forekomsten c6i, og derfor ble sammenligningen gjort med c6i-forekomster.


om forfatteren

Vihan Lakshman – Vihan Lakshman er en forsker ved ThirdAI Corp. med fokus på å utvikle systemer for ressurseffektiv dyp læring. Før ThirdAI jobbet han som Applied Scientist hos Amazon og mottok bachelor- og mastergrader fra Stanford University. Vihan er også mottaker av et forskningsstipend fra National Science Foundation.

Tharun Medini – Tharun Medini er medgründer og CTO av ThirdAI Corp. Han tok sin doktorgrad i "Hashing Algorithms for Search and Information Retrieval" ved Rice University. Før ThirdAI jobbet Tharun hos Amazon og Target. Tharun er mottaker av en rekke priser for sin forskning, inkludert Ken Kennedy Institute BP Fellowship, American Society of Indian Engineers Scholarship og et Rice University Graduate Fellowship.

Anshumali Shrivastava – Anshumali Shrivastava er førsteamanuensis ved informatikkavdelingen ved Rice University. Han er også grunnlegger og administrerende direktør for ThirdAI Corp, et selskap som demokratiserer AI til råvaremaskinvare gjennom programvareinnovasjoner. Hans brede forskningsinteresser inkluderer sannsynlighetsalgoritmer for ressurssparende dyp læring. I 2018 kåret Science News ham til en av topp-10 forskerne under 40 år å se. Han er mottaker av National Science Foundation CAREER Award, en Young Investigator Award fra Air Force Office of Scientific Research, en maskinlæringsforskningspris fra Amazon og en Data Science Research Award fra Adobe. Han har vunnet en rekke papirpriser, inkludert Best Paper Awards på NIPS 2014 og MLSys 2022, samt Most Reproducible Paper Award på SIGMOD 2019. Hans arbeid med effektiv maskinlæringsteknologi på CPUer har blitt dekket av populærpresse inkludert Wall Street Journal, New York Times, TechCrunch, NDTV, etc.

Tidstempel:

Mer fra AWS maskinlæring