Riduci il consumo energetico dei tuoi carichi di lavoro di machine learning fino al 90% con gli acceleratori appositamente progettati di AWS.

Riduci il consumo energetico del machine learning del 90% con gli acceleratori di AWS.

Gli ingegneri di Machine Learning (ML) si sono tradizionalmente concentrati nell’equilibrare il costo di formazione e di implementazione del modello rispetto alle prestazioni. Sempre più spesso, la sostenibilità (efficienza energetica) sta diventando un obiettivo aggiuntivo per i clienti. Questo è importante perché la formazione dei modelli di ML e l’utilizzo dei modelli formati per effettuare previsioni (inferenza) possono essere attività altamente intensive dal punto di vista energetico. Inoltre, sempre più applicazioni intorno a noi sono state integrate con ML e nuove applicazioni alimentate da ML vengono concepite ogni giorno. Un esempio popolare è il ChatGPT di OpenAI, che è alimentato da un grande modello di linguaggio all’avanguardia (LMM). Per riferimento, GPT-3, un LLM di generazione precedente, ha 175 miliardi di parametri e richiede mesi di formazione continua su un cluster di migliaia di processori accelerati. Lo studio di Carbontracker stima che la formazione di GPT-3 da zero potrebbe emettere fino a 85 tonnellate metriche di CO2 equivalente, utilizzando cluster di acceleratori hardware specializzati.

Ci sono diverse modalità con cui AWS consente ai professionisti di ML di ridurre l’impatto ambientale dei propri carichi di lavoro. Una modalità è quella di fornire indicazioni prescrittive sulle architetture per i carichi di lavoro AI/ML per la sostenibilità. Un’altra modalità è quella di offrire servizi di formazione e orchestrazione di ML gestiti, come Amazon SageMaker Studio, che smantella in automatico e scala le risorse di ML quando non in uso e fornisce una serie di strumenti integrati che risparmiano costi e risorse. Un altro grande facilitatore è lo sviluppo di acceleratori efficienti dal punto di vista energetico, ad alte prestazioni e progettati appositamente per la formazione e l’implementazione di modelli di ML.

Il focus di questo post è sull’hardware come leva per l’ML sostenibile. Presentiamo i risultati di recenti esperimenti di prestazioni e consumo energetico condotti da AWS che quantificano i vantaggi di efficienza energetica che ci si può aspettare quando si migrano i propri carichi di lavoro di deep learning da altre istanze di Amazon Elastic Compute Cloud (Amazon EC2) ottimizzate per la formazione e l’implementazione a AWS Inferentia e AWS Trainium. Inferentia e Trainium sono le recenti aggiunte di AWS al proprio portafoglio di acceleratori progettati appositamente da Annapurna Labs di Amazon per i carichi di lavoro di formazione e implementazione di ML.

AWS Inferentia e AWS Trainium per l’ML sostenibile

Per fornire numeri realistici sul potenziale di risparmio energetico di AWS Inferentia e AWS Trainium in un’applicazione del mondo reale, abbiamo condotto diversi esperimenti di benchmark sul consumo energetico. Abbiamo progettato questi benchmark tenendo presenti i seguenti criteri chiave:

  • In primo luogo, volevamo assicurarci di catturare il consumo energetico diretto attribuibile al carico di lavoro di test, includendo non solo l’acceleratore di ML ma anche il calcolo, la memoria e la rete. Pertanto, nella nostra configurazione di test, abbiamo misurato il consumo energetico a quel livello.
  • In secondo luogo, durante l’esecuzione dei carichi di lavoro di formazione e implementazione, ci siamo assicurati che tutte le istanze funzionassero ai rispettivi limiti fisici dell’hardware e abbiamo effettuato le misurazioni solo dopo che tale limite è stato raggiunto per garantire la comparabilità.
  • Infine, volevamo essere certi che i risparmi energetici riportati in questo post potessero essere raggiunti in un’applicazione pratica del mondo reale. Pertanto, abbiamo utilizzato casi d’uso di ML ispirati ai clienti comuni per il benchmark e il test.

I risultati sono riportati nelle sezioni seguenti.

Esperimento d’inferenza: Comprensione dei documenti in tempo reale con LayoutLM

L’inferenza, a differenza della formazione, è un carico di lavoro continuo e illimitato che non ha un punto di completamento definito. Pertanto, costituisce una grande parte del consumo di risorse durante l’intero ciclo di vita dell’ML. Ottenere l’inferenza corretta è fondamentale per ottenere elevate prestazioni, basso costo e sostenibilità (migliore efficienza energetica) lungo l’intero ciclo di vita dell’ML. Con i compiti di inferenza, i clienti sono di solito interessati a raggiungere una certa velocità di inferenza per stare al passo con la domanda di ingestione.

L’esperimento presentato in questo post è ispirato a un caso d’uso di comprensione dei documenti in tempo reale, che è un’applicazione comune in settori come la banca o l’assicurazione (ad esempio, per la gestione delle richieste o dei moduli di applicazione). In particolare, selezioniamo LayoutLM, un modello di trasformatore pre-addestrato utilizzato per l’elaborazione delle immagini dei documenti e l’estrazione delle informazioni. Abbiamo fissato un obiettivo SLA di 1.000.000 di inferenze all’ora, un valore spesso considerato come tempo reale, e abbiamo specificato due configurazioni hardware in grado di soddisfare questo requisito: una utilizzando le istanze Amazon EC2 Inf1, con AWS Inferentia, e una utilizzando istanze EC2 accelerate comparabili ottimizzate per i compiti di inferenza. Durante l’esperimento, monitoriamo diversi indicatori per misurare le prestazioni di inferenza, il costo e l’efficienza energetica di entrambe le configurazioni hardware. I risultati sono presentati nella figura seguente.

Risultati di efficienza delle prestazioni, del costo e dell’energia dei benchmark di inferenza

AWS Inferentia offre un throughput di inferenza 6,3 volte superiore. Di conseguenza, con Inferentia, è possibile eseguire lo stesso carico di lavoro di comprensione dei documenti in tempo reale basato su LayoutLM su meno istanze (6 istanze AWS Inferentia rispetto a 33 altre istanze EC2 accelerate ottimizzate per l’inferenza, equivalente a una riduzione dell’82%), utilizzando meno di un decimo (-92%) dell’energia nel processo, il tutto ottenendo un costo inferiore per inferenza (2 USD contro 25 USD per milione di inferenze, equivalente a una riduzione del costo del 91%).

Esperimento di formazione: Formazione di BERT Large da zero

La formazione, a differenza dell’inferenza, è un processo finito che viene ripetuto molto meno frequentemente. Gli ingegneri di ML sono tipicamente interessati alle alte prestazioni del cluster per ridurre il tempo di formazione mantenendo sotto controllo il costo. L’efficienza energetica è una preoccupazione secondaria (ma crescente). Con AWS Trainium, non esiste una decisione di compromesso: gli ingegneri di ML possono beneficiare di alte prestazioni di formazione ottimizzando anche per il costo e riducendo l’impatto ambientale.

Per illustrare questo, selezioniamo BERT Large, un modello linguistico popolare utilizzato per i casi d’uso di comprensione del linguaggio naturale come la risposta alle domande basata su chatbot e la previsione delle risposte conversazionali. La formazione di un modello BERT Large ben performante da zero richiede tipicamente che siano elaborati 450 milioni di sequenze. Confrontiamo due configurazioni di cluster, ciascuna con una dimensione fissa di 16 istanze e in grado di formare BERT Large da zero (450 milioni di sequenze elaborate) in meno di un giorno. Il primo utilizza istanze EC2 accelerate tradizionali. La seconda configurazione utilizza le istanze Amazon EC2 Trn1 con AWS Trainium. Ancora una volta, testiamo entrambe le configurazioni in termini di prestazioni di formazione, costo e impatto ambientale (efficienza energetica). I risultati sono mostrati nella figura seguente.

Risultati di efficienza delle prestazioni, del costo e dell’energia dei benchmark di formazione

Negli esperimenti, le istanze basate su AWS Trainium hanno superato le istanze EC2 accelerate ottimizzate per la formazione comparabili di un fattore di 1,7 in termini di sequenze elaborate all’ora, riducendo il tempo totale di formazione del 43% (2,3 ore rispetto a 4 ore su istanze EC2 accelerate comparabili). Di conseguenza, utilizzando un cluster di istanze basate su Trainium, il consumo energetico totale per la formazione di BERT Large da zero è approssimativamente inferiore del 29% rispetto a un cluster della stessa dimensione di istanze EC2 accelerate comparabili. Anche in questo caso, questi benefici di prestazioni ed efficienza energetica vengono con significativi miglioramenti di costo: il costo per la formazione del carico di lavoro di ML di BERT è approssimativamente inferiore del 62% sulle istanze Trainium (787 USD contro 2091 USD per una formazione completa).

Iniziare con gli acceleratori costruiti appositamente per ML di AWS

Anche se gli esperimenti condotti qui utilizzano tutti modelli standard dal dominio dell’elaborazione del linguaggio naturale (NLP), AWS Inferentia e AWS Trainium eccellono con molte altre strutture di modello complesse, incluso LLMs e le più impegnative architetture AI generative che gli utenti stanno costruendo (come GPT-3). Questi acceleratori si comportano particolarmente bene con i modelli con oltre 10 miliardi di parametri, o i modelli di visione artificiale come Stable Diffusion (vedere le Linee guida di adattamento dell’architettura del modello per ulteriori dettagli). Infatti, molti dei nostri clienti stanno già utilizzando Inferentia e Trainium per una vasta gamma di casi d’uso di ML.

Per eseguire i carichi di lavoro di apprendimento profondo end-to-end su istanze basate su AWS Inferentia e AWS Trainium, è possibile utilizzare AWS Neuron. Neuron è un kit di sviluppo software end-to-end (SDK) che include un compilatore di apprendimento profondo, un runtime e strumenti integrati nativamente nei framework di ML più popolari come TensorFlow e PyTorch. È possibile utilizzare il kit SDK Neuron per portare facilmente i carichi di lavoro di ML di apprendimento profondo esistenti di TensorFlow o PyTorch su Inferentia e Trainium e iniziare a creare nuovi modelli utilizzando gli stessi framework di ML ben noti. Per una configurazione più semplice, utilizzare una delle nostre immagini di macchine Amazon (AMI) per l’apprendimento profondo, che includono molti dei pacchetti e delle dipendenze richiesti. Ancora più semplice: è possibile utilizzare Amazon SageMaker Studio, che supporta nativamente TensorFlow e PyTorch su Inferentia e Trainium (vedere il repository aws-samples GitHub per un esempio).

Una nota finale: sebbene Inferentia e Trainium siano costruiti appositamente per i carichi di lavoro di apprendimento profondo, molti algoritmi di ML meno complessi possono funzionare bene su istanze basate su CPU (ad esempio XGBoost e LightGBM e persino alcuni CNN). In questi casi, una migrazione su AWS Graviton3 può ridurre significativamente l’impatto ambientale dei carichi di lavoro di ML. Le istanze basate su AWS Graviton utilizzano fino al 60% in meno di energia per le stesse prestazioni rispetto alle istanze EC2 accelerate comparabili.

Conclusione

C’è una comune idea sbagliata che eseguire carichi di lavoro di Machine Learning in modo sostenibile ed efficiente dal punto di vista energetico significhi sacrificare prestazioni o costi. Con gli acceleratori appositamente progettati AWS per il machine learning, gli ingegneri di ML non devono fare questo compromesso. Invece, possono eseguire i propri carichi di lavoro di deep learning su hardware di deep learning altamente specializzato e appositamente progettato, come AWS Inferentia e AWS Trainium, che supera significativamente i tipi di istanze EC2 accelerate comparabili, offrendo costi inferiori, prestazioni maggiori e una migliore efficienza energetica – fino al 90% – contemporaneamente. Per iniziare a eseguire i propri carichi di lavoro di ML su Inferentia e Trainium, consultare la documentazione AWS Neuron o avviare uno dei notebook di esempio. È anche possibile guardare il talk di AWS re:Invent 2022 sulla sostenibilità e AWS silicon (SUS206), che copre molti degli argomenti discussi in questo post.