Store språkmodeller (eller LLM) har blitt et tema for daglige samtaler. Deres raske adopsjon er tydelig av hvor lang tid det tar å nå 100 millioner brukere, som har gått fra "4.5 år av facebook" til et rekordlavt nivå på bare "2 måneder av ChatGPT." En generativ forhåndstrent transformator (GPT) bruker kausale autoregressive oppdateringer for å forutsi. En rekke oppgaver som talegjenkjenning, tekstgenerering og spørsmålssvar viser seg å ha enestående ytelse av disse modellarkitekturene. Flere nyere modeller som f.eks NEOX, Falcon, Llama bruke GPT-arkitekturen som ryggrad. Trening av LLM krever kolossal mengde beregningstid, som koster millioner av dollar. I dette innlegget vil vi oppsummere opplæringsprosedyren for GPT NEOX on AWS Trainium, en spesialbygd maskinlæringsakselerator (ML) optimalisert for dyp læringstrening. Vi skal skissere hvordan vi kostnadseffektivt (3.2 M tokens/$) trente slike modeller med AWS Trainium uten å miste noen modellkvalitet.
Løsningsoversikt
GPT NeoX og Pythia-modeller
GPT NeoX og Pythia er åpen kildekode årsaksspråkmodeller av Eleuther-AI med omtrent 20 milliarder parametere i NeoX og 6.9 milliarder i Pythia. Begge er dekodermodeller som følger lignende arkitektonisk design som Chat GPT3. Imidlertid har de også flere tillegg, som også er mye brukt i de nyere modellene som Llama. Spesielt har de rotasjonsposisjonell embedding (ROPE) med delvis rotasjon over hodedimensjoner. De originale modellene (NeoX og Pythia 6.9B) er opplært på åpent tilgjengelig Pile datasett med deduplisering og bruk av Megatron og Deepspeed backend.
Vi demonstrerer forhåndstrening og finjustering av disse modellene på AWS Trainium-baserte Trn1-forekomster ved å bruke Nevron NeMo bibliotek. For å etablere proof-of-concept og rask reproduksjon, bruker vi et mindre Wikipedia datasett undersett tokenisert ved hjelp av GPT2 Byte-pair encoding (BPE) tokenizer.
walkthrough
Last ned det forhåndstokeniserte Wikipedia-datasettet som vist:
Både NeoX 20B og Pythia 6.9B bruker ROPE med delvis rotasjon, for eksempel roterer 25 % av hodedimensjonene og holder resten urotert. For å effektivt implementere den delvise rotasjonen på AWS Trainium-akselerator, i stedet for å sette sammen de roterende og ikke-roterende dimensjonene, legger vi til null frekvenser for ikke-roterende dimensjoner og roterer deretter hele settet med hodedimensjoner. Dette enkle trikset hjalp oss med å forbedre gjennomstrømningen (sekvenser behandlet per sekund) på AWS Trainium.
Treningstrinn
For å gjennomføre opplæringen bruker vi SLURM administrert multi-node Amazon Elastic Compute Cloud (Amazon EC2) Trn1-klynge, med hver node som inneholder en trn1.32xl-forekomst. Hver trn1.32xl har 16 akseleratorer med to arbeidere per akselerator. Etter å ha lastet ned den nyeste Nevron NeMo pakken, bruk den medfølgende neox og pythia forhåndstrening og finjustering av skript med optimaliserte hyperparametere og utfør følgende for en trening med fire noder.
- Kompiler: Forhåndskompiler modellen med tre togiterasjoner for å generere og lagre grafene:
- Løp: Utfør treningen ved å laste de hurtigbufrede grafene fra de første trinnene
- Overvåk resultatene
De samme trinnene må følges for å kjøre Pythia 6.9B-modellen med utskifting neox_20B_slurm.sh
by pythia_6.9B_slurm.sh
.
Førtrening og finjustering av eksperimenter
Vi demonstrerer forhåndstrening av GPT-NeoX- og Pythia-modeller på AWS Trainium ved hjelp av Nevron NeMo bibliotek for 10k iterasjoner, og viser også finjustering av disse modellene for 1k trinn. For førtrening bruker vi GPT2 BPE-tokenizer inne i NeMo og følger samme config som brukt i originalmodellen. Finjustering på AWS Trainium krever endring av få parametere (som f.eks vokab størrelsesdivisjonsfaktor), som er gitt i finjusteringsskriptene for å imøtekomme Megatron versus NeMo-forskjeller og GPU versus AWS Trainium endringer. Den multi-node distribuerte treningsgjennomstrømningen med varierende antall noder er vist i tabell-1.
Modell | Tensor parallell | Rørledning parallell | Antall forekomster | Kostnad ($/time) | Sekvenslengde | Global batchstørrelse | Gjennomstrømning (sek/sek) | Kostnadsgjennomstrømningsforhold (tokens/$) |
Pythia 6.9B | 8 | 1 | 1 | 7.59 | 2048 | 256 | 10.4 | 10,102,387 |
8 | 1 | 4 | 30.36 | 2048 | 256 | 35.8 | 8,693,881 | |
NeoX 20B | 8 | 4 | 4 | 30.36 | 2048 | 16384 | 13.60 | 3,302,704 |
8 | 4 | 8 | 60.72 | 2048 | 16384 | 26.80 | 3,254,134 | |
8 | 4 | 16 | 121.44 | 2048 | 16384 | 54.30 | 3,296,632 | |
8 | 4 | 32 | 242.88 | 2048 | 16384 | 107.50 | 3,263,241 | |
8 | 4 | 64 | 485.76 | 2048 | 16384 | 212.00 | 3,217,708 |
Tabell 1. Sammenligning av gjennomsnittlig gjennomstrømning av GPT NeoX- og Pythia-modeller for å trene opptil 500 trinn med skiftende antall noder. De prissetting av trn1.32xl er basert på 3-års reservert effektiv timepris.
Deretter evaluerer vi også tapsbanen til modelltreningen på AWS Trainium og sammenligner den med den tilsvarende kjøringen på en P4d (Nvidia A100 GPU-kjerner)-klynge. Sammen med treningstapet sammenligner vi også nyttige indikatorer som gradientnorm, som er 2-normen av modellgradientene beregnet ved hver treningsiterasjon for å overvåke treningsfremgangen. Treningsresultatene er vist i figur-1, 2 og finjustering av NeoX 20B i figur-3.
Figur 1. Gjennomsnittlig treningstap for alle arbeidere (venstre) og gradientnorm (høyre) ved trening hvert trinn. NeoX 20B er trent på 4 noder med lite wiki-datasett på GPU og Trainium med samme treningshyper-parametre (global batchstørrelse=256). GPU bruker BF16 og standard blandet presisjon mens AWS Trainium bruker full BF16 med stokastisk avrunding. Taps- og gradientnormbanene samsvarer med GPU og AWS Trainium.
Figur 2. Opplæringstap i gjennomsnitt for alle arbeidere (venstre) og gradientnorm (høyre) ved trening hvert trinn. I likhet med GPT NeoX i figur-1, er Pythia 6.9B trent på 4 noder med lite wiki-datasett på GPU og Trainium med samme treningshyper-parametre (global batchstørrelse=256). Taps- og gradientnormbanene samsvarer for GPU og Trainium.
Figur 3. Finjustering av GPT NeoX 20B-modellen på GPU og AWS Trainium med gjennomsnittlig treningstap på tvers av alle arbeidere (venstre) og gradientnorm (høyre). Et lite wiki-datasett brukes til å finjustere demonstrasjonen. Taps- og gradientnormbanene samsvarer med GPU og AWS Trainium.
I dette innlegget viste vi kostnadseffektiv opplæring av LLM-er på AWS dyplæringsmaskinvare. Vi trente GPT NeoX 20B og Pythia 6.9B-modeller på AWS Trn1 med Neuron NeMo-bibliotek. Den kostnadsnormaliserte gjennomstrømningen for 20 milliarder modeller med AWS Trainium er rundt 3.2 millioner tokens/$ brukt. Sammen med kostnadseffektiv opplæring på AWS Trainium, oppnår vi lignende modellnøyaktighet, noe som er tydelig fra treningstrinnstap og gradientnormbane. Vi har også finjustert de tilgjengelige sjekkpunktene for NeoX 20B-modellen på AWS Trainium. For ytterligere informasjon om distribuert opplæring med NeMo Megatron på AWS Trainium, se AWS Neuron Reference for NeMo Megatron. En god ressurs for å starte finjustering av Llama-modellen kan bli funnet her, Lama2 finjustering. For å komme i gang med administrert AWS Trainium på Amazon SageMaker, Se Tren ML-modellene dine med AWS Trainium og Amazon SageMaker.
Om forfatterne
Gaurav Gupta er for tiden en Applied Scientist ved Amazon Web Services (AWS) AI-laboratorier. Dr. Gupta fullførte sin doktorgrad fra USC Viterbi. Hans forskningsinteresser spenner over domenet sekvensiell datamodellering, læring av partielle differensialligninger, informasjonsteori for maskinlæring, fraksjonelle dynamiske modeller og komplekse nettverk. Han jobber for tiden med anvendte og matematiske problemer på LLMs treningsatferd, visjonsmodeller med PDE, informasjonsteoretiske multimodalitetsmodeller. Dr. Gupta har publikasjoner i topptidsskrifter/konferanser som Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-physical society.
Ben Snyder er en anvendt vitenskapsmann med AWS Deep Learning. Hans forskningsinteresser inkluderer grunnleggende modeller, forsterkende læring og asynkron optimalisering. Utenom jobben liker han å sykle og campe i terrenget.
Amith (R) Mamidala er senior maskinlæringsapplikasjonsingeniør ved AWS Annapurna Labs. Dr. Mamidala fullførte sin doktorgrad ved Ohio State University i høyytelses databehandling og kommunikasjon. I løpet av sin stilling hos IBM Research, bidro Dr. Mamidala til BlueGene-klassen av datamaskiner som ofte ledet Top500-rangeringen av de kraftigste og mest strømeffektive superdatamaskinene. Prosjektet ble tildelt 2009 National Medal of Technology and Innovation. Etter en kort periode som AI-ingeniør i et finansielt hedgefond, begynte Dr. Mamidala i Annapurna-laboratoriene med fokus på opplæring i store språkmodeller.
Jun (Luke) Huan er hovedforsker ved AWS AI Labs. Dr. Huan jobber med kunstig intelligens og datavitenskap. Han har publisert mer enn 180 fagfellevurderte artikler i ledende konferanser og tidsskrifter. Han var mottaker av NSF Fakultetets Early Career Development Award i 2009. Før han begynte i AWS, jobbet han ved Baidu Research som en fremtredende vitenskapsmann og leder av Baidu Big Data Laboratory. Han grunnla StylingAI Inc., en AI-oppstart, og jobbet som administrerende direktør og Chief Scientist i 2019-2021. Før han begynte i industrien, var han professor i Charles E. og Mary Jane Spahr ved EECS-avdelingen ved University of Kansas.
Shruti Koparkar er Senior Product Marketing Manager hos AWS. Hun hjelper kunder med å utforske, evaluere og ta i bruk Amazon EC2 akselerert databehandlingsinfrastruktur for deres maskinlæringsbehov.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/frugality-meets-accuracy-cost-efficient-training-of-gpt-neox-and-pythia-models-with-aws-trainium/
- : har
- :er
- $OPP
- 1
- 10
- 100
- 10K
- 120
- 16
- 160
- 180
- 20
- 500
- 7
- 9
- a
- akselerert
- akselerator
- akseleratorer
- imøtekomme
- nøyaktighet
- ACM
- tvers
- Ytterligere
- Tilleggsinformasjon
- tilleggene
- adoptere
- vedtatt
- Adopsjon
- Etter
- AI
- Alle
- rekordlav
- langs
- også
- Amazon
- Amazon EC2
- Amazon Web Services
- Amazon Web Services (AWS)
- beløp
- an
- og
- noen
- Søknad
- anvendt
- ca
- arkitektonisk
- arkitektur
- ER
- rundt
- AS
- At
- tilgjengelig
- award
- tildelt
- AWS
- Backbone
- Backend
- Baidu
- basert
- BE
- bli
- før du
- atferd
- Stor
- Store data
- Milliarder
- BIN
- både
- by
- Karriere
- CD
- konsernsjef
- endring
- Endringer
- endring
- Charles
- ChatGPT
- sjef
- klasse
- Cloud
- Cluster
- Kommunikasjon
- sammenligne
- sammenligne
- fullføre
- Terminado
- komplekse
- Beregn
- datamaskiner
- databehandling
- konferanser
- bidratt
- kontroll
- samtaler
- Tilsvarende
- Kostnad
- Kostnader
- kunne
- I dag
- Kunder
- daglig
- dato
- datavitenskap
- dyp
- dyp læring
- Misligholde
- demonstrere
- demonstrert
- Avdeling
- utforming
- Utvikling
- forskjeller
- dimensjoner
- Fornem
- distribueres
- distribuert opplæring
- Divisjon
- dollar
- domene
- Nedlasting
- dr
- Dr. Gupta
- under
- e
- hver enkelt
- Tidlig
- Effektiv
- effektivt
- embedding
- koding
- ingeniør
- Ingeniørarbeid
- ligninger
- etablere
- evaluere
- tydelig
- eksempel
- henrette
- utforske
- Noen få
- finansiell
- Først
- første steg
- fokusering
- følge
- fulgt
- etter
- Til
- funnet
- grunn
- Stiftet
- fire
- brøk
- fra
- fullt
- fond
- generere
- generasjonen
- generative
- få
- Global
- borte
- god
- GPU
- gradienter
- grafer
- Gupta
- maskinvare
- Ha
- he
- hode
- hekk
- hedgefond
- hjulpet
- hjelper
- her.
- Høy
- hans
- time
- Hvordan
- Men
- HTML
- HTTPS
- Klem ansikt
- IBM
- iDX
- IEEE
- iverksette
- forbedre
- in
- Inc.
- inkludere
- Indikator
- industri
- informasjon
- Infrastruktur
- Innovasjon
- innsiden
- f.eks
- i stedet
- interesser
- IT
- køyring
- gjentakelser
- jane
- ble med
- sammenføyning
- jpg
- JSON
- Kansas
- holde
- laboratorium
- Labs
- Språk
- stor
- siste
- ledende
- læring
- Led
- venstre
- Lengde
- Bibliotek
- Llama
- lasting
- å miste
- tap
- Lav
- maskin
- maskinlæring
- gjøre
- fikk til
- leder
- Marketing
- Match
- matematiske
- bety
- møter
- bare
- Meta
- millioner
- millioner
- ML
- modell
- modellering
- modeller
- Overvåke
- måneder
- mer
- mest
- nasjonal
- Natur
- behov
- nettverk
- node
- noder
- NSF
- Antall
- Nvidia
- få
- of
- ofte
- Ohio
- on
- åpen kildekode
- åpenlyst
- optimalisering
- optimalisert
- or
- original
- omriss
- utenfor
- pakke
- papirer
- parametere
- spesielt
- peer-reviewed
- for
- ytelse
- phd
- plato
- Platon Data Intelligence
- PlatonData
- Post
- kraftig
- prediksjon
- Principal
- problemer
- prosedyren
- Bearbeidet
- Produkt
- Professor
- Progress
- prosjekt
- forutsatt
- publikasjoner
- publisert
- kvalitet
- spørsmål
- Rask
- R
- Ranking
- Sats
- ratio
- å nå
- nylig
- anerkjennelse
- referanse
- reproduksjon
- påkrevd
- Krever
- forskning
- reservert
- ressurs
- REST
- Resultater
- ikke sant
- avrunding
- Kjør
- rennende
- samme
- Spar
- Vitenskap
- Forsker
- skript
- SEK
- se
- senior
- Tjenester
- sett
- flere
- hun
- Vis
- viste
- vist
- lignende
- Enkelt
- Størrelse
- liten
- mindre
- Samfunnet
- span
- tale
- Talegjenkjenning
- brukt
- Begynn
- Oppstart
- startet
- Tilstand
- Trinn
- Steps
- slik
- oppsummere
- oppgaver
- Teknologi
- tekst
- enn
- De
- deres
- deretter
- teori
- Disse
- de
- denne
- tre
- gjennomstrømning
- tid
- til
- symbolbaserte
- topp
- Tema
- mot
- Tog
- trent
- Kurs
- bane
- transformator
- to
- universitet
- oppdateringer
- us
- bruke
- brukt
- Brukere
- bruker
- ved hjelp av
- variasjon
- Varierende
- Versus
- syn
- var
- we
- web
- webtjenester
- hvilken
- mens
- allment
- Wikipedia
- med
- uten
- Arbeid
- arbeidet
- arbeidere
- arbeid
- virker
- Din
- zephyrnet
- null