Kokkuhoidlikkus kohtub täpsusega: GPT NeoX ja Pythia mudelite kulutõhus koolitus AWS Trainiumiga | Amazoni veebiteenused

Kokkuhoidlikkus kohtub täpsusega: GPT NeoX ja Pythia mudelite kulutõhus koolitus AWS Trainiumiga | Amazoni veebiteenused

Suured keelemudelid (või LLM-id) on muutunud igapäevaste vestluste teemaks. Nende kiiret kasutuselevõttu näitab aeg, mis kulub 100 miljoni kasutajani jõudmiseks, mis on tõusnud 4.5 aastast Facebooki kaudu kõigi aegade madalaimale tasemele, vaid 2 kuud ChatGPT kaudu. Generatiivne eelkoolitatud trafo (GPT) kasutab ennustamiseks põhjuslikke autoregressiivseid värskendusi. Nende mudeliarhitektuuride puhul on näidatud, et mitmesugused ülesanded, nagu kõnetuvastus, teksti genereerimine ja küsimustele vastamine, toimivad suurepäraselt. Mitmed hiljutised mudelid nagu Neose, Pistrik, Laama kasutada GPT arhitektuuri selgroona. LLM-ide koolitamine nõuab tohutult palju arvutusaega, mis maksab miljoneid dollareid. Selles postituses teeme kokkuvõtte GPT koolitusprotseduurist Neose on AWS Trainium, sihipäraselt ehitatud masinõppe (ML) kiirendi, mis on optimeeritud süvaõppe koolituseks. Kirjeldame, kuidas me selliseid mudeleid AWS Trainiumiga kulutõhusalt (3.2 miljonit tokenit/$) koolitasime ilma mudeli kvaliteeti kaotamata.

Lahenduse ülevaade

GPT NeoX ja Pythia mudelid

GPT NeoX ja Pythia on Eleuther-AI avatud lähtekoodiga põhjusliku keele mudelid, millel on NeoX-is ligikaudu 20 miljardit parameetrit ja Pythias 6.9 miljardit parameetrit. Mõlemad on dekoodrimudelid, mis järgivad sarnast arhitektuurilist disaini nagu Chat GPT3. Kuid neil on ka mitmeid täiendusi, mis on samuti laialdaselt kasutusele võetud hiljutistes mudelites, nagu Llama. Eelkõige on neil pöörlev asendis kinnistamine (ROPE) koos osalise pöörlemisega üle pea mõõtmete. Algsed mudelid (NeoX ja Pythia 6.9B) on koolitatud avalikult kättesaadavaks Vaia andmestik deduplikatsiooniga ning Megatroni ja Deepspeedi taustaprogrammiga.

Näitame nende mudelite eelkoolitust ja peenhäälestamist AWS Trainium-põhistel Trn1 eksemplaridel, kasutades Neuron NeMo raamatukogu. Kontseptsiooni tõestuseks ja kiireks reprodutseerimiseks kasutame väiksemat Wikipedia andmestiku alamhulka, mis on varustatud GPT2 baitpaari kodeeringu (BPE) tokenisaatoriga.

Juhendid

Laadige alla eelnevalt märgistatud Wikipedia andmestik, nagu näidatud:

export DATA_DIR=~/examples_datasets/gpt2 mkdir -p ${DATA_DIR} && cd ${DATA_DIR} wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.bin . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/my-gpt2_text_document.idx . --no-sign-request
aws s3 cp s3://neuron-s3/training_datasets/gpt/wikipedia/license.txt . --no-sign-request

Nii NeoX 20B kui ka Pythia 6.9B kasutavad osalise pöörlemisega ROPE, näiteks pöörates 25% pea mõõtmetest ja hoides ülejäänud pööramata. AWS Trainium kiirendi osalise pöörlemise tõhusaks rakendamiseks lisame pöörlevate ja mittepöörlevate mõõtmete ühendamise asemel mittepöörlevate mõõtmete jaoks nullsagedused ja seejärel pöörame pea mõõtmete komplekti. See lihtne trikk aitas meil parandada AWS Trainiumi läbilaskevõimet (sekundis töödeldud järjestusi).

Treeningu sammud

Koolituse läbiviimiseks kasutame SLURM-i hallatavat mitme sõlmega Amazon Elastic Compute Cloudi (Amazon EC2) Trn1 klaster, kus iga sõlm sisaldab trn1.32xl eksemplari. Iga trn1.32xl on 16 kiirendit kahe töötajaga kiirendi kohta. Pärast uusima allalaadimist Neuron NeMo pakendit, kasutage kaasasolevat neox ja pütia eelkoolitus ja optimeeritud hüperparameetritega skriptide peenhäälestus ning nelja sõlme treeningu jaoks täitke järgmine.

  1. Kompileerimine: graafikute genereerimiseks ja salvestamiseks eelkompileerige mudel kolme iteratsiooniga.
    sbatch --nodes 4 compile.slurm ./neoX_20B_slurm.sh

  2. Jooks: viige treening läbi, laadides esimestest sammudest alates vahemällu salvestatud graafikud
    sbatch --nodes 4 run.slurm ./neoX_20B_slurm.sh

  3. Jälgige tulemusi
    tensorboard --logdir=nemo_experiments/megatron_neox

Samu samme tuleb järgida Pythia 6.9B mudeli käitamiseks koos asendamisega neox_20B_slurm.sh by pythia_6.9B_slurm.sh.

Eelkoolitus ja peenhäälestuskatsed

Näitame GPT-NeoX ja Pythia mudelite eelkoolitust AWS Trainiumil kasutades Neuron NeMo raamatukogu 10 1 iteratsiooni jaoks ja kuvab ka nende mudelite peenhäälestuse 2 XNUMX sammu jaoks. Eeltreeninguks kasutame NeMo sees olevat GPTXNUMX BPE tokenisaatorit ja järgime sama config nagu kasutati algses mudelis. AWS Trainiumi peenhäälestus nõuab mõne parameetri muutmist (nt sõnasõna suuruse jaotusfaktor), mis on ette nähtud peenhäälestusskriptides, et kohandada Megatroni ja NeMo erinevusi ning GPU ja AWS Trainium muudatusi. Mitme sõlmega hajutatud treeningu läbilaskevõime erineva arvu sõlmedega on näidatud tabelis-1.

MUDEL Tensor Paralleel Torujuhe paralleelne Juhtumite arv Maksumus ($/tund) Järjestuse pikkus Globaalne partii suurus Läbilaskevõime (järg/s) Kulu ja läbilaskevõime suhe (märke/$)
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

Tabel 1. GPT NeoX ja Pythia mudelite keskmise läbilaskevõime võrdlemine kuni 500 sammu treenimiseks muutuva sõlmede arvuga. The hind trn1.32xl põhineb 3-aastasel reserveeritud efektiivsel tunnitasul.

Järgmisena hindame ka mudelitreeningu kadu trajektoori AWS Trainiumil ja võrdleme seda vastava jooksuga P4d (Nvidia A100 GPU tuumad) klastris. Koos treeningkaoga võrdleme ka kasulikke näitajaid, nagu gradiendi norm, mis on 2-norm iga treeningu iteratsiooni käigus arvutatud mudeli gradientidest, et jälgida treeningu edenemist. Treeningu tulemused on näidatud joonistel 1, 2 ja NeoX 20B peenhäälestust joonisel 3.

Koolituskahju arvutatakse kõigi töötajate (vasakul) ja gradiendi normi (paremal) kohta igal etapil koolitusel.

Joonis 1. Koolituskahju arvutatakse kõigi töötajate (vasakul) ja gradiendi normi (paremal) kohta igal etapil koolitusel. NeoX 20B on koolitatud neljal sõlmel väikese wiki andmestikuga GPU-l ja Trainiumil samade treeninguhüperparameetritega (globaalne partii suurus = 4). GPU kasutab BF256 ja vaikimisi segatäpsust, samas kui AWS Trainium kasutab täis-BF16 stohhastilise ümardamisega. Kaotuse ja gradiendi normi trajektoorid vastavad GPU ja AWS Trainiumi puhul.

Koolituskahju arvutatakse kõigi töötajate (vasakul) ja gradiendi normi (paremal) kohta igal etapil koolitusel (Pythia).

Joonis 2. Koolituskahju arvutatakse kõigi töötajate (vasakul) ja gradiendi normi (paremal) kohta igal etapil koolitusel. Sarnaselt joonisel 1 olevale GPT NeoX-ile on Pythia 6.9B koolitatud neljas sõlmes väikese vikiandmestikuga GPU-s ja Trainiumis samade treenimishüperparameetritega (globaalne partii suurus = 4). Kaotuse ja gradiendi normi trajektoorid ühtivad GPU ja Trainiumi puhul.

GPT NeoX 20B peenhäälestusmudel GPU-l ja AWS Trainiumil, mille treeningkaod on keskmistatud kõikidele töötajatele (vasakul) ja gradiendi norm (paremal).

Joonis 3. GPT NeoX 20B peenhäälestusmudel GPU-l ja AWS Trainiumil, mille treeningkaod on keskmistatud kõikidele töötajatele (vasakul) ja gradiendi norm (paremal). Täpsushäälestuse tutvustamiseks kasutatakse väikest viki andmestikku. Kaotuse ja gradiendi normi trajektoorid vastavad GPU ja AWS Trainiumi puhul.

Selles postituses näitasime LLM-ide kulutõhusat koolitust AWS-i süvaõppe riistvaraga. Koolitasime GPT NeoX 20B ja Pythia 6.9B mudeleid AWS Trn1 Neuron NeMo raamatukoguga. Kulude normaliseeritud läbilaskevõime 20 miljardi AWS Trainiumi mudeli puhul on umbes 3.2 miljonit tokenit kulutatud dollari kohta. Koos AWS Trainiumi kuluefektiivse koolitusega saavutame sarnase mudeli täpsuse, mis ilmneb treeningsammu kadumisest ja gradiendi normi trajektoorist. Täpsustasime ka AWS Trainiumi NeoX 20B mudeli saadaolevaid kontrollpunkte. Lisateavet AWS Trainiumi NeMo Megatroniga jagatud koolituse kohta vt AWS-i neuronite viide NeMo Megatroni jaoks. Hea ressursi Llama mudeli peenhäälestamise alustamiseks leiate siit, Llama2 peenhäälestus. Hallatud AWS Trainiumi sisselülitamiseks alustamiseks Amazon SageMakerVt Treenige oma ML-mudeleid AWS Trainiumi ja Amazon SageMakeriga.


Autoritest

Kokkuhoidlikkus kohtub täpsusega: GPT NeoX ja Pythia mudelite kulutõhus koolitus AWS Trainiumiga | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Gaurav Gupta on praegu Amazon Web Servicesi (AWS) AI laborite rakendusteadlane. Dr Gupta lõpetas doktorikraadi USC Viterbis. Tema uurimisvaldkonnad hõlmavad andmete järjestikuse modelleerimise, osadiferentsiaalvõrrandite õppimise, masinõppe infoteooria, murdosaliste dünaamiliste mudelite ja keeruliste võrkude valdkonda. Praegu tegeleb ta rakenduslike ja matemaatiliste probleemidega LLM-ide koolituskäitumise, PDE-dega nägemismudelite, infoteoreetiliste multimodaalsusmudelite kallal. Dr Gupta avaldab publikatsioone tippajakirjades/konverentsidel, nagu Neurips, ICLR, ICML, Nature, IEEE Control Society, ACM cyber-physical Society.

Kokkuhoidlikkus kohtub täpsusega: GPT NeoX ja Pythia mudelite kulutõhus koolitus AWS Trainiumiga | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Ben Snyder on AWS Deep Learningi rakendusteadlane. Tema uurimisvaldkonnad hõlmavad alusmudeleid, tugevdavat õpet ja asünkroonset optimeerimist. Töövälisel ajal meeldib talle jalgrattaga sõita ja matkata.

Kokkuhoidlikkus kohtub täpsusega: GPT NeoX ja Pythia mudelite kulutõhus koolitus AWS Trainiumiga | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Amith (R) Mamidala on AWS Annapurna Labsi vanem masinõppe rakenduste insener. Dr Mamidala lõpetas doktorikraadi Ohio osariigi ülikoolis kõrgjõudlusega andmetöötluse ja side alal. IBM-i uurimistöös töötades andis dr Mamidala oma panuse BlueGene'i arvutiklassi, mis sageli juhtis kõige võimsamate ja energiatõhusamate superarvutite edetabelit Top500. Projekt pälvis 2009. aastal riikliku tehnoloogia ja innovatsiooni medali. Pärast lühikest tegevust tehisinsenerina finantsriskifondis liitus dr Mamidala Annapurna laboritega, mis keskendusid Large Language mudeli koolitusele.

Kokkuhoidlikkus kohtub täpsusega: GPT NeoX ja Pythia mudelite kulutõhus koolitus AWS Trainiumiga | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Jun (Luke) Huan on AWS AI Labsi juhtivteadlane. Dr Huan tegeleb tehisintellekti ja andmeteadusega. Ta on avaldanud rohkem kui 180 eelretsenseeritud ettekannet juhtivates konverentsides ja ajakirjades. Ta pälvis 2009. aastal NSF-i teaduskonna varajase karjääriarengu auhinna. Enne AWS-iga liitumist töötas ta Baidu teadustöös väljapaistva teadlase ja Baidu suurandmete labori juhina. Ta asutas AI idufirma StylingAI Inc. ning töötas aastatel 2019–2021 tegevjuhi ja peateadlasena. Enne tööstusega liitumist oli ta Charles E. ja Mary Jane Spahri professor Kansase ülikooli EECS osakonnas.

Kokkuhoidlikkus kohtub täpsusega: GPT NeoX ja Pythia mudelite kulutõhus koolitus AWS Trainiumiga | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Shruti Koparkar on AWS-i vanemtoodete turundusjuht. Ta aitab klientidel uurida, hinnata ja kasutusele võtta Amazon EC2 kiirendatud andmetöötluse infrastruktuuri nende masinõppe vajaduste jaoks.

Ajatempel:

Veel alates AWS-i masinõpe