Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Servizi Web di Amazon

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Servizi Web di Amazon

I modelli linguistici di grandi dimensioni (LLM) hanno catturato l'immaginazione e l'attenzione di sviluppatori, scienziati, tecnici, imprenditori e dirigenti di diversi settori. Questi modelli possono essere utilizzati per rispondere a domande, riepilogare, tradurre e altro in applicazioni quali agenti conversazionali per l'assistenza clienti, creazione di contenuti per il marketing e assistenti di codifica.

Recentemente, Meta ha rilasciato lama 2 sia per ricercatori che per enti commerciali, aggiungendosi all'elenco di altri LLM, incluso MosaicML MPT ed falco. In questo post, spiegheremo come ottimizzare Llama 2 AWSTrainium, un acceleratore appositamente costruito per la formazione LLM, per ridurre tempi e costi della formazione. Esaminiamo gli script di ottimizzazione forniti da Neurone AWS SDK (utilizzando NeMo Megatron-LM), le varie configurazioni che abbiamo utilizzato e i risultati di throughput che abbiamo visto.

Informazioni sul modello Llama 2

Simile al precedente lama 1 modello e altri modelli come GPT, Llama 2 utilizza l'architettura esclusivamente decoder del Transformer. È disponibile in tre dimensioni: 7 miliardi, 13 miliardi e 70 miliardi di parametri. Rispetto a Llama 1, Llama 2 raddoppia la lunghezza del contesto da 2,000 a 4,000 e utilizza l'attenzione alle query raggruppate (solo per 70B). I modelli pre-addestrati di Llama 2 sono addestrati su 2 trilioni di token e i suoi modelli perfezionati sono stati addestrati su oltre 1 milione di annotazioni umane.

Addestramento distribuito di Llama 2

Per ospitare Llama 2 con una lunghezza di sequenza di 2,000 e 4,000, abbiamo implementato lo script utilizzando NeMo Megatron per Trainium che supporta il parallelismo dei dati (DP), il parallelismo del tensore (TP) e il parallelismo della pipeline (PP). Nello specifico, con la nuova implementazione di alcune funzionalità come l'incorporamento di parole sciolte, l'incorporamento rotativo, RMSNorm e l'attivazione di Swiglu, utilizziamo lo script generico di Neurone GPT Megatron-LM per supportare lo script di formazione di Llama 2.

La nostra procedura di formazione di alto livello è la seguente: per il nostro ambiente di formazione utilizziamo un cluster multiistanza gestito dal sistema SLURM per la formazione distribuita e la pianificazione nell'ambito del framework NeMo.

Innanzitutto, scarica il modello Llama 2 e i set di dati di addestramento e preelaborali utilizzando il tokenizzatore Llama 2. Ad esempio, per utilizzare il set di dati RedPajama, utilizzare il comando seguente:

wget https://data.together.xyz/redpajama-data-1T/v1.0.0/book/book.jsonl python nemo/scripts/nlp_language_modeling/preprocess_data_for_megatron.py

Per una guida dettagliata sul download dei modelli e sull'argomento dello script di preelaborazione, fare riferimento a Scarica il set di dati e il tokenizzatore LlamaV2.

Successivamente, compila il modello:

sbatch --nodes 4 compile.slurm ./llama_7b.sh

Dopo aver compilato il modello, avvia il processo di formazione con il seguente script che è già ottimizzato con la migliore configurazione e iperparametri per Llama 2 (incluso nel codice di esempio):

sbatch --nodes 4 run.slurm ./llama_7b.sh

Infine, monitoriamo TensorBoard per tenere traccia dei progressi della formazione:

tensorboard --logdir ./

Per il codice di esempio completo e gli script di cui abbiamo parlato, fare riferimento a Llama 7B lezione ed Codice NeMo nell'SDK Neuron per seguire passaggi più dettagliati.

Esperimenti di messa a punto

Abbiamo messo a punto il modello 7B sui set di dati OSCAR (Open Super-large Crawled ALManaCH coRpus) e QNLI (Question-answering NLI) in un ambiente Neuron 2.12 (PyTorch). Per ogni lunghezza di sequenza di 2,000 e 4,000, abbiamo ottimizzato alcune configurazioni, come ad esempio batchsize ed gradient_accumulation, per l'efficienza della formazione. Come strategia di perfezionamento, abbiamo adottato la messa a punto completa di tutti i parametri (circa 500 passaggi), che può essere estesa al pre-allenamento con passaggi più lunghi e set di dati più grandi (ad esempio, 1T RedPajama). È inoltre possibile abilitare il parallelismo delle sequenze per consentire a NeMo Megatron di mettere a punto con successo modelli con una lunghezza di sequenza maggiore di 4,000. La tabella seguente mostra la configurazione e i risultati del throughput dell'esperimento di messa a punto di Llama 7B. Il throughput scala in modo quasi lineare man mano che il numero di istanze aumenta fino a 4.

Biblioteca distribuita Dataset Lunghezza della sequenza Numero di istanze Tensore parallelo Dati paralleli Parallelo alla pipeline Dimensione globale del batch Produttività (seq/s)
Neurone NeMo Megatron OSCAR 4096 1 8 4 1 256 3.7
. . 4096 2 8 4 1 256 7.4
. . 4096 4 8 4 1 256 14.6
. QNLI 4096 4 8 4 1 256 14.1

L'ultimo passaggio consiste nel verificare la precisione con il modello base. Abbiamo implementato uno script di riferimento per gli esperimenti GPU e confermato che le curve di training per GPU e Trainium corrispondevano come mostrato nella figura seguente. La figura illustra le curve di perdita rispetto al numero di passaggi di addestramento sul set di dati QNLI. È stata adottata la precisione mista per GPU (blu) e bf16 con arrotondamento stocastico predefinito per Trainium (arancione).

Curva di allenamento

Conclusione

In questo post, abbiamo dimostrato che Trainium offre prestazioni elevate e una messa a punto economicamente vantaggiosa di Llama 2. Per ulteriori risorse sull'utilizzo di Trainium per il pre-addestramento distribuito e la messa a punto dei modelli di intelligenza artificiale generativa utilizzando NeMo Megatron, fare riferimento a Riferimento AWS Neuron per NeMo Megatron.


Informazioni sugli autori

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.HaoZhou è un ricercatore presso Amazon SageMaker. In precedenza, ha lavorato allo sviluppo di metodi di machine learning per il rilevamento delle frodi per Amazon Fraud Detector. La sua passione è l'applicazione di tecniche di machine learning, ottimizzazione e intelligenza artificiale generativa a vari problemi del mondo reale. Ha conseguito un dottorato in ingegneria elettrica presso la Northwestern University.

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Karthick Gopalswamy è uno scienziato applicato presso AWS. Prima di AWS, ha lavorato come scienziato in Uber e Walmart Labs concentrandosi principalmente sull'ottimizzazione dei numeri interi misti. In Uber si è concentrato sull'ottimizzazione della rete di trasporto pubblico con prodotti SaaS on-demand e corse condivise. Presso Walmart Labs, ha lavorato sull'ottimizzazione dei prezzi e dell'imballaggio. Karthick ha un dottorato di ricerca in ingegneria industriale e dei sistemi con una specializzazione in ricerca operativa presso la North Carolina State University. La sua ricerca si concentra su modelli e metodologie che combinano ricerca operativa e machine learning.

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Xin Huan è Senior Applied Scientist per gli algoritmi integrati di Amazon SageMaker JumpStart e Amazon SageMaker. Si concentra sullo sviluppo di algoritmi di apprendimento automatico scalabili. I suoi interessi di ricerca riguardano l'elaborazione del linguaggio naturale, il deep learning spiegabile su dati tabulari e l'analisi solida del clustering spazio-temporale non parametrico. Ha pubblicato molti articoli nelle conferenze ACL, ICDM, KDD e Royal Statistical Society: Series A.

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Parco Youngsuk è uno scienziato applicato senior presso AWS Annapurna Labs, che lavora allo sviluppo e alla formazione di modelli di base sugli acceleratori di intelligenza artificiale. In precedenza, il Dr. Park ha lavorato alla ricerca e sviluppo per Amazon Forecast negli AWS AI Labs come scienziato capo. La sua ricerca riguarda l'interazione tra apprendimento automatico, modelli fondamentali, ottimizzazione e apprendimento per rinforzo. Ha pubblicato oltre 20 articoli sottoposti a peer review nelle principali sedi, tra cui ICLR, ICML, AISTATS e KDD, con il servizio di organizzazione di workshop e presentazione di tutorial nell'area delle serie temporali e della formazione LLM. Prima di entrare in AWS, ha conseguito un dottorato di ricerca in ingegneria elettrica presso la Stanford University.

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Yida Wang è uno scienziato principale nel team AWS AI di Amazon. Il suo interesse di ricerca riguarda i sistemi, il calcolo ad alte prestazioni e l'analisi dei big data. Attualmente lavora su sistemi di deep learning, con particolare attenzione alla compilazione e all'ottimizzazione di modelli di deep learning per formazione e inferenza efficienti, in particolare modelli di fondazione su larga scala. La missione è quella di collegare i modelli di alto livello da vari framework e piattaforme hardware di basso livello tra cui CPU, GPU e acceleratori IA, in modo che diversi modelli possano funzionare con prestazioni elevate su dispositivi diversi.

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Jun (Luca) Huan è uno scienziato principale presso AWS AI Labs. Il dottor Huan lavora su intelligenza artificiale e scienza dei dati. Ha pubblicato più di 160 articoli sottoposti a peer review in importanti conferenze e riviste e ha laureato 11 dottorandi. Ha ricevuto il premio NSF Faculty Early Career Development Award nel 2009. Prima di unirsi ad AWS, ha lavorato presso Baidu Research come illustre scienziato e capo del Baidu Big Data Laboratory. Ha fondato StylingAI Inc., una start-up basata sull'intelligenza artificiale, e ha lavorato come CEO e Chief Scientist nel 2019-2021. Prima di entrare nel settore, è stato professore Charles E. e Mary Jane Spahr presso il dipartimento EECS dell'Università del Kansas. Dal 2015 al 2018 ha lavorato come direttore del programma presso la NSF statunitense, responsabile del suo programma Big Data.

Personalizzazione di LLaMA 2 rapida ed economica con AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Shruti Koparkar è Senior Product Marketing Manager presso AWS. Aiuta i clienti a esplorare, valutare e adottare l'infrastruttura di elaborazione accelerata Amazon EC2 per le loro esigenze di machine learning.

Timestamp:

Di più da Apprendimento automatico di AWS