Stora språkmodeller (eller LLM) har blivit ett ämne för dagliga samtal. Deras snabba antagande framgår av hur lång tid som krävs för att nå 100 miljoner användare, som har gått från "4.5 år av facebook" till det lägsta någonsin på bara "2 månader av ChatGPT." En generativ förtränad transformator (GPT) använder kausala autoregressiva uppdateringar för att göra förutsägelser. En mängd olika uppgifter som taligenkänning, textgenerering och frågesvar har visat sig ha enastående prestanda av dessa modellarkitekturer. Flera nyare modeller som t.ex Neox, Falcon, Lama använda GPT-arkitekturen som ryggrad. Att träna LLM kräver en enorm mängd beräkningstid, vilket kostar miljontals dollar. I det här inlägget kommer vi att sammanfatta utbildningsförfarandet för GPT Neox on AWS Trainium, en specialbyggd maskininlärningsaccelerator (ML) optimerad för djupinlärningsträning. Vi kommer att beskriva hur vi kostnadseffektivt (3.2 M tokens/$) tränade sådana modeller med AWS Trainium utan att förlora någon modellkvalitet.
Lösningsöversikt
GPT NeoX och Pythia modeller
GPT NeoX och Pythia är kausala språkmodeller med öppen källkod av Eleuther-AI med cirka 20 miljarder parametrar i NeoX och 6.9 miljarder i Pythia. Båda är avkodarmodeller som följer liknande arkitektonisk design som Chat GPT3. Men de har också flera tillägg, som också är allmänt antagna i de senaste modellerna som Llama. Speciellt har de rotationspositionell inbäddning (ROPE) med partiell rotation över huvudets dimensioner. Originalmodellerna (NeoX och Pythia 6.9B) är utbildade på öppet tillgängliga Högdataset med deduplicering och med hjälp av Megatron och Deepspeed backend.
Vi demonstrerar förträning och finjustering av dessa modeller på AWS Trainium-baserade Trn1-instanser med hjälp av Neuron NeMo bibliotek. För att fastställa proof-of-concept och snabb reproduktion kommer vi att använda en mindre Wikipedia-datauppsättning som tokeniserats med GPT2 Byte-pair encoding (BPE) tokenizer.
genomgång
Ladda ner den förtokeniserade Wikipedia-datauppsättningen som visas:
Både NeoX 20B och Pythia 6.9B använder ROPE med partiell rotation, till exempel roterar 25% av huvudets dimensioner och håller resten oroterat. För att effektivt implementera den partiella rotationen på AWS Trainium accelerator, istället för att sammanfoga de roterande och icke-roterande dimensionerna, lägger vi till nollfrekvenser för icke-roterande dimensioner och roterar sedan hela uppsättningen av huvuddimensioner. Detta enkla trick hjälpte oss att förbättra genomströmningen (sekvenser bearbetade per sek) på AWS Trainium.
Träningssteg
För att genomföra utbildningen använder vi SLURM-hanterad multi-nod Amazon Elastic Compute Cloud (Amazon EC2) Trn1-kluster, där varje nod innehåller en trn1.32xl-instans. Varje trn1.32xl har 16 acceleratorer med två arbetare per accelerator. Efter att ha laddat ner den senaste Neuron NeMo paket, använd det medföljande neox och pythia förträning och finjustering av skript med optimerade hyperparametrar och exekvera följande för en träning med fyra noder.
- Kompilera: Förkompilera modellen med tre tågiterationer för att generera och spara graferna:
- Kör: Utför träningen genom att ladda de cachade graferna från första steg
- Övervaka resultat
Samma steg måste följas för att köra Pythia 6.9B-modellen med byte neox_20B_slurm.sh
by pythia_6.9B_slurm.sh
.
Förträning och finjusteringsexperiment
Vi demonstrerar förträningen av GPT-NeoX- och Pythia-modeller på AWS Trainium med hjälp av Neuron NeMo bibliotek för 10k iterationer, och visar även finjustering av dessa modeller för 1k steg. För förträning använder vi GPT2 BPE-tokenizern inuti NeMo och följer densamma config som används i originalmodellen. Finjustering på AWS Trainium kräver ändring av få parametrar (som t.ex vokab storleksdelningsfaktor), som tillhandahålls i finjusteringsskripten för att ta hänsyn till Megatron kontra NeMo-skillnader och GPU kontra AWS Trainium-ändringar. Den multi-nodsdistribuerade träningsgenomströmningen med varierande antal noder visas i tabell-1.
Modell | Tensor parallell | Rörledning parallell | Antal instanser | Kostnad ($/timme) | Sekvenslängd | Global batchstorlek | Genomströmning (sek/sek) | Kostnadsgenomströmningsförhållande (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. Jämför genomsnittlig genomströmning av GPT NeoX- och Pythia-modeller för att träna upp till 500 steg med växlande antal noder. De prissättning av trn1.32xl baseras på den 3-åriga reserverade effektiva timpriset.
Därefter utvärderar vi också förlustbanan för modellträningen på AWS Trainium och jämför den med motsvarande körning på ett P4d (Nvidia A100 GPU-kärnor)-kluster. Tillsammans med träningsförlusten jämför vi också användbar indikator som gradientnorm, som är 2-normen av modellgradienterna som beräknas vid varje träningsiteration för att övervaka träningsframstegen. Träningsresultaten visas i figur-1, 2 och finjustering av NeoX 20B i figur-3.
Figur 1. Utbildningsförlust i genomsnitt för alla arbetare (vänster) och gradientnorm (höger) vid utbildning varje steg. NeoX 20B tränas på 4 noder med liten wikidatauppsättning på GPU och Trainium med samma träningshyperparametrar (global batchstorlek=256). GPU använder BF16 och standard blandad precision medan AWS Trainium använder full BF16 med stokastisk avrundning. Förlust- och gradientnormbanorna matchar för GPU och AWS Trainium.
Figur 2. Utbildningsförlust i genomsnitt för alla arbetare (vänster) och gradientnorm (höger) vid utbildning varje steg. I likhet med GPT NeoX i figur-1 tränas Pythia 6.9B på 4 noder med liten wikidatauppsättning på GPU och Trainium med samma träningshyperparametrar (global batchstorlek=256). Förlust- och gradientnormbanorna matchar GPU och Trainium.
Figur 3. Finjustera GPT NeoX 20B-modellen på GPU och AWS Trainium med träningsförlust i genomsnitt för alla arbetare (vänster) och gradientnorm (höger). En liten wikidatauppsättning används för att finjustera demonstrationen. Förlust- och gradientnormbanorna matchar för GPU och AWS Trainium.
I det här inlägget visade vi kostnadseffektiv utbildning av LLM:er på AWS djupinlärningshårdvara. Vi tränade GPT NeoX 20B och Pythia 6.9B-modeller på AWS Trn1 med Neuron NeMo-biblioteket. Den normaliserade kostnaden för 20 miljarder modeller med AWS Trainium är cirka 3.2 miljoner tokens/$ spenderade. Tillsammans med kostnadseffektiv träning på AWS Trainium får vi liknande modellnoggrannhet, vilket framgår av träningsstegförlust och gradientnormbana. Vi finjusterade också de tillgängliga kontrollpunkterna för NeoX 20B-modellen på AWS Trainium. För ytterligare information om den distribuerade utbildningen med NeMo Megatron på AWS Trainium, se AWS Neuron Reference för NeMo Megatron. En bra resurs för att börja finjustera Llama-modellen kan hittas här, Finjustering av Lama2. För att komma igång med managed AWS Trainium på Amazon SageMaker, Se Träna dina ML-modeller med AWS Trainium och Amazon SageMaker.
Om författarna
Gaurav Gupta är för närvarande en tillämpad forskare vid Amazon Web Services (AWS) AI-labb. Dr. Gupta avslutade sin doktorsexamen från USC Viterbi. Hans forskningsintressen spänner över domänen av sekventiell datamodellering, inlärning av partiella differentialekvationer, informationsteori för maskininlärning, fraktionella dynamiska modeller och komplexa nätverk. Han arbetar för närvarande med tillämpade och matematiska problem på LLM:s träningsbeteende, synmodeller med PDE, informationsteoretiska multimodalitetsmodeller. Dr. Gupta har publikationer i topptidskrifter/konferenser som Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-physical society.
Ben Snyder är tillämpad forskare med AWS Deep Learning. Hans forskningsintressen inkluderar grundläggande modeller, förstärkningsinlärning och asynkron optimering. Utanför jobbet tycker han om att cykla och campa.
Amith (R) Mamidala är senior applikationsteknik för maskininlärning på AWS Annapurna Labs. Dr. Mamidala avslutade sin doktorsexamen vid Ohio State University i högpresterande datoranvändning och kommunikation. Under sin tjänstgöringstid på IBM Research bidrog Dr. Mamidala till BlueGene-klassen av datorer som ofta ledde Top500-rankingen av de mest kraftfulla och energieffektiva superdatorerna. Projektet belönades 2009 med National Medal of Technology and Innovation. Efter en kort period som AI-ingenjör på en finansiell hedgefond, gick Dr. Mamidala med i Annapurna-laboratoriet med fokus på utbildning i stora språkmodeller.
Jun (Luke) Huan är huvudforskare vid AWS AI Labs. Dr. Huan arbetar med AI och datavetenskap. Han har publicerat mer än 180 referentgranskade artiklar i ledande konferenser och tidskrifter. Han mottog NSF Faculty Early Career Development Award 2009. Innan han började på AWS arbetade han på Baidu Research som en framstående vetenskapsman och chef för Baidu Big Data Laboratory. Han grundade StylingAI Inc., en AI-start-up, och arbetade som VD och Chief Scientist 2019-2021. Innan han började på industrin var han professor i Charles E. och Mary Jane Spahr vid EECS-avdelningen vid University of Kansas.
Shruti Koparkar är Senior Product Marketing Manager på AWS. Hon hjälper kunder att utforska, utvärdera och använda Amazon EC2 accelererad datorinfrastruktur för deras maskininlärningsbehov.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/frugality-meets-accuracy-cost-efficient-training-of-gpt-neox-and-pythia-models-with-aws-trainium/
- : har
- :är
- $UPP
- 1
- 10
- 100
- 10K
- 120
- 16
- 160
- 180
- 20
- 500
- 7
- 9
- a
- accelererad
- accelerator
- acceleratorer
- rymma
- noggrannhet
- ACM
- tvärs
- Annat
- ytterligare information
- tillsatser
- anta
- antagen
- Antagande
- Efter
- AI
- Alla
- rekordlågt
- längs
- också
- amason
- Amazon EC2
- Amazon Web Services
- Amazon Web Services (AWS)
- mängd
- an
- och
- vilken som helst
- Ansökan
- tillämpas
- cirka
- arkitektoniska
- arkitektur
- ÄR
- runt
- AS
- At
- tillgänglig
- utmärkelse
- tilldelas
- AWS
- Backbone
- backend
- Baidu
- baserat
- BE
- blir
- innan
- beteende
- Stor
- Stora data
- Miljarder
- SOPTUNNA
- båda
- by
- Karriär
- CD
- VD
- byta
- Förändringar
- byte
- Charles
- ChatGPT
- chef
- klass
- cloud
- kluster
- Kommunikation
- jämföra
- jämförande
- fullborda
- Avslutade
- komplex
- Compute
- datorer
- databehandling
- konferenser
- bidrog
- kontroll
- konversationer
- Motsvarande
- Pris
- Kostar
- kunde
- För närvarande
- Kunder
- dagligen
- datum
- datavetenskap
- djup
- djupt lärande
- Standard
- demonstrera
- demonstreras
- Avdelning
- Designa
- Utveckling
- skillnader
- dimensioner
- Distingerad
- distribueras
- distribuerad utbildning
- division
- dollar
- domän
- nedladdning
- dr
- Dr Gupta
- under
- e
- varje
- Tidig
- Effektiv
- effektivt
- inbäddning
- kodning
- ingenjör
- Teknik
- ekvationer
- etablera
- utvärdera
- uppenbart
- exempel
- exekvera
- utforska
- få
- finansiella
- Förnamn
- första stegen
- fokusering
- följer
- följt
- efter
- För
- hittade
- grundläggande
- Grundad
- fyra
- fraktionerad
- från
- full
- fond
- generera
- generering
- generativ
- skaffa sig
- Välgörenhet
- borta
- god
- GPU
- gradienter
- grafer
- Gupta
- hårdvara
- Har
- he
- huvud
- häck
- hedgefond
- hjälpte
- hjälper
- här.
- Hög
- hans
- timme
- Hur ser din drömresa ut
- Men
- html
- HTTPS
- Kramar ansikte
- IBM
- IDX
- IEEE
- genomföra
- förbättra
- in
- Inc.
- innefattar
- Indikator
- industrin
- informationen
- Infrastruktur
- Innovation
- inuti
- exempel
- istället
- intressen
- IT
- iteration
- iterationer
- jane
- fogade
- sammanfogning
- jpg
- json
- Kansas
- hålla
- laboratorium
- Labs
- språk
- Large
- senaste
- ledande
- inlärning
- Led
- vänster
- Längd
- Bibliotek
- Lama
- läser in
- förlora
- förlust
- Låg
- Maskinen
- maskininlärning
- göra
- förvaltade
- chef
- Marknadsföring
- Match
- matematisk
- betyda
- möter
- bara
- meta
- miljon
- miljoner
- ML
- modell
- modellering
- modeller
- Övervaka
- månader
- mer
- mest
- nationell
- Natur
- behov
- nätverk
- nod
- noder
- NSF
- antal
- Nvidia
- få
- of
- Ofta
- Ohio
- on
- öppen källkod
- öppet
- optimering
- optimerad
- or
- ursprungliga
- översikt
- utanför
- paket
- papper
- parametrar
- särskilt
- granskad
- för
- prestanda
- phd
- plato
- Platon Data Intelligence
- PlatonData
- Inlägg
- den mäktigaste
- förutsägelse
- Principal
- problem
- förfaranden
- Bearbetad
- Produkt
- Professor
- Framsteg
- projektet
- förutsatt
- publikationer
- publicerade
- kvalitet
- fråga
- Snabbt
- R
- Rankning
- Betygsätta
- ratio
- nå
- senaste
- erkännande
- referens
- reproduktion
- Obligatorisk
- Kräver
- forskning
- reserverad
- resurs
- REST
- Resultat
- höger
- avrundning
- Körning
- rinnande
- Samma
- Save
- Vetenskap
- Forskare
- skript
- SEC
- se
- senior
- Tjänster
- in
- flera
- hon
- show
- visade
- visas
- liknande
- Enkelt
- Storlek
- Small
- mindre
- Samhället
- span
- tal
- Taligenkänning
- spent
- starta
- Uppstart
- igång
- Ange
- Steg
- Steg
- sådana
- sammanfatta
- uppgifter
- Teknologi
- text
- än
- Smakämnen
- deras
- sedan
- Teorin
- Dessa
- de
- detta
- tre
- genomströmning
- tid
- till
- befogenhetsbeskrivas
- topp
- ämne
- mot
- Tåg
- tränad
- Utbildning
- bana
- transformator
- två
- universitet
- Uppdateringar
- us
- användning
- Begagnade
- användare
- användningar
- med hjälp av
- mängd
- varierande
- Kontra
- syn
- var
- we
- webb
- webbservice
- som
- medan
- brett
- wikipedia
- med
- utan
- Arbete
- arbetade
- arbetare
- arbetssätt
- fungerar
- Din
- zephyrnet
- noll-