Alates uute mudelite koolitamisest kuni tootmises kasutuselevõtuni, Amazon SageMaker pakub alustavatele ettevõtetele ja ettevõtetele kõige täiuslikumat tööriistakomplekti masinõppe (ML) ja süvaõppe võimsuse kasutamiseks.
Transformersi avatud lähtekoodiga raamatukogu ja ML-platvormiga Hugging Face muudab ülekandeõppe ja uusimad ML-mudelid ülemaailmsele tehisintellekti kogukonnale kättesaadavaks, vähendades aega, mis kulub andmeteadlastel ja ML-inseneridel ettevõtetes üle maailma, et ära kasutada kõiki uusi teaduslikke eeliseid. areng.
Transformerite rakendamine uutele NLP-ülesannetele või -domeenidele nõuab suurte keelemudelite peenhäälestamist, tehnikat, mis kasutab eelkoolitatud mudelite kogutud teadmisi, et kohandada neid uue ülesande või konkreetset tüüpi dokumentidega täiendava tõhusa koolitusprotsessi käigus.
Mudeli peenhäälestamiseks, et anda täpseid ennustusi käsiloleva äriprobleemi jaoks, on vaja koolitada suuri Transformeri mudeleid, näiteks BERT, BART, RoBERTa, T5, mille skaleeritav toimimine võib olla keeruline.
Hugging Face on tarnimiseks teinud tihedat koostööd SageMakeriga kasutusvalmis süvaõppekonteinerid (DLC-d), mis muudavad koolituse ja uusimate Transformersi mudelite juurutamise lihtsamaks ja kiiremaks kui kunagi varem. Kuna sellised funktsioonid nagu SageMaker Data Parallel (SMDP), SageMaker Model Parallel (SMMP), S3 torurežiim, on konteinerisse integreeritud, vähendab nende kasutamine ettevõtetel oluliselt aega transformeritel põhinevate ML-lahenduste loomiseks, nagu küsimuste vastamine, genereerimine. teksti ja pilte, optimeerides otsingutulemusi ning täiustades klienditoe automatiseerimist, vestlusliideseid, semantilist otsingut, dokumendianalüüse ja paljusid muid rakendusi.
Selles postituses keskendume SageMakeri hajutatud teekide sügavale integreerimisele Hugging Face'iga, mis võimaldab andmeteadlastel kiirendada Transformeri mudelite treenimist ja peenhäälestamist päevadest tundideni, kõike seda SageMakeris.
Ülevaade hajutatud koolitusest
ML-i praktikud ja andmeteadlased seisavad mudelite treenimisel silmitsi kahe skaleerimise väljakutsega: mudeli suuruse (parameetrite ja kihtide arv) skaleerimine ja koolitusandmete skaleerimine. Mudeli suuruse või treeningandmete skaleerimine võib anda tulemuseks parema täpsuse, kuid süvaõppe puhul võib esineda juhtumeid, kus kiirendi (CPU või GPU) mälumaht piirab treeningandmete suuruse ja treeningu andmete suuruse kombinatsiooni. mudel. Näiteks suure keelemudeli koolitamisel on partii suurus sageli piiratud väikese arvu proovidega, mille tulemuseks võib olla vähem täpne mudel.
Jaotatud koolitus võib jagada töökoormuse mudeli koolitamiseks mitme protsessori vahel, nn töötajate. Need töötajad tegutsevad paralleelselt, et kiirendada mudelkoolitust.
Sõltuvalt sellest, mida tahame skaleerida (mudel või andmed), on hajutatud koolitusel kaks lähenemisviisi: paralleelsed andmed ja paralleelsed mudelid.
Andmete paralleel on levinuim lähenemisviis hajutatud koolitusele. Andmete paralleelsus hõlmab mudeli arhitektuuri ja kaalude koopia loomist erinevatel kiirenditel. Seejärel saame kogu treeningkomplekti ühele kiirendile suunamise asemel jagada treeningkomplekti erinevate kiirendite vahel ja läbida treeningkomplekti kiiremini. Kuigi see lisab kiirendite sammu, mis peavad edastama oma gradientiteabe tagasi parameetriserverisse, kompenseerib selle aja enam kui kiiruse suurendamine, mis tuleneb kogu andmestiku murdosast kiirendi kohta. Seetõttu võib andmete paralleelsus oluliselt vähendada treeninguid. Näiteks ühe mudeli väljaõpetamine ilma paralleelsuseta võtab aega 4 tundi. Jaotatud treeningu kasutamine võib seda vähendada 24 minutini. SageMakeri hajutatud koolitus rakendab ka tipptasemel tehnikaid gradiendi värskendustes.
Mudeliga paralleelset lähenemist kasutatakse suurte mudelite puhul, mis on liiga suured, et mahutada ühele kiirendile (GPU). See lähenemisviis rakendab paralleelsusstrateegiat, kus mudeli arhitektuur jagatakse killudeks ja asetatakse erinevatele kiirenditele. Kõigi nende kildude konfiguratsioon sõltub närvivõrgu arhitektuurist ja sisaldab tavaliselt mitut kihti. Kiirendite vaheline side toimub iga kord, kui treeningandmed liiguvad ühest killust teise.
Kokkuvõtteks võiksite kasutada hajutatud treeningandmete paralleelsust suurte andmekogumite tõttu aeganõudvate ülesannete jaoks või kui soovite treeningkatseid kiirendada. Peaksite kasutama mudeli paralleelsust, kui teie mudel ei mahu ühele kiirendile.
Eeldused
Hugging Face Transformers mudelite hajutatud koolituse läbiviimiseks SageMakeris peate täitma järgmised eeltingimused:
Rakendage hajutatud koolitust
Hugging Face Transformersi teek pakub Trainer API-t, mis on optimeeritud teegi pakutavate mudelite treenimiseks või peenhäälestamiseks. Saate seda kasutada ka oma mudelitel, kui need töötavad samamoodi nagu Transformeri mudelid; vaata Treener lisateabe saamiseks. Seda API-t kasutatakse meie näidisskriptid, mis näitavad, kuidas eeltöötleda andmeid erinevate NLP-ülesannete jaoks, mida saate kasutada mudelitena teie enda kohandatud probleemi lahendamiseks skripti kirjutamiseks. Trainer API lubadus on see, et see skript töötab karbist välja mis tahes hajutatud seadistuses, sealhulgas SageMakeris.
Trainer API võtab kõik koolituseks vajaliku. See hõlmab teie andmekogumeid, teie mudelit (või funktsiooni, mis tagastab teie mudeli), a compute_metrics
funktsioon, mis tagastab prognooside ja siltide massiividest mõõdikud, mida soovite jälgida, optimeerijast ja õppimiskiiruse planeerijast (pakutakse head vaikeväärtused), samuti kõik hüperparameetrid, mida saate oma treeningu jaoks häälestada ja mis on rühmitatud andmeklassi nimega TrainingArguments
. Kõige selle juures pakub see kolm meetodit – treenimine, hindamine ja ennustamine –, et treenida oma mudelit, saada mis tahes andmekogumi mõõdikutulemusi või saada ennustusi mis tahes andmekogumi kohta. Objekti Trainer kohta lisateabe saamiseks vaadake Mudeli peenhäälestus Trainer API-ga ja video Treeneri API, mis juhatab teid läbi lihtsa näite.
Kulisside taga alustab Trainer API keskkonda, milles te oma skripti käivitate, kui loote TrainingArguments
. Näiteks kui käivitasite koolituse SageMakeriga, vaatab see SM_FRAMEWORK_PARAMS
muutuja keskkonnas, et tuvastada, kas lubasite SageMakeri andmete paralleelsuse või mudeli paralleelsuse. Seejärel hangib see keskkonnast enne vajalike lähtestamistoimingute sooritamist asjakohased muutujad (nt protsessi auaste või maailma suurus). smdistributed.dataparallel.torch.distributed.init_process_group()
).
Treener sisaldab kogu treeningtsüklit, nii et see saab reguleerida vajalikke samme, et veenduda smdistributed.dataparallel
Vajadusel kasutatakse taustaprogrammi, ilma et peaksite skriptis koodirida muutma. See võib endiselt töötada (kuigi palju aeglasemalt) teie kohalikus masinas silumiseks. See tegeleb teie andmestiku jagamisega nii, et iga protsess näeb automaatselt erinevaid näidiseid, igal ajajärgul toimub ümberjaotamine, sünkroonib teie gradiente enne optimeerimisetappi, kombineerib täppiskoolitust, kui selle aktiveerisite, gradientide kogumist, kui te ei mahuta suurt partii. oma GPU-sid ja palju muid optimeerimisi.
Kui aktiveerisite mudeli paralleelsuse, tagab see, et protsessid, mis peavad nägema samu andmeid (kui nende dp_rank
on sama) saada samad partiid ja see töötleb erinevalt dp_rank
ei näe samu näidiseid, iga epohhi ümberkorraldamisega. See tagab, et mudeli või optimeerijate olekusõnastikud on kontrollpunkti määramisel korralikult sünkroonitud, ja tegeleb jällegi kõigi optimeeringutega, nagu segatud täpsus ja gradiendi akumulatsioon.
Hindamis- ja ennustamismeetodite kasutamisel teostab koolitaja hajutatud hindamise, et kasutada ära kõik teie GPU-d. See käsitleb õigesti teie andmete tükeldamist iga protsessi jaoks (sama protsess dp_rank
kui mudeli paralleelsus on aktiveeritud) ja veendub, et ennustused kogutakse õigesti samas järjekorras nagu teie kasutatav andmestik, enne kui need saadetakse compute_metrics
funktsiooni või lihtsalt tagastatud. Treener API kasutamine ei ole kohustuslik. Kasutajad saavad Hugging Face'is endiselt kasutada Kerast või PyTorchit. Treener API võib aga pakkuda abistavat abstraktsioonikihti.
Treenige modelli, kasutades SageMakeri kallistava näo prognoosijaid
Hindaja on SageMakeri koolituse kõrgetasemeline liides, mis tegeleb SageMakeri koolitus- ja juurutamisülesannetega. Helistamisel käivitatakse teie skripti koolitus fit
kohta HuggingFace
Hindaja. Hindajas määrate, millist peenhäälestusskripti kasutada entry_point
, Mis instance_type
kasutada ja millised hüperparameetrid edastatakse. Lisateavet selle kohta HuggingFace
parameetrid, vt Kallistava näo hindaja.
Jaotatud koolitus: Andmed paralleelselt
Selles näites kasutame uusi Hugging Face DLC-sid ja SageMaker SDK-d, et koolitada hajutatud Seq2Seq-trafo mudelit küsimuste ja vastamise ülesande jaoks, kasutades Transformerite ja andmekogumite teeke. The bert-suur-kasutamata-terviksõna maskeerimine mudel on peenhäälestatud salk andmestik.
Järgmised koodinäidised näitavad a loomise samme HuggingFace
kalkulaator andmete paralleelsusega hajutatud koolituse jaoks.
- Valige Hugging Face Transformersi skript:
Kui loote a HuggingFace
Hindaja, saate prognoosija sisestuspunktiks määrata treeningskripti, mis salvestatakse GitHubi hoidlasse, nii et te ei pea skripte kohapeal alla laadima. Sa võid kasutada git_config
Hugging Face Transformersi näidete skriptide käivitamiseks ja õige "haru", kui teie transformers_version
tuleb konfigureerida. Näiteks kui kasutate transformers_version
4.6.1, peate kasutama "branch':'v4.6.1
'.
- Konfigureerige treeningtöösse edastatavad treeningu hüperparameetrid:
Hüperparameetrina saame defineerida mis tahes Seq2SeqTrainingArguments ja need, mis on määratletud koolituse skriptis.
- Määratlege jaotuse parameetrid jaotises
HuggingFace
Hinnang:
Võite kasutada SageMakeri andmete paralleelsuse teek karbist välja jagatud koolituse jaoks. Lisasime andmete paralleelsuse funktsionaalsuse otse Treenerisse. Andmete paralleelsuse lubamiseks saate lihtsalt lisada oma parameetrile ühe parameetri HuggingFace
Hindaja, mis võimaldab teie treeneripõhisel koodil seda automaatselt kasutada.
- Loo
HuggingFace
Hindaja, mis sisaldab eelmistes etappides määratletud parameetreid, ja alusta koolitust:
. Hugging Face Transformers hoidla sisaldab mitmeid näiteid ja skripte ülesannete mudelite peenhäälestamiseks alates keele modelleerimisest kuni märgi klassifikatsioonini. Meie puhul kasutame run_qa.py
alates examples/pytorch/question-answering
näited.
smdistributed.dataparallel
toetab SageMakeri mudelikoolitust ainult järgmisi eksemplaritüüpe. Parima jõudluse saavutamiseks soovitame kasutada eksemplari tüüpi, mis toetab Elastsest riidest adapter (EFA):
- ml.p3.16xsuur
- ml.p3dn.24xlarge (soovitatav)
- ml.p4d.24xlarge (soovitatav)
Et saada parimat jõudlust ja maksimaalset kasu SMDataParallel
, peaksite kasutama vähemalt kahte eksemplari, kuid võite selle näite testimiseks kasutada ka ühte.
Järgmised näidismärkmik annab üksikasjalikumad samm-sammulised juhised.
Jaotatud koolitus: Mudelparalleel
Mudeli paralleelsusega hajutatud koolituseks kasutame Hugging Face Transformers ja andmekogude teeki koos SageMaker SDK-ga järjestuste klassifitseerimiseks Üldine keeleoskuse hindamine (GLUE) etalon mitme sõlmega, mitme GPU-ga klastris, kasutades SageMakeri mudeli paralleelsuse raamatukogu.
Nagu andmete paralleelsuse puhul, määrame esmalt giti konfiguratsiooni, treeningu hüperparameetrid ja jaotusparameetrid HuggingFace
Hinnang:
Mudeli paralleelsuse teek kasutab sisemiselt MPI-d, nii et mudeli paralleelsuse kasutamiseks peab MPI olema jaotusparameetri abil lubatud. “processes_per_host
Eelnev kood määrab protsesside arvu, mida MPI peaks igas hostis käivitama. Soovitame neid arendamiseks ja testimiseks. Tootmise ajal võite võtta ühendust AWS-i toega, kui taotlete suurt GPU võimsust. Lisateabe saamiseks vt Viige läbi SageMakeri hajutatud mudeli paralleelkoolituse töö.
Järgmised näidismärkmik sisaldab täielikke koodiskripte.
Kohtjuhtumid
SageMaker Pythoni SDK Hugging Face raamistiku laiendusega saame kasutada ka täielikult hallatud Amazon Elastic Compute Cloud (Amazon EC2) Kohtjuhtumid ja säästate kuni 90% meie koolituskuludest.
Kui teie koolitustöö ei lõpe kiiresti, soovitame teil seda kasutada kontrollpunkti määramine juhitud kohapealse koolitusega, seetõttu peate määratlema checkpoint_s3_uri
.
Punktjuhtumite kasutamiseks koos HuggingFace
Hindaja, me peame määrama use_spot_instances
parameetri väärtuseks Tõene ja määrake oma max_wait
ja max_run
aega. Lisateabe saamiseks hallatud kohatreeningu elutsükli kohta vt Hallatud kohapealne koolitus Amazon SageMakeris.
Järgmine on koodilõik punkttreeningu prognoosija seadistamiseks:
Järgmised märkmik sisaldab täielikke koodiskripte.
Järeldus
Selles postituses arutasime Hugging Face Transformerite hajutatud koolitust SageMakeri abil. Esmalt vaatasime üle andmete paralleelsuse ja mudeli paralleelsuse kasutusjuhud. Andmete paralleelsus on tavaliselt sobivam, kuid ei pruugi piirduda ainult siis, kui arvutamine takistab treenimist, samas kui mudeli paralleelsust saate kasutada siis, kui mudel ei mahu ühele kiirendile antud mällu. Seejärel näitasime, kuidas mõlema meetodiga treenida.
Andmete paralleelsuse kasutamise juhtumi puhul, mida arutasime, võtab mudeli treenimine ühel p3.2xsuurel eksemplaril (ühe GPU-ga) 4 tundi ja maksab selle kirjutamise ajal ligikaudu 15 dollarit. Andmete paralleelsusega saame sama mudeli treenida 24 minutiga hinnaga 28 dollarit. Kuigi hind on kahekordistunud, on see vähendanud treeninguaega 10 korda. Olukorras, kus peate lühikese aja jooksul palju mudeleid välja õpetama, võimaldab andmete paralleelsus seda suhteliselt väikese kulude kasvuga. Mis puutub mudeli paralleelsuse kasutusjuhtumisse, siis see lisab võimaluse treenida mudeleid, mida riistvaraliste piirangute tõttu poleks saanud varem üldse treenida. Mõlemad funktsioonid võimaldavad ML-praktikute jaoks uusi töövooge ja on hõlpsasti juurdepääsetavad HuggingFace
Hindaja SageMaker Python SDK osana. Nende mudelite juurutamine hostitud lõpp-punktidesse järgib sama protseduuri nagu teiste hindajate puhul.
See integratsioon võimaldab muid funktsioone, mis on osa SageMakeri ökosüsteemist. Näiteks saate kasutada punktjuhtumeid, lisades prognoosijale lihtsa lipu kulude täiendavaks optimeerimiseks. Järgmise sammuna saate otsida ja käivitada koolituse demo ja näidismärkmik.
Autoritest
Archis Joglekar on AI/ML partnerlahenduste arhitekt arenevate tehnoloogiate meeskonnas. Ta on huvitatud tulemuslikust, skaleeritavast süvaõppest ja teaduslikust andmetöötlusest, kasutades AWS-i ehitusplokke. Tema varasemad kogemused ulatuvad arvutusfüüsika uurimisest kuni masinõppeplatvormide arendamiseni akadeemilistes ringkondades, riiklikes laborites ja idufirmades. Tema arvutist eemal oldud aeg möödub jalgpalli mängides ning sõprade ja perega.
James Yi on vanem AI/ML partnerlahenduste arhitekt Amazon Web Servicesi arenevate tehnoloogiate meeskonnas. Ta on kirglik koostöösse ettevõtete klientide ja partneritega, et kavandada, juurutada ja skaleerida AI/ML-rakendusi, et tuletada nende äriväärtusi. Väljaspool tööd meeldib talle jalgpalli mängida, reisida ja perega aega veeta.
Philipp Schmid on masinõppeinsener ja Hugging Face tehniline juht, kus ta juhib koostööd Amazon SageMakeri meeskonnaga. Ta on kirglik tipptasemel NLP-mudelite demokratiseerimiseks, optimeerimiseks ja tootmiseks ning süvaõppe kasutusmugavuse parandamiseks.
Sylvain Gugger on Hugging Face uurimisinsener ja Transformersi raamatukogu üks peamisi hooldajaid. Talle meeldib avatud lähtekoodiga tarkvara ja ta aitab kogukonnal seda kasutada.
Jeff Boudier ehitab tooteid Hugging Face'is, mis on juhtiva avatud lähtekoodiga ML-i raamatukogu Transformers looja. Varem oli Jeff GoPro poolt ostetud Stupeflixi kaasasutaja, kus ta töötas tootehalduse, tooteturunduse, äriarenduse ja ettevõtte arenduse direktorina.
- '
- 100
- 7
- 9
- MEIST
- kiirendama
- kiirendi
- kiirendid
- üle
- Täiendavad lisad
- ADEelis
- AI
- Materjal: BPA ja flataatide vaba plastik
- Kuigi
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- vahel
- API
- rakendused
- arhitektuur
- ümber
- Automaatika
- AWS
- võrrelda
- BEST
- Kast
- Ehitus
- äri
- helistama
- Võimsus
- juhtudel
- väljakutseid
- muutma
- klassifikatsioon
- Asutaja
- kood
- koostöö
- kombinatsioon
- ühine
- KOMMUNIKATSIOON
- kogukond
- Ettevõtted
- Arvutama
- arvutustehnika
- konfiguratsioon
- Konteiner
- sisaldab
- Vestlusliidesed
- kulud
- võiks
- loomine
- looja
- Klienditugi
- Kliendid
- andmed
- sügav õpe
- juurutamine
- Disain
- & Tarkvaraarendus
- erinev
- Juhataja
- jagatud
- dokumendid
- Domeenid
- ajal
- ökosüsteemi
- smirgel
- insener
- Inseneride
- ettevõte
- ettevõtte kliendid
- keskkond
- näide
- Kogemused
- kangas
- nägu
- pere
- kiiremini
- FUNKTSIOONID
- esimene
- sobima
- Keskenduma
- Startupide jaoks
- Raamistik
- funktsioon
- Git
- GitHub
- Globaalne
- hea
- GPU
- GPU
- riistvara
- võttes
- aitama
- Kuidas
- Kuidas
- HTTPS
- IAM
- Paranemist
- Kaasa arvatud
- Suurendama
- info
- integratsioon
- IT
- töö
- keras
- teadmised
- Labels
- Labs
- keel
- suur
- hiljemalt
- algatama
- käivitamine
- viima
- juhtivate
- Õppida
- õppimine
- Raamatukogu
- piiratud
- joon
- kohalik
- kohapeal
- masinõpe
- juhtimine
- Turundus
- Meetrika
- segatud
- ML
- mudel
- modelleerimine
- mudelid
- rohkem
- kõige
- riiklik
- vaja
- võrk
- Neural
- Närvivõrgus
- nlp
- Pakkumised
- tasakaalustama
- avatud
- avatud lähtekoodiga
- et
- Muu
- partner
- partnerid
- jõudlus
- Füüsika
- toru
- inimesele
- võim
- Täpsus
- Ennustused
- Probleem
- protsess
- Protsessid
- Toode
- tootehaldus
- Produktsioon
- Toodet
- anda
- annab
- Python
- pütorch
- küsimus
- valik
- vähendama
- teadustöö
- Tulemused
- Tulu
- jooks
- jooksmine
- salveitegija
- Skaala
- ketendamine
- teadlased
- SDK
- Otsing
- näeb
- Teenused
- komplekt
- kehtestamine
- varitsus
- Lühike
- lihtne
- SUURUS
- väike
- So
- jalgpall
- tarkvara
- Lahendused
- kiirus
- Kulutused
- jagada
- Kaubandus-
- laiali
- algus
- Alustavatel
- riik
- Strateegia
- toetama
- Toetab
- tech
- tehnikat
- Tehnoloogiad
- Testimine
- maailm
- Läbi
- aeg
- kokku
- sümboolne
- töövahendid
- tõrvik
- jälgida
- koolitus
- Uudised
- URI
- Kasutajad
- Video
- web
- veebiteenused
- M
- jooksul
- ilma
- Töö
- töötajate
- töö
- töötab
- maailm
- kirjutamine