Accelererar storskalig neurala nätverksträning på CPU:er med ThirdAI och AWS Graviton | Amazon webbtjänster

Accelererar storskalig neurala nätverksträning på CPU:er med ThirdAI och AWS Graviton | Amazon webbtjänster

Det här gästinlägget är skrivet av Vihan Lakshman, Tharun Medini och Anshumali Shrivastava från ThirdAI.

Storskalig djupinlärning har nyligen skapat revolutionerande framsteg inom ett stort antal områden. Även om dessa fantastiska framsteg inom artificiell intelligens fortfarande är anmärkningsvärda, har de ekonomiska kostnaderna och energiförbrukningen som krävs för att träna dessa modeller framstått som en kritisk flaskhals på grund av behovet av specialiserad hårdvara som GPU:er. Traditionellt har till och med blygsamma neurala modeller krävt dyra hårdvaruacceleratorer för utbildning, vilket begränsar antalet organisationer som har de ekonomiska resurserna att dra full nytta av denna teknik.

ThirdAI Corp. grundades 2021 och är en startup dedikerad till uppdraget att demokratisera artificiell intelligensteknik genom algoritm- och mjukvaruinnovationer som i grunden förändrar ekonomin för djupinlärning. Vi har utvecklat en sparsam djupinlärningsmotor, känd som BULT, som är speciellt utformad för att träna och distribuera modeller på standard CPU-hårdvara i motsats till dyra och energikrävande acceleratorer som GPU:er. Många av våra kunder har rapporterade stark tillfredsställelse med ThirdAI:s förmåga att träna och distribuera modeller för djupinlärning för kritiska affärsproblem på kostnadseffektiv CPU-infrastruktur.

I det här inlägget undersöker vi potentialen för AWS Graviton3-processorn att påskynda utbildning i neurala nätverk för ThirdAIs unika CPU-baserade djupinlärningsmotor.

Fördelarna med högpresterande processorer

På ThirdAI uppnår vi dessa genombrott inom effektiv utbildning i neurala nätverk på CPU: er genom proprietära dynamiska glesa algoritmer som endast aktiverar en delmängd av neuroner för en given ingång (se följande figur), och därigenom kringgå behovet av full täta beräkningar. Till skillnad från andra metoder för gles neurala nätverksträning, använder ThirdAI lokaliseringskänslig hashing för att dynamiskt välja neuroner för en given ingång som visas i de fetstilta linjerna nedan. I vissa fall har vi till och med observerat att vår glesa CPU-baserade modeller träna snabbare än den jämförbara täta arkitekturen på GPU:er.

Tät neural arkitektur med djärva linjer som visar vilka neuroner som väljs

Med tanke på att många av våra målkunder verkar i molnet – och bland dem använder majoriteten AWS – var vi glada att testa AWS Graviton3-processorn för att se om de imponerande pris-prestandaförbättringarna av Amazons kiselinnovation skulle översättas till vår unika arbetsbelastning av gles neurala nätverksutbildning och därigenom ge ytterligare besparingar för kunderna. Även om både forskarsamhället och AWS Graviton-teamet har levererat spännande framsteg när det gäller acceleration neurala nätverks slutledning på CPU-instanser är vi på ThirdAI, såvitt vi vet, de första som på allvar studerar hur man tränar neurala modeller på CPU:er effektivt.

Som visas i våra resultat observerade vi en betydande träningshastighet med AWS Graviton3 jämfört med de jämförbara Intel- och NVIDIA-instanserna på flera representativa modelleringsarbetsbelastningar.

Instanstyper

För vår utvärdering övervägde vi två jämförbara AWS CPU-instanser: en c6i.8xlarge-maskin som drivs av Intels Ice Lake-processor och en c7g.8xlarge som drivs av AWS Graviton3. Följande tabell sammanfattar detaljerna för varje instans.

Exempel vCPU RAM (GB) Processorn Pris på begäran (us-east-1)
c7g.8xstor 32 64 AWS Graviton3 $ 1.1562 / hr
c6i.8xlarge 32 64 Intel Ice Lake $ 1.36 / hr
g5g.8xlarge (GPU) 32 64 med 16 GB GPU-minne AWS Graviton2-processorer med 1 NVIDIA T4G GPU $ 1.3720 / hr

Utvärdering 1: Extrem klassificering

För vår första utvärdering fokuserar vi på problemet med extrem multi-label classification (XMC), ett alltmer populärt paradigm för maskininlärning (ML) med ett antal praktiska tillämpningar inom sökning och rekommendationer (inklusive på amason). För vår utvärdering fokuserar vi på allmänheten Amazon-670K produktrekommendationsuppgift, som, givet en insatsprodukt, identifierar liknande produkter från en samling på över 670,000 XNUMX artiklar.

I det här experimentet jämför vi ThirdAI:s BOLT-motor mot TensorFlow 2.11 och PyTorch 2.0 på de tidigare nämnda hårdvaruvalen: Intel Ice Lake, AWS Graviton3 och en NVIDIA T4G GPU. För våra experiment på Intel och AWS Graviton använder vi AWS Deep Learning AMI (Ubuntu 18.04) version 59.0. För vår GPU-utvärdering använder vi NVIDIA GPU-optimerad Arm64 AMI, tillgänglig via AWS Marketplace. För denna utvärdering använder vi SLIDE modell arkitektur, som uppnår både konkurrenskraftig prestanda på denna extrema klassificeringsuppgift och stark träningsprestanda på CPU:er. För våra TensorFlow och PyTorch-jämförelser implementerar vi den analoga versionen av SLIDE multi-layer perceptron (MLP) arkitektur med täta matrismultiplikationer. Vi tränar varje modell under fem epoker (fulla passeringar genom träningsdatasetet) med en fast batchstorlek på 256 och inlärningshastighet på 0.001. Vi observerade att alla modeller uppnådde samma testnoggrannhet på 33.6 %.

Följande diagram jämför träningstiden för ThirdAI:s BOLT med TensorFlow 2.11 och PyTorch 2.0 på Amazon670k extrema klassificeringsbenchmark. Alla modeller uppnår samma testprecision. Vi observerar att AWS Graviton3 avsevärt accelererar prestandan för BOLT ur lådan utan att några anpassningar behövs – med cirka 40 %. ThirdAI:s BOLT på AWS Graviton3 uppnår också betydligt snabbare träning än TensorFlow- eller PyTorch-modellerna tränade på GPU. Observera att det inte finns något ThirdAI-resultat på NVIDIA GPU-riktmärket eftersom BOLT är designat för att köras på processorer. Vi inkluderar inte TensorFlow och PyTorch CPU-riktmärken på grund av den oöverkomligt långa träningstiden.

Amazon 670k Träningstid Stapeldiagram som jämför instanser c6i.8xlarge vs c7g.8xlarge

Följande tabell sammanfattar träningstiden och testnoggrannheten för varje processor/specialiserad processor (GPU).

Processorn Motor Träningstid (er) Testnoggrannhet
Intel Ice Lake (c6i.8xlarge) BULT 1470 33.6
AWS Graviton3 (c7g.8xlarge) BULT 935 33.6
NVIDIA T4G (g5g.8xlarge) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xlarge) PyTorch 5130 33.6

Utvärdering 2: Yelps polaritetsentimentanalys

För vår andra utvärdering fokuserar vi på det populära Yelp Polarity benchmark för sentimentanalys, vilket innebär att en recension klassificeras som positiv eller negativ. För denna utvärdering jämför vi ThirdAI:s Universal Deep Transformers (UDT) modell mot en finstämd DistilBERT nätverk, en komprimerad förtränad språkmodell som uppnår nästan toppmodern prestanda med reducerad slutledningslatens. Eftersom finjustering av DistilBERT-modeller på en CPU skulle ta oöverkomligt lång tid (minst flera dagar), jämför vi ThirdAIs CPU-baserade modeller mot DistilBERT finjusterade på en GPU. Vi tränar alla modeller med en batchstorlek på 256 för en enda passage genom data (en epok). Vi noterar att vi kan uppnå något högre noggrannhet med BOLT med ytterligare genomgångar av data, men vi begränsar oss till ett enda pass i denna utvärdering för konsekvens.

Som visas i följande figur accelererar AWS Graviton3 återigen ThirdAI:s UDT-modellträning avsevärt. Dessutom kan UDT uppnå jämförbar testnoggrannhet med DistilBERT med en bråkdel av träningstiden och utan behov av en GPU. Vi noterar att det också har gjorts nyligen arbete i optimera finjusteringen av Yelp Polarity på CPU:er. Våra modeller uppnår dock fortfarande större effektivitetsvinster och slipper kostnaden för förträning, vilket är betydande och kräver användning av hårdvaruacceleratorer som GPU:er.

Träningstid på Yelp Polarity C7g vs c6i

Följande tabell sammanfattar träningstiden, testnoggrannheten och slutledningslatens.

Processorn Motor Modell Träningstid (er) Testnoggrannhet Slutledningslatens (ms)
Intel Icelake (c6i.8xlarge) BULT UDT 47 93.2 <1
Graviton3 (c7g.8xlarge) BULT 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

Utvärdering 3: Flerklassig textklassificering (DBPedia)

För vår slutliga utvärdering fokuserar vi på problemet med textklassificering i flera klasser, vilket innebär att tilldela en etikett till en given ingångstext från en uppsättning av mer än två utdataklasser. Vi fokuserar på DBPedia benchmark, som består av 14 möjliga outputklasser. Återigen ser vi att AWS Graviton3 accelererar UDT-prestanda jämfört med den jämförbara Intel-instansen med ungefär 40%. Vi ser också att BOLT uppnår jämförbara resultat med den DistilBERT-transformatorbaserade modellen finjusterad på en GPU samtidigt som den uppnår sub-millisekunders latens.

ThirdAI BOLT träningstid på c7g vs c6i

Följande tabell sammanfattar träningstiden, testnoggrannheten och slutledningslatens.

Processorn Motor Modell Träningstid (er) Testnoggrannhet Slutledningslatens (ms)
Intel Icelake (c6i.8xlarge) BULT UDT 23 98.23 <1
Graviton3 (c7g.8xlarge) BULT 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 igång med ThirdAI på AWS Graviton

Vi har designat vår BOLT-mjukvara för kompatibilitet med alla större CPU-arkitekturer, inklusive AWS Graviton3. Faktum är att vi inte behövde göra några anpassningar av vår kod för att köras på AWS Graviton3. Därför kan du använda ThirdAI för modellträning och driftsättning på AWS Graviton3 utan extra ansträngning. Dessutom, som beskrivs i vår senaste forskningswhitepaper, har vi utvecklat en uppsättning nya matematiska tekniker för att automatiskt ställa in de specialiserade hyperparametrarna som är förknippade med våra glesa modeller, vilket gör att våra modeller kan fungera bra direkt ur lådan.

Vi noterar också att våra modeller främst fungerar bra för sökning, rekommendationer och bearbetningsuppgifter för naturligt språk som vanligtvis har stora, högdimensionella utmatningsutrymmen och ett krav på extremt låg slutledningslatens. Vi arbetar aktivt med att utöka våra metoder till ytterligare domäner, såsom datorseende, men var medveten om att våra effektivitetsförbättringar inte översätts till alla ML-domäner just nu.

Slutsats

I det här inlägget undersökte vi potentialen för AWS Graviton3-processorn att påskynda utbildning i neurala nätverk för ThirdAI:s unika CPU-baserade djupinlärningsmotor. Våra riktmärken för sökning, textklassificering och rekommendationer antyder att AWS Graviton3 kan accelerera ThirdAI:s modellträningsarbetsbelastningar med 30–40 % jämfört med de jämförbara x86-instanserna med en pris-prestandaförbättring på nästan 50 %. Dessutom, eftersom AWS Graviton3-instanser är tillgängliga till en lägre kostnad än de analoga Intel- och NVIDIA-maskinerna och möjliggör kortare tränings- och slutledningstider, kan du ytterligare låsa upp värdet av AWS pay-as-you-go-användningsmodellen genom att använda lägre kostnad maskiner för kortare tidsperioder.

Vi är mycket glada över pris- och prestandabesparingarna med AWS Graviton3 och kommer att försöka förmedla dessa förbättringar till våra kunder så att de kan njuta av snabbare ML-träning och slutsatser med förbättrad prestanda på lågkostnads-CPU:er. Som kunder till AWS själva är vi glada över den hastighet med vilken AWS Graviton3 tillåter oss att experimentera med våra modeller, och vi ser fram emot att använda mer banbrytande kiselinnovation från AWS framöver. Graviton teknisk guide är en bra resurs att tänka på när du utvärderar dina ML-arbetsbelastningar för att köras på Graviton. Du kan också prova Graviton t4g-instanser fri rättegång.

Innehållet och åsikterna i det här inlägget är tredje parts författare och AWS ansvarar inte för innehållet eller riktigheten i detta inlägg. När bloggen skrevs var den mest aktuella instansen c6i och därför gjordes jämförelsen med c6i-instanserna.


Om författaren

Vihan Lakshman – Vihan Lakshman är en forskare vid ThirdAI Corp. fokuserad på att utveckla system för resurseffektivt djupt lärande. Innan ThirdAI arbetade han som tillämpad vetenskapsman på Amazon och fick grund- och masterexamen från Stanford University. Vihan är också mottagare av ett National Science Foundation-forskningsstipendium.

Tharun Medini – Tharun Medini är medgrundare och CTO för ThirdAI Corp. Han doktorerade i "Hashing Algorithms for Search and Information Retrieval" vid Rice University. Innan ThirdAI arbetade Tharun på Amazon och Target. Tharun är mottagare av ett flertal utmärkelser för sin forskning, inklusive Ken Kennedy Institute BP Fellowship, American Society of Indian Engineers Scholarship och ett Rice University Graduate Fellowship.

Anshumali Shrivastava – Anshumali Shrivastava är docent vid datavetenskapsavdelningen vid Rice University. Han är också grundare och VD för ThirdAI Corp, ett företag som demokratiserar AI till råvaruhårdvara genom mjukvaruinnovationer. Hans breda forskningsintressen inkluderar probabilistiska algoritmer för resurssnål djupinlärning. 2018 utnämnde Science News honom till en av de 10 bästa forskarna under 40 år att titta på. Han är mottagare av National Science Foundation CAREER Award, ett Young Investigator Award från Air Force Office of Scientific Research, ett maskininlärningsforskningspris från Amazon och ett Data Science Research Award från Adobe. Han har vunnit ett flertal papperspriser, inklusive Best Paper Awards vid NIPS 2014 och MLSys 2022, såväl som Most Reproducible Paper Award vid SIGMOD 2019. Hans arbete med effektiv maskininlärningsteknik på CPU:er har bevakats av populärpress inklusive Wall Street Journal, New York Times, TechCrunch, NDTV, etc.

Tidsstämpel:

Mer från AWS maskininlärning