Hurtig og omkostningseffektiv LLaMA 2 finjustering med AWS Trainium | Amazon Web Services

Hurtig og omkostningseffektiv LLaMA 2 finjustering med AWS Trainium | Amazon Web Services

Store sprogmodeller (LLM'er) har fanget fantasien og opmærksomheden hos udviklere, videnskabsmænd, teknologer, iværksættere og ledere på tværs af flere brancher. Disse modeller kan bruges til besvarelse af spørgsmål, opsummering, oversættelse og mere i applikationer såsom samtaleagenter til kundesupport, indholdsoprettelse til marketing og kodningsassistenter.

For nylig udgav Meta Lama 2 for både forskere og kommercielle enheder, tilføjelse til listen over andre LLM'er, herunder MosaicML MPT , Falcon. I dette indlæg gennemgår vi, hvordan du finjusterer Llama 2 på AWS Trainium, en specialbygget accelerator til LLM-træning, for at reducere træningstider og omkostninger. Vi gennemgår de finjusterende scripts leveret af AWS Neuron SDK (ved hjælp af NeMo Megatron-LM), de forskellige konfigurationer, vi brugte, og de gennemløbsresultater, vi så.

Om Llama 2-modellen

Svarende til den forrige Lama 1 model og andre modeller som GPT, Llama 2 bruger transformatorens dekoder-only-arkitektur. Det kommer i tre størrelser: 7 milliarder, 13 milliarder og 70 milliarder parametre. Sammenlignet med Llama 1 fordobler Llama 2 kontekstlængden fra 2,000 til 4,000 og bruger opmærksomhed på grupperet forespørgsel (kun for 70B). Llama 2 fortrænede modeller er trænet på 2 billioner tokens, og dens finjusterede modeller er blevet trænet på over 1 million menneskelige annotationer.

Distribueret træning af Llama 2

For at imødekomme Llama 2 med 2,000 og 4,000 sekvenslængder implementerede vi scriptet vha. NeMo Megatron til Trainium, der understøtter dataparallelisme (DP), tensorparallelisme (TP) og pipelineparallelisme (PP). For at være specifik, med den nye implementering af nogle funktioner såsom untie word-indlejring, roterende indlejring, RMSNorm og Swiglu-aktivering, bruger vi det generiske script af GPT Neuron Megatron-LM for at understøtte Llama 2-træningsscriptet.

Vores træningsprocedure på højt niveau er som følger: til vores træningsmiljø bruger vi en multi-instans klynge, der administreres af SLURM-systemet til distribueret træning og planlægning under NeMo-rammen.

Først skal du downloade Llama 2-modellen og træningsdatasættene og forbehandle dem ved hjælp af Llama 2-tokenizeren. For at bruge RedPajama-datasættet skal du f.eks. bruge følgende kommando:

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

For detaljeret vejledning om download af modeller og argumentet for forbehandlingsscriptet henvises til Download LlamaV2-datasæt og tokenizer.

Dernæst kompiler du modellen:

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

Når modellen er kompileret, skal du starte træningsjobbet med følgende script, der allerede er optimeret med den bedste konfiguration og hyperparametre for Llama 2 (inkluderet i eksempelkoden):

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

Til sidst overvåger vi TensorBoard for at holde styr på træningsfremskridt:

tensorboard --logdir ./

For den komplette eksempelkode og scripts, vi nævnte, henvises til Llama 7B tutorial , NeMo kode i Neuron SDK for at gennemgå mere detaljerede trin.

Finjustering af eksperimenter

Vi finjusterede 7B-modellen på OSCAR (Open Super-large Crawled ALMAnaCH coRpus) og QNLI (Question-answering NLI) datasæt i et Neuron 2.12-miljø (PyTorch). For hver 2,000 og 4,000 sekvenslængde optimerede vi nogle konfigurationer, som f.eks. batchsize , gradient_accumulation, for træningseffektivitet. Som en finjusteringsstrategi indførte vi fuld finjustering af alle parametre (ca. 500 trin), som kan udvides til fortræning med længere trin og større datasæt (for eksempel 1T RedPajama). Sekvensparallelisme kan også aktiveres for at give NeMo Megatron mulighed for at finjustere modeller med en større sekvenslængde på 4,000. Følgende tabel viser konfigurations- og gennemløbsresultaterne af Llama 7B-finjusteringseksperimentet. Gennemløbet skaleres næsten lineært, når antallet af forekomster stiger op til 4.

Distribueret bibliotek datasæt Sekvenslængde Antal forekomster Tensor parallel Data parallel Rørledning Parellel Global batchstørrelse Gennemløb (sek./s)
Neuron 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

Det sidste trin er at verificere nøjagtigheden med basismodellen. Vi implementerede et referencescript til GPU-eksperimenter og bekræftede, at træningskurverne for GPU og Trainium matchede som vist i den følgende figur. Figuren illustrerer tabskurver over antallet af træningstrin på QNLI-datasættet. Blandet præcision blev vedtaget for GPU (blå) og bf16 med standard stokastisk afrunding for Trainium (orange).

Træningskurve

Konklusion

I dette indlæg viste vi, at Trainium leverer høj ydeevne og omkostningseffektiv finjustering af Llama 2. For flere ressourcer til at bruge Trainium til distribueret fortræning og finjustering af dine generative AI-modeller ved hjælp af NeMo Megatron, se AWS Neuron Reference for NeMo Megatron.


Om forfatterne

Fast and cost-effective LLaMA 2 fine-tuning with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Hao Zhou er forsker hos Amazon SageMaker. Før det arbejdede han med at udvikle maskinlæringsmetoder til svindeldetektion til Amazon Fraud Detector. Han brænder for at anvende maskinlæring, optimering og generative AI-teknikker på forskellige problemer i den virkelige verden. Han har en PhD i elektroteknik fra Northwestern University.

Fast and cost-effective LLaMA 2 fine-tuning with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Karthick Gopalswamy er en anvendt videnskabsmand med AWS. Før AWS arbejdede han som videnskabsmand i Uber og Walmart Labs med stort fokus på optimering af blandet heltal. Hos Uber fokuserede han på at optimere det offentlige transportnetværk med on-demand SaaS-produkter og delte ture. Hos Walmart Labs arbejdede han med prissætning og pakningsoptimeringer. Karthick har en ph.d. i industri- og systemteknik med en bifag i driftsforskning fra North Carolina State University. Hans forskning fokuserer på modeller og metoder, der kombinerer operationsforskning og maskinlæring.

Fast and cost-effective LLaMA 2 fine-tuning with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Xin Huang er en Senior Applied Scientist for Amazon SageMaker JumpStart og Amazon SageMaker indbyggede algoritmer. Han fokuserer på at udvikle skalerbare maskinlæringsalgoritmer. Hans forskningsinteresser er inden for området naturlig sprogbehandling, forklarlig dyb læring på tabeldata og robust analyse af ikke-parametrisk rum-tid-klynger. Han har udgivet mange artikler i ACL, ICDM, KDD-konferencer og Royal Statistical Society: Series A.

Fast and cost-effective LLaMA 2 fine-tuning with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Youngsuk Park er en Sr. Applied Scientist ved AWS Annapurna Labs, der arbejder på at udvikle og træne fundamentmodeller på AI-acceleratorer. Før det arbejdede Dr. Park på R&D for Amazon Forecast i AWS AI Labs som ledende videnskabsmand. Hans forskning ligger i samspillet mellem maskinlæring, grundlæggende modeller, optimering og forstærkningslæring. Han har udgivet over 20 peer-reviewede artikler på topsteder, herunder ICLR, ICML, AISTATS og KDD, med tjenesten til at organisere workshop og præsentere tutorials inden for tidsserier og LLM-træning. Før han kom til AWS, opnåede han en PhD i elektroteknik fra Stanford University.

Fast and cost-effective LLaMA 2 fine-tuning with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Yida Wang er en ledende videnskabsmand i AWS AI-teamet hos Amazon. Hans forskningsinteresse er i systemer, højtydende computing og big data-analyse. Han arbejder i øjeblikket med deep learning-systemer med fokus på at kompilere og optimere deep learning-modeller til effektiv træning og inferens, især store fundamentmodeller. Missionen er at bygge bro mellem højniveaumodellerne fra forskellige rammer og hardwareplatforme på lavt niveau, herunder CPU'er, GPU'er og AI-acceleratorer, så forskellige modeller kan køre med høj ydeevne på forskellige enheder.

Fast and cost-effective LLaMA 2 fine-tuning with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jun (Luke) Huan er Principal Scientist ved AWS AI Labs. Dr. Huan arbejder med kunstig intelligens og datavidenskab. Han har publiceret mere end 160 peer-reviewede artikler i førende konferencer og tidsskrifter og har dimitteret 11 ph.d.-studerende. Han var modtager af NSF Fakultetets Early Career Development Award i 2009. Før han kom til AWS, arbejdede han hos Baidu Research som en fremtrædende videnskabsmand og leder af Baidu Big Data Laboratory. Han grundlagde StylingAI Inc., en AI-start-up, og arbejdede som administrerende direktør og Chief Scientist i 2019-2021. Før han kom til branchen, var han professor i Charles E. og Mary Jane Spahr i EECS-afdelingen ved University of Kansas. Fra 2015-2018 arbejdede han som programdirektør hos den amerikanske NSF med ansvar for dets big data-program.

Fast and cost-effective LLaMA 2 fine-tuning with AWS Trainium | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Shruti Koparkar er Senior Product Marketing Manager hos AWS. Hun hjælper kunder med at udforske, evaluere og anvende Amazon EC2 accelereret computerinfrastruktur til deres maskinlæringsbehov.

Tidsstempel:

Mere fra AWS maskinindlæring