Accelererer storstilet neural netværkstræning på CPU'er med ThirdAI og AWS Graviton | Amazon Web Services

Accelererer storstilet neural netværkstræning på CPU'er med ThirdAI og AWS Graviton | Amazon Web Services

Dette gæsteindlæg er skrevet af Vihan Lakshman, Tharun Medini og Anshumali Shrivastava fra ThirdAI.

Storstilet dyb læring har for nylig produceret revolutionerende fremskridt inden for en bred vifte af felter. Selvom denne fantastiske fremgang inden for kunstig intelligens forbliver bemærkelsesværdig, er de økonomiske omkostninger og energiforbrug, der kræves for at træne disse modeller, vist sig som en kritisk flaskehals på grund af behovet for specialiseret hardware som GPU'er. Traditionelt har selv beskedne størrelse neurale modeller krævet kostbare hardwareacceleratorer til træning, hvilket begrænser antallet af organisationer med de økonomiske midler til at drage fuld fordel af denne teknologi.

ThirdAI Corp., der blev grundlagt i 2021, er en startup dedikeret til missionen om at demokratisere kunstig intelligens-teknologier gennem algoritmiske og softwareinnovationer, der fundamentalt ændrer økonomien ved deep learning. Vi har udviklet en sparsom deep learning-motor, kendt som BOLT, der er specielt designet til træning og implementering af modeller på standard CPU-hardware i modsætning til dyre og energikrævende acceleratorer som GPU'er. Mange af vores kunder har meldte om stor tilfredshed med ThirdAI's evne til at træne og implementere deep learning-modeller til kritiske forretningsproblemer på en omkostningseffektiv CPU-infrastruktur.

I dette indlæg undersøger vi potentialet for AWS Graviton3-processoren til at accelerere neurale netværkstræning for ThirdAIs unikke CPU-baserede deep learning-motor.

Fordelene ved højtydende CPU'er

Hos ThirdAI opnår vi disse gennembrud inden for effektiv neurale netværkstræning på CPU'er gennem proprietære dynamiske sparse algoritmer, der kun aktiverer en delmængde af neuroner for et givet input (se følgende figur), og derved omgås behovet for fuld tætte beregninger. I modsætning til andre tilgange til sparsom neurale netværkstræning, bruger ThirdAI lokalitetsfølsom hashing til dynamisk at vælge neuroner til et givet input som vist i de fede linjer nedenfor. I visse tilfælde har vi endda observeret, at vores sparsomme CPU-baserede modeller træne hurtigere end den sammenlignelige tætte arkitektur på GPU'er.

Tæt neural arkitektur med fede linjer, der viser, hvilke neuroner der er udvalgt

I betragtning af at mange af vores målkunder opererer i skyen – og blandt dem bruger størstedelen AWS – var vi spændte på at prøve AWS Graviton3-processoren for at se, om de imponerende pris-ydelsesforbedringer af Amazons siliciuminnovation ville oversætte til vores unikke arbejdsbyrde af sparsom neurale netværkstræning og derved give yderligere besparelser for kunderne. Selvom både forskningsmiljøet og AWS Graviton-teamet har leveret spændende fremskridt inden for acceleration neurale netværk inferens på CPU-instanser er vi hos ThirdAI, så vidt vi ved, de første til seriøst at studere, hvordan man effektivt træner neurale modeller på CPU'er.

Som vist i vores resultater observerede vi en betydelig træningshastighed med AWS Graviton3 i forhold til de sammenlignelige Intel- og NVIDIA-instanser på flere repræsentative modelleringsarbejdsbelastninger.

Instantyper

Til vores evaluering overvejede vi to sammenlignelige AWS CPU-instanser: en c6i.8xlarge maskine drevet af Intels Ice Lake-processor og en c7g.8xlarge drevet af AWS Graviton3. Følgende tabel opsummerer detaljerne for hver enkelt instans.

Instans vCPU RAM (GB) Processor On-Demand-pris (us-east-1)
c7g.8xlarge 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-hukommelse AWS Graviton2-processorer med 1 NVIDIA T4G GPU $ 1.3720 / hr

Evaluering 1: Ekstrem klassificering

Til vores første evaluering fokuserer vi på problemet med ekstrem multi-label klassificering (XMC), et stadig mere populært maskinlæringsparadigme (ML) med en række praktiske anvendelser inden for søgning og anbefalinger (inklusive på Amazon). Til vores evaluering fokuserer vi på offentligheden Amazon-670K produktanbefalingsopgave, som givet et inputprodukt identificerer lignende produkter fra en samling på over 670,000 varer.

I dette eksperiment benchmarker vi ThirdAIs BOLT-motor mod TensorFlow 2.11 og PyTorch 2.0 på de førnævnte hardwarevalg: Intel Ice Lake, AWS Graviton3 og en NVIDIA T4G GPU. Til vores eksperimenter med Intel og AWS Graviton bruger vi AWS Deep Learning AMI (Ubuntu 18.04) version 59.0. Til vores GPU-evaluering bruger vi NVIDIA GPU-optimeret Arm64 AMI, tilgængelig via AWS Marketplace. Til denne evaluering bruger vi SLIDE model arkitektur, som opnår både konkurrencedygtig præstation på denne ekstreme klassifikationsopgave og stærk træningspræstation på CPU'er. Til vores TensorFlow og PyTorch sammenligninger implementerer vi den analoge version af SLIDE multi-layer perceptron (MLP) arkitektur med tætte matrix multiplikationer. Vi træner hver model i fem epoker (fuld gennemløb gennem træningsdatasættet) med en fast batchstørrelse på 256 og indlæringshastighed på 0.001. Vi observerede, at alle modeller opnåede den samme testnøjagtighed på 33.6%.

Følgende diagram sammenligner træningstiden for ThirdAI's BOLT med TensorFlow 2.11 og PyTorch 2.0 på Amazon670k ekstreme klassifikationsbenchmark. Alle modeller opnår samme testpræcision. Vi observerer, at AWS Graviton3 betydeligt accelererer ydeevnen af ​​BOLT ud af æsken uden behov for tilpasninger - med cirka 40%. ThirdAI's BOLT på AWS Graviton3 opnår også betydeligt hurtigere træning end TensorFlow- eller PyTorch-modellerne trænet på GPU'en. Bemærk, at der ikke er noget ThirdAI-resultat på NVIDIA GPU-benchmark, fordi BOLT er designet til at køre på CPU'er. Vi inkluderer ikke TensorFlow og PyTorch CPU benchmarks på grund af den uoverkommelige lange træningstid.

Amazon 670k Træningstid Søjlediagram, der sammenligner forekomster c6i.8xlarge vs c7g.8xlarge

Følgende tabel opsummerer træningstiden og testnøjagtigheden for hver processor/specialiseret processor (GPU).

Processor Engine (Motor) Træningstid (r) Testnøjagtighed
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

Til vores anden evaluering fokuserer vi på det populære Yelp Polarity sentimentanalyse benchmark, som involverer klassificering af en anmeldelse som positiv eller negativ. Til denne evaluering sammenligner vi ThirdAI's Universal Deep Transformers (UDT) model mod en finjusteret DistilBERT netværk, en komprimeret præ-trænet sprogmodel, der opnår næsten den nyeste ydeevne med reduceret slutningsforsinkelse. Fordi finjustering af DistilBERT-modeller på en CPU ville tage uoverkommelig lang tid (mindst flere dage), benchmarker vi ThirdAI's CPU-baserede modeller mod DistilBERT finjusteret på en GPU. Vi træner alle modeller med en batchstørrelse på 256 til en enkelt gennemgang af dataene (én epoke). Vi bemærker, at vi kan opnå en lidt højere nøjagtighed med BOLT med yderligere gennemgange af dataene, men vi begrænser os til en enkelt gennemgang i denne evaluering for at opnå konsistens.

Som vist i den følgende figur accelererer AWS Graviton3 igen ThirdAIs UDT-modeltræning betydeligt. Ydermere er UDT i stand til at opnå sammenlignelig testnøjagtighed med DistilBERT med en brøkdel af træningstiden og uden behov for en GPU. Vi bemærker, at der også for nylig har været arbejde i optimering af finjusteringen af Yelp Polarity på CPU'er. Vores modeller opnår dog stadig større effektivitetsgevinster og undgår omkostningerne ved fortræning, som er betydelig og kræver brug af hardwareacceleratorer som GPU'er.

Træningstid på Yelp Polarity C7g vs c6i

Følgende tabel opsummerer træningstiden, testnøjagtigheden og inferensforsinkelsen.

Processor Engine (Motor) Model Træningstid (r) Testnøjagtighed 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 tekstklassificering (DBPedia)

Til vores endelige evaluering fokuserer vi på problemet med multi-class tekstklassificering, som involverer at tildele en etiket til en given inputtekst fra et sæt på mere end to outputklasser. Vi fokuserer på DBPedia benchmark, som består af 14 mulige outputklasser. Igen ser vi, at AWS Graviton3 accelererer UDT-ydeevnen i forhold til den sammenlignelige Intel-instans med omkring 40%. Vi ser også, at BOLT opnår sammenlignelige resultater med den DistilBERT transformer-baserede model finjusteret på en GPU, mens den opnår en latency på under millisekunder.

ThirdAI BOLT træningstid på c7g vs c6i

Følgende tabel opsummerer træningstiden, testnøjagtigheden og inferensforsinkelsen.

Processor Engine (Motor) Model Træningstid (r) Testnøjagtighed 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 vores BOLT-software til kompatibilitet med alle større CPU-arkitekturer, inklusive AWS Graviton3. Faktisk behøvede vi ikke at foretage nogen tilpasninger af vores kode for at køre på AWS Graviton3. Derfor kan du bruge ThirdAI til modeltræning og implementering på AWS Graviton3 uden yderligere indsats. Derudover, som detaljeret i vores seneste forsknings-whitepaper, har vi udviklet et sæt nye matematiske teknikker til automatisk at tune de specialiserede hyperparametre, der er forbundet med vores sparsomme modeller, så vores modeller kan fungere godt umiddelbart ud af boksen.

Vi bemærker også, at vores modeller primært fungerer godt til søge-, anbefalings- og naturligt sprogbehandlingsopgaver, der typisk har store, højdimensionelle outputrum og et krav om ekstremt lav inferensforsinkelse. Vi arbejder aktivt på at udvide vores metoder til yderligere domæner, såsom computervision, men vær opmærksom på, at vores effektivitetsforbedringer ikke oversættes til alle ML-domæner på nuværende tidspunkt.

Konklusion

I dette indlæg undersøgte vi potentialet for AWS Graviton3-processoren til at accelerere neurale netværkstræning for ThirdAIs unikke CPU-baserede deep learning-motor. Vores benchmarks for søgning, tekstklassificering og anbefalinger peger på, at AWS Graviton3 kan accelerere ThirdAIs modeltræningsarbejdsbelastning med 30-40 % i forhold til de sammenlignelige x86-instanser med en pris-ydelsesforbedring på næsten 50 %. Desuden, fordi AWS Graviton3-instanser er tilgængelige til en lavere pris end de analoge Intel- og NVIDIA-maskiner og muliggør kortere trænings- og slutningstider, kan du yderligere låse op for værdien af ​​AWS pay-as-you-go-brugsmodellen ved at bruge lavere omkostninger maskiner til kortere varigheder.

Vi er meget begejstrede for pris- og ydeevnebesparelserne ved AWS Graviton3 og vil se efter at videregive disse forbedringer til vores kunder, så de kan nyde hurtigere ML-træning og slutninger med forbedret ydeevne på billige CPU'er. Som kunder hos AWS selv er vi glade for den hastighed, hvormed AWS Graviton3 giver os mulighed for at eksperimentere med vores modeller, og vi ser frem til at bruge mere banebrydende siliciuminnovation fra AWS fremover. Graviton teknisk vejledning er en god ressource at overveje, mens du evaluerer dine ML-arbejdsbelastninger til at køre på Graviton. Du kan også prøve Graviton t4g-forekomster gratis prøveversion.

Indholdet og meningerne i dette indlæg er tredjepartsforfatterens, og AWS er ​​ikke ansvarlig for indholdet eller nøjagtigheden af ​​dette indlæg. På tidspunktet for skrivning af bloggen var den mest aktuelle instans c6i, og derfor blev sammenligningen foretaget med c6i instanser.


Om forfatteren

Vihan Lakshman – Vihan Lakshman er forsker ved ThirdAI Corp. med fokus på at udvikle systemer til ressourceeffektiv dyb læring. Før ThirdAI arbejdede han som Applied Scientist hos Amazon og modtog bachelor- og mastergrader fra Stanford University. Vihan er også modtager af et National Science Foundation-forskningsstipendium.

Tharun Medini – Tharun Medini er medstifter og CTO af ThirdAI Corp. Han tog sin ph.d. i "Hashing Algorithms for Search and Information Retrieval" ved Rice University. Før ThirdAI arbejdede Tharun hos Amazon og Target. Tharun er modtager af adskillige priser for sin forskning, herunder Ken Kennedy Institute BP Fellowship, American Society of Indian Engineers Scholarship og et Rice University Graduate Fellowship.

Anshumali Shrivastava – Anshumali Shrivastava er lektor i datalogiafdelingen på Rice University. Han er også grundlægger og administrerende direktør for ThirdAI Corp, en virksomhed, der demokratiserer AI til råvarehardware gennem softwareinnovationer. Hans brede forskningsinteresser omfatter probabilistiske algoritmer til ressourcebesparende dyb læring. I 2018 udnævnte Science News ham til en af ​​de 10 bedste videnskabsmænd under 40 at se. Han er modtager af 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 vundet adskillige papirpriser, herunder Best Paper Awards ved NIPS 2014 og MLSys 2022, samt Most Reproducible Paper Award ved SIGMOD 2019. Hans arbejde med effektive maskinlæringsteknologier på CPU'er er blevet dækket af populærpresse, herunder Wall Street Journal, New York Times, TechCrunch, NDTV osv.

Tidsstempel:

Mere fra AWS maskinindlæring