Accelerazione dell'addestramento della rete neurale su larga scala sulle CPU con ThirdAI e AWS Graviton | Servizi Web di Amazon

Accelerazione dell'addestramento della rete neurale su larga scala sulle CPU con ThirdAI e AWS Graviton | Servizi Web di Amazon

Questo post ospite è scritto da Vihan Lakshman, Tharun Medini e Anshumali Shrivastava di ThirdAI.

Il deep learning su larga scala ha recentemente prodotto progressi rivoluzionari in una vasta gamma di campi. Sebbene questo straordinario progresso nell’intelligenza artificiale rimanga notevole, i costi finanziari e il consumo energetico necessari per addestrare questi modelli sono emersi come un collo di bottiglia critico a causa della necessità di hardware specializzato come le GPU. Tradizionalmente, anche i modelli neurali di dimensioni modeste hanno richiesto costosi acceleratori hardware per la formazione, il che limita il numero di organizzazioni con i mezzi finanziari per sfruttare appieno questa tecnologia.

Fondata nel 2021, ThirdAI Corp. è una startup dedicata alla missione di democratizzare le tecnologie di intelligenza artificiale attraverso innovazioni algoritmiche e software che cambiano radicalmente l'economia del deep learning. Abbiamo sviluppato un motore di deep learning sparso, noto come BOLT, progettato specificamente per l'addestramento e la distribuzione di modelli su hardware CPU standard anziché su acceleratori costosi e ad alto consumo energetico come le GPU. Molti dei nostri clienti lo hanno fatto hanno dichiarato forte soddisfazione con la capacità di ThirdAI di addestrare e implementare modelli di deep learning per problemi aziendali critici su un'infrastruttura CPU economicamente vantaggiosa.

In questo post, esaminiamo il potenziale del processore AWS Graviton3 per accelerare l'addestramento della rete neurale per l'esclusivo motore di deep learning basato su CPU di ThirdAI.

I vantaggi delle CPU ad alte prestazioni

In ThirdAI, otteniamo questi progressi nell'addestramento efficiente della rete neurale sulle CPU attraverso algoritmi sparsi dinamici proprietari che attivano solo un sottoinsieme di neuroni per un dato input (vedere la figura seguente), evitando così la necessità di calcoli completi. A differenza di altri approcci alla formazione di reti neurali sparse, ThirdAI utilizza hashing sensibile alla località per selezionare dinamicamente i neuroni per un dato input come mostrato nelle linee in grassetto sottostanti. In certi casi, abbiamo addirittura osservato che il ns modelli sparsi basati su CPU addestrarsi più velocemente rispetto all'architettura densa comparabile sulle GPU.

Architettura neurale densa con linee in grassetto che mostrano quali neuroni sono selezionati

Dato che molti dei nostri clienti target operano nel cloud e, tra questi, la maggior parte utilizza AWS, eravamo entusiasti di provare il processore AWS Graviton3 per vedere se gli impressionanti miglioramenti in termini di rapporto prezzo-prestazioni dell'innovazione del silicio di Amazon si sarebbero tradotti nel nostro carico di lavoro unico. di formazione sparsa della rete neurale e quindi fornire ulteriori risparmi ai clienti. Sebbene sia la comunità di ricerca che il team AWS Graviton abbiano apportato progressi entusiasmanti nell'accelerazione inferenza della rete neurale sulle istanze CPU, noi di ThirdAI siamo, a nostra conoscenza, i primi a studiare seriamente come addestrare in modo efficiente i modelli neurali sulle CPU.

Come mostrato nei nostri risultati, abbiamo osservato un significativo aumento della velocità di addestramento con AWS Graviton3 rispetto alle istanze Intel e NVIDIA comparabili su diversi carichi di lavoro di modellazione rappresentativi.

Tipi di istanza

Per la nostra valutazione, abbiamo considerato due istanze CPU AWS comparabili: una macchina c6i.8xlarge alimentata dal processore Ice Lake di Intel e una c7g.8xlarge alimentata da AWS Graviton3. La tabella seguente riassume i dettagli di ciascuna istanza.

Instance CPU virtuale RAM (GB) Processore Prezzo su richiesta (us-east-1)
c7g.8xgrande 32 64 AWS Gravitone3 $ 1.1562 / hr
c6i.8xgrande 32 64 Lago di ghiaccio Intel $ 1.36 / hr
g5g.8xlarge (GPU) 32 64 con memoria GPU da 16 GB Processori AWS Graviton2 con 1 GPU NVIDIA T4G $ 1.3720 / hr

Valutazione 1: classificazione estrema

Per la nostra prima valutazione, ci concentriamo sul problema della classificazione multi-etichetta estrema (XMC), un paradigma di machine learning (ML) sempre più popolare con una serie di applicazioni pratiche nella ricerca e nelle raccomandazioni (anche a livello di Amazon). Per la nostra valutazione ci concentriamo sul pubblico Attività di raccomandazione del prodotto Amazon-670K, che, dato un prodotto in input, identifica prodotti simili da una raccolta di oltre 670,000 articoli.

In questo esperimento, confrontiamo il motore BOLT di ThirdAI con TensorFlow 2.11 e PyTorch 2.0 sulle scelte hardware sopra menzionate: Intel Ice Lake, AWS Graviton3 e una GPU NVIDIA T4G. Per i nostri esperimenti su Intel e AWS Graviton, utilizziamo AWS Deep Learning AMI (Ubuntu 18.04) versione 59.0. Per la nostra valutazione della GPU, utilizziamo il file AMI Arm64 ottimizzata per GPU NVIDIA, disponibile tramite AWS Marketplace. Per questa valutazione utilizziamo il file Architettura del modello SLIDE, che raggiunge sia prestazioni competitive in questo compito di classificazione estremo che ottime prestazioni di allenamento sulle CPU. Per i nostri confronti TensorFlow e PyTorch, implementiamo la versione analoga dell'architettura SLIDE multi-layer perceptron (MLP) con moltiplicazioni di matrici dense. Addestriamo ciascun modello per cinque epoche (passaggi completi attraverso il set di dati di addestramento) con una dimensione batch fissa di 256 e un tasso di apprendimento di 0.001. Abbiamo osservato che tutti i modelli hanno raggiunto la stessa precisione del test del 33.6%.

Il grafico seguente confronta il tempo di addestramento di BOLT di ThirdAI con TensorFlow 2.11 e PyTorch 2.0 sul benchmark di classificazione estrema Amazon670k. Tutti i modelli raggiungono la stessa precisione di prova. Osserviamo che AWS Graviton3 accelera considerevolmente le prestazioni di BOLT immediatamente senza bisogno di personalizzazioni, di circa il 40%. BOLT di ThirdAI su AWS Graviton3 raggiunge anche un addestramento notevolmente più veloce rispetto ai modelli TensorFlow o PyTorch addestrati sulla GPU. Tieni presente che non esiste alcun risultato ThirdAI sul benchmark della GPU NVIDIA perché BOLT è progettato per essere eseguito su CPU. Non includiamo i benchmark CPU TensorFlow e PyTorch a causa del tempo di addestramento proibitivo.

Amazon 670k Tempo di addestramento Grafico a barre che confronta le istanze c6i.8xlarge e c7g.8xlarge

La tabella seguente riassume il tempo di addestramento e la precisione del test per ciascun processore/processore specializzato (GPU).

Processore motore Tempo di allenamento (s) Precisione del test
Intel Ice Lake (c6i.8xlarge) BOLT 1470 33.6
AWS Gravitone3 (c7g.8xlarge) BOLT 935 33.6
NVIDIA T4G (g5g.8xgrande) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xgrande) PyTorch 5130 33.6

Valutazione 2: analisi del sentiment di Yelp Polarity

Per la nostra seconda valutazione, ci concentriamo sul popolare Yelp Polarità benchmark di analisi del sentiment, che prevede la classificazione di una recensione come positiva o negativa. Per questa valutazione, confrontiamo ThirdAI Trasformatori profondi universali (UDT) modello contro un perfezionato DistillBERT network, un modello linguistico compresso pre-addestrato che raggiunge prestazioni quasi all'avanguardia con una latenza di inferenza ridotta. Poiché la messa a punto dei modelli DistilBERT su una CPU richiederebbe un tempo proibitivo (almeno diversi giorni), confrontiamo i modelli basati su CPU di ThirdAI con DistilBERT messo a punto su una GPU. Addestriamo tutti i modelli con una dimensione batch di 256 per un singolo passaggio attraverso i dati (un'epoca). Notiamo che possiamo ottenere una precisione leggermente maggiore con BOLT con passaggi aggiuntivi attraverso i dati, ma ci limitiamo a un singolo passaggio in questa valutazione per coerenza.

Come mostrato nella figura seguente, AWS Graviton3 accelera nuovamente considerevolmente l'addestramento del modello UDT di ThirdAI. Inoltre, UDT è in grado di ottenere una precisione di test paragonabile a DistilBERT con una frazione del tempo di addestramento e senza la necessità di una GPU. Notiamo che ci sono stati anche lavori recenti in ottimizzando la messa a punto di Yelp Polarity sulle CPU. I nostri modelli, tuttavia, ottengono comunque maggiori guadagni di efficienza ed evitano i costi di pre-addestramento, che sono sostanziali e richiedono l'uso di acceleratori hardware come le GPU.

Tempo di allenamento su Yelp Polarity C7g vs c6i

La tabella seguente riepiloga il tempo di addestramento, l'accuratezza del test e la latenza di inferenza.

Processore motore Modello Tempo di allenamento (s) Precisione del test Latenza di inferenza (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 47 93.2 <1
Gravitone3 (c7g.8xlarge) BOLT UDT 29 92.9 <1
GPU T4G (g5g.8xlarge) TensorFlow DistillBERT 4200 93.3 8.7
GPU T4G (g5g.8xlarge) PyTorch DistillBERT 3780 93.4 8.3

Valutazione 3: classificazione del testo multiclasse (DBPedia)

Per la nostra valutazione finale, ci concentreremo sul problema della classificazione del testo multiclasse, che implica l'assegnazione di un'etichetta a un dato testo di input da un insieme di più di due classi di output. Ci concentriamo su DBPedia benchmark, che consiste di 14 possibili classi di output. Ancora una volta, vediamo che AWS Graviton3 accelera le prestazioni UDT rispetto all'istanza Intel comparabile di circa il 40%. Vediamo anche che BOLT raggiunge risultati paragonabili al modello basato su trasformatore DistilBERT messo a punto su una GPU ottenendo una latenza inferiore al millisecondo.

Terzo tempo di allenamento AI BOLT su c7g vs c6i

La tabella seguente riepiloga il tempo di addestramento, l'accuratezza del test e la latenza di inferenza.

Processore motore Modello Tempo di allenamento (s) Precisione del test Latenza di inferenza (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 23 98.23 <1
Gravitone3 (c7g.8xlarge) BOLT UDT 14 98.10 <1
GPU T4G (g5g.8xlarge) TensorFlow DistillBERT 4320 99.23 8.6
GPU T4G (g5g.8xlarge) PyTorch DistillBERT 3480 99.29 8

Inizia con ThirdAI su AWS Graviton

Abbiamo progettato il nostro software BOLT per la compatibilità con tutte le principali architetture CPU, incluso AWS Graviton3. In effetti, non abbiamo dovuto apportare alcuna personalizzazione al nostro codice per eseguirlo su AWS Graviton3. Pertanto, puoi utilizzare ThirdAI per l'addestramento e la distribuzione dei modelli su AWS Graviton3 senza ulteriori sforzi. Inoltre, come dettagliato nel nostro recente Libro bianco di ricerca, abbiamo sviluppato una serie di nuove tecniche matematiche per ottimizzare automaticamente gli iperparametri specializzati associati ai nostri modelli sparsi, consentendo ai nostri modelli di funzionare bene immediatamente, fuori dagli schemi.

Notiamo inoltre che i nostri modelli funzionano bene principalmente per attività di ricerca, raccomandazione ed elaborazione del linguaggio naturale che in genere presentano spazi di output ampi e ad alta dimensione e un requisito di latenza di inferenza estremamente bassa. Stiamo lavorando attivamente per estendere i nostri metodi ad altri domini, come la visione artificiale, ma tieni presente che i nostri miglioramenti in termini di efficienza al momento non si traducono in tutti i domini ML.

Conclusione

In questo post, abbiamo studiato il potenziale del processore AWS Graviton3 per accelerare l'addestramento della rete neurale per l'esclusivo motore di deep learning basato su CPU di ThirdAI. I nostri benchmark sulla ricerca, sulla classificazione del testo e sui suggerimenti suggeriscono che AWS Graviton3 può accelerare i carichi di lavoro di addestramento dei modelli di ThirdAI del 30-40% rispetto alle istanze x86 comparabili con un miglioramento del rapporto prezzo-prestazioni di quasi il 50%. Inoltre, poiché le istanze AWS Graviton3 sono disponibili a un costo inferiore rispetto alle macchine Intel e NVIDIA analoghe e consentono tempi di formazione e inferenza più brevi, puoi sbloccare ulteriormente il valore del modello di utilizzo AWS con pagamento in base al consumo utilizzando soluzioni a costo inferiore macchine per periodi di tempo più brevi.

Siamo molto entusiasti del risparmio in termini di prezzo e prestazioni di AWS Graviton3 e cercheremo di trasmettere questi miglioramenti ai nostri clienti in modo che possano usufruire di formazione e inferenza ML più veloci con prestazioni migliorate su CPU a basso costo. Essendo noi stessi clienti di AWS, siamo lieti della velocità con cui AWS Graviton3 ci consente di sperimentare i nostri modelli e non vediamo l'ora di utilizzare in futuro innovazioni di silicio più all'avanguardia da parte di AWS. Guida tecnica al gravitone è una buona risorsa da considerare durante la valutazione dei carichi di lavoro ML da eseguire su Graviton. Puoi anche provare le istanze Graviton t4g prova gratuita.

Il contenuto e le opinioni di questo post sono quelli dell'autore di terze parti e AWS non è responsabile del contenuto o dell'accuratezza di questo post. Al momento della stesura del blog l'istanza più recente era c6i e quindi il confronto è stato effettuato con le istanze c6i.


L'autore

Vihan Lakshman – Vihan Lakshman è un ricercatore presso ThirdAI Corp. focalizzato sullo sviluppo di sistemi per l’apprendimento profondo efficiente in termini di risorse. Prima di ThirdAI, ha lavorato come scienziato applicato presso Amazon e ha conseguito la laurea e il master presso la Stanford University. Vihan ha anche ricevuto una borsa di ricerca dalla National Science Foundation.

Tharun Medini – Tharun Medini è co-fondatore e CTO di ThirdAI Corp. Ha conseguito il dottorato di ricerca in "Algoritmi di Hashing per ricerca e recupero di informazioni" presso la Rice University. Prima di ThirdAI, Tharun ha lavorato presso Amazon e Target. Tharun ha ricevuto numerosi premi per la sua ricerca, tra cui la borsa di studio BP del Ken Kennedy Institute, la borsa di studio dell'American Society of Indian Engineers e una borsa di studio per laureati della Rice University.

Anshumali Shrivastava – Anshumali Shrivastava è professore associato presso il dipartimento di informatica della Rice University. È anche fondatore e CEO di ThirdAI Corp, una società che sta democratizzando l'intelligenza artificiale in hardware di base attraverso innovazioni software. I suoi ampi interessi di ricerca includono algoritmi probabilistici per il deep learning frugale in termini di risorse. Nel 2018, Science News lo ha nominato uno dei 10 migliori scienziati sotto i 40 anni da tenere d'occhio. Ha ricevuto il CAREER Award della National Science Foundation, un Young Investigator Award dall'Air Force Office of Scientific Research, un premio per la ricerca sull'apprendimento automatico di Amazon e un Data Science Research Award di Adobe. Ha vinto numerosi premi cartacei, tra cui Best Paper Awards al NIPS 2014 e MLSys 2022, nonché il Most Reproducible Paper Award al SIGMOD 2019. Il suo lavoro sulle tecnologie efficienti di apprendimento automatico sulle CPU è stato seguito dalla stampa popolare tra cui Wall Street Journal, New York Times, TechCrunch, NDTV, ecc.

Timestamp:

Di più da Apprendimento automatico di AWS