Modelele mari de transformatoare bazate pe atenție au obținut câștiguri masive în procesarea limbajului natural (NLP). Cu toate acestea, antrenarea acestor rețele gigantice de la zero necesită o cantitate enormă de date și de calcul. Pentru seturile de date NLP mai mici, o strategie simplă, dar eficientă, este să utilizați un transformator pre-antrenat, de obicei antrenat într-un mod nesupravegheat pe seturi de date foarte mari, și să îl reglați fin pe setul de date de interes. Fata îmbrățișată menține un model mare de grădină zoologică a acestor transformatoare pre-antrenate și le face ușor accesibile chiar și pentru utilizatorii începători.
Cu toate acestea, reglarea fină a acestor modele necesită încă cunoștințe de specialitate, deoarece sunt destul de sensibile la hiperparametrii lor, cum ar fi rata de învățare sau dimensiunea lotului. În această postare, arătăm cum să optimizați acești hiperparametri cu cadrul open-source Syne Tune pentru optimizarea hiperparametrului distribuit (HPO). Syne Tune ne permite să găsim o configurație mai bună a hiperparametrului care realizează o îmbunătățire relativă între 1-4% față de hiperparametrii impliciti de pe populare GLUE seturi de date de referință. Alegerea modelului pre-antrenat în sine poate fi considerată și un hiperparametru și, prin urmare, poate fi selectată automat de Syne Tune. În cazul unei probleme de clasificare a textului, aceasta duce la o creștere suplimentară a preciziei de aproximativ 5% față de modelul implicit. Cu toate acestea, putem automatiza mai multe decizii pe care un utilizator trebuie să le ia; Demonstrăm acest lucru prin expunerea tipului de instanță ca hiperparametru pe care îl folosim ulterior pentru a implementa modelul. Selectând tipul corect de instanță, putem găsi configurații care compensează în mod optim costul și latența.
Pentru o introducere în Syne Tune, vă rugăm să consultați Rulați lucrări de reglare a hiperparametrilor și arhitecturii neuronale distribuite cu Syne Tune.
Optimizarea hiperparametrului cu Syne Tune
Vom folosi GLUE suită de benchmark, care constă din nouă seturi de date pentru sarcini de înțelegere a limbajului natural, cum ar fi recunoașterea implicării textuale sau analiza sentimentelor. Pentru asta, adaptăm Hugging Face's run_glue.py scenariu de antrenament. Seturile de date GLUE vin cu un set de instruire și evaluare predefinit cu etichete, precum și un set de testare fără etichete. Prin urmare, împărțim setul de antrenament într-un set de antrenament și validare (împărțit 70%/30%) și folosim setul de evaluare ca set de date de testare. Mai mult, adăugăm o altă funcție de apel invers la API-ul Trainer al Hugging Face, care raportează performanța de validare după fiecare epocă înapoi la Syne Tune. Vezi următorul cod:
Începem cu optimizarea hiperparametrilor tipici de antrenament: rata de învățare, raportul de încălzire pentru a crește rata de învățare și dimensiunea lotului pentru reglarea fină a unui BERT preantrenat (bert-base-cased), care este modelul implicit în exemplul Hugging Face. Vezi următorul cod:
Ca metodă HPO, folosim ASHA, care eșantionează configurațiile hiperparametrilor uniform la întâmplare și oprește în mod iterativ evaluarea configurațiilor cu performanțe slabe. Deși metode mai sofisticate utilizează un model probabilistic al funcției obiectiv, cum ar fi BO sau MoBster există, folosim ASHA pentru această postare, deoarece vine fără presupuneri cu privire la spațiul de căutare.
În figura următoare, comparăm îmbunătățirea relativă a erorii de testare față de configurația implicită a hiperparametrului Hugging Faces.
Pentru simplitate, limităm comparația la MRPC, COLA și STSB, dar observăm și îmbunătățiri similare și pentru alte seturi de date GLUE. Pentru fiecare set de date, rulăm ASHA pe un singur ml.g4dn.xlarge Amazon SageMaker instanță cu un buget de execuție de 1,800 de secunde, ceea ce corespunde la aproximativ 13, 7 și, respectiv, 9 evaluări complete de funcții pentru aceste seturi de date. Pentru a ține seama de aleatorietatea intrinsecă a procesului de antrenament, de exemplu cauzată de eșantionarea mini-loturi, rulăm atât ASHA, cât și configurația implicită pentru cinci repetări cu o sămânță independentă pentru generatorul de numere aleatoare și raportăm abaterea medie și standard a îmbunătățire relativă în timpul repetărilor. Putem vedea că, în toate seturile de date, putem de fapt îmbunătăți performanța predictivă cu 1-3% față de performanța configurației implicite selectate cu grijă.
Selectarea automată a modelului pre-antrenat
Putem folosi HPO nu numai pentru a găsi hiperparametri, ci și pentru a selecta automat modelul pre-antrenat potrivit. De ce vrem să facem asta? Deoarece niciun model nu depășește toate seturile de date, trebuie să selectăm modelul potrivit pentru un anumit set de date. Pentru a demonstra acest lucru, evaluăm o gamă de modele populare de transformatoare de la Hugging Face. Pentru fiecare set de date, clasăm fiecare model în funcție de performanța de testare. Clasamentul dintre seturile de date (a se vedea figura următoare) se schimbă și nu un singur model care să obțină cel mai mare punctaj pentru fiecare set de date. Ca referință, arătăm, de asemenea, performanța de testare absolută a fiecărui model și set de date în figura următoare.
Pentru a selecta automat modelul potrivit, putem proiecta alegerea modelului ca parametri categoriali și putem adăuga acest lucru la spațiul nostru de căutare a hiperparametrilor:
Deși spațiul de căutare este acum mai mare, asta nu înseamnă neapărat că este mai greu de optimizat. Următoarea figură arată eroarea de testare a celei mai bune configurații observate (pe baza erorii de validare) pe setul de date MRPC al ASHA de-a lungul timpului când căutăm în spațiul original (linia albastră) (cu un model pre-antrenat bazat pe BERT ) sau în noul spațiu de căutare augmentat (linia portocalie). Având în vedere același buget, ASHA este capabil să găsească o configurație de hiperparametru mult mai performantă în spațiul de căutare extins decât în spațiul mai mic.
Automatizați selectarea tipului de instanță
În practică, s-ar putea să nu ne pasă doar de optimizarea performanței predictive. Ne-ar putea interesa și alte obiective, cum ar fi timpul de antrenament, costul (în dolari), latența sau valorile de corectitudine. De asemenea, trebuie să facem alte alegeri dincolo de hiperparametrii modelului, de exemplu selectarea tipului de instanță.
Deși tipul de instanță nu influențează performanța predictivă, are un impact puternic asupra costului (în dolari), a duratei de rulare a antrenamentului și a latenței. Acesta din urmă devine deosebit de important atunci când modelul este implementat. Putem formula HPO ca o problemă de optimizare cu mai multe obiective, în care ne propunem să optimizăm mai multe obiective simultan. Cu toate acestea, nicio soluție nu optimizează toate valorile în același timp. În schimb, ne propunem să găsim un set de configurații care să schimbe în mod optim un obiectiv față de celălalt. Aceasta se numește Setul Pareto.
Pentru a analiza în continuare această setare, adăugăm alegerea tipului de instanță ca hiperparametru categoric suplimentar în spațiul nostru de căutare:
Noi folosim MO-ASHA, care adaptează ASHA la scenariul multi-obiectiv folosind sortarea nedominată. În fiecare iterație, MO-ASHA selectează și pentru fiecare configurație și tipul de instanță pe care vrem să o evaluăm. Pentru a rula HPO pe un set eterogen de instanțe, Syne Tune oferă backend-ul SageMaker. Cu acest backend, fiecare probă este evaluată ca un job independent de instruire SageMaker pe propria instanță. Numărul de lucrători definește câte joburi SageMaker rulăm în paralel la un moment dat. Optimizatorul în sine, MO-ASHA în cazul nostru, rulează fie pe o mașină locală, un notebook Sagemaker, fie pe un job separat de instruire SageMaker. Vezi următorul cod:
Următoarele cifre arată latența față de eroarea de testare în partea stângă și latența față de cost în dreapta pentru configurațiile aleatorii eșantionate de MO-ASHA (limităm axa pentru vizibilitate) pe setul de date MRPC după rularea acestuia timp de 10,800 de secunde pe patru lucrători. Culoarea indică tipul instanței. Linia neagră întreruptă reprezintă mulțimea Pareto, adică setul de puncte care domină toate celelalte puncte în cel puțin un obiectiv.
Putem observa un compromis între latența și eroarea de testare, ceea ce înseamnă că cea mai bună configurație cu cea mai mică eroare de testare nu atinge cea mai mică latență. Pe baza preferințelor dvs., puteți selecta o configurație de hiperparametru care sacrifică performanța testului, dar vine cu o latență mai mică. Vedem, de asemenea, compromisul dintre latență și cost. Folosind o instanță ml.g4dn.xlarge mai mică, de exemplu, creștem doar marginal latența, dar plătim o pătrime din costul unei instanțe ml.g4dn.8xlarge.
Concluzie
În această postare, am discutat despre optimizarea hiperparametrilor pentru reglarea fină a modelelor de transformatoare pre-antrenate de la Hugging Face pe baza Syne Tune. Am văzut că prin optimizarea hiperparametrilor, cum ar fi rata de învățare, dimensiunea lotului și raportul de încălzire, putem îmbunătăți configurația implicită aleasă cu grijă. De asemenea, putem extinde acest lucru selectând automat modelul pre-antrenat prin optimizarea hiperparametrului.
Cu ajutorul backend-ului SageMaker de la Syne Tune, putem trata tipul instanței ca un hiperparametru. Deși tipul instanței nu afectează performanța, are un impact semnificativ asupra latenței și costului. Prin urmare, prezentând HPO ca o problemă de optimizare multi-obiectivă, putem găsi un set de configurații care schimbă în mod optim un obiectiv față de celălalt. Dacă doriți să încercați singuri acest lucru, consultați-ne exemplu caiet.
Despre Autori
Aaron Klein este un om de știință aplicat la AWS.
Matthias Seeger este cercetător principal aplicat la AWS.
David Salinas este om de știință aplicat la AWS.
Emily Webber sa alăturat AWS imediat după lansarea SageMaker și de atunci a încercat să spună lumii despre asta! În afară de a construi noi experiențe ML pentru clienți, lui Emily îi place să mediteze și să studieze budismul tibetan.
Cedric Archambeau este cercetător principal aplicat la AWS și membru al Laboratorului European pentru Învățare și Sisteme Inteligente.
- Coinsmart. Cel mai bun schimb de Bitcoin și Crypto din Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. ACCES LIBER.
- CryptoHawk. Radar Altcoin. Încercare gratuită.
- Sursa: https://aws.amazon.com/blogs/machine-learning/hyperparameter-optimization-for-fine-tuning-pre-trained-transformer-models-from-hugging-face/
- "
- 10
- 100
- 7
- 9
- a
- Despre Noi
- Absolut
- accesibil
- Cont
- Obține
- peste
- Suplimentar
- afecta
- TOATE
- permite
- Cu toate ca
- Amazon
- sumă
- analiză
- analiza
- O alta
- api
- aplicat
- aproximativ
- arhitectură
- augmented
- automatizarea
- în mod automat
- in medie
- AWS
- Axă
- deoarece
- Benchmark
- CEL MAI BUN
- Mai bine
- între
- Dincolo de
- Negru
- a stimula
- buget
- Clădire
- pasă
- caz
- cauzată
- alegere
- alegeri
- ales
- clasă
- clasificare
- cod
- cum
- comparație
- Calcula
- Configuraţie
- Control
- clienţii care
- de date
- Deciziile
- demonstra
- implementa
- dislocate
- distribuite
- Nu
- Dolar
- fiecare
- cu ușurință
- Eficace
- european
- evalua
- evaluare
- exemplu
- Experiențe
- expert
- extinde
- Față
- Modă
- Figura
- următor
- Cadru
- din
- Complet
- funcţie
- mai mult
- În plus
- generator
- ajutor
- aici
- Cum
- Cum Pentru a
- Totuși
- HTTPS
- Impactul
- important
- îmbunătăţi
- îmbunătățire
- Crește
- independent
- influență
- instanță
- Inteligent
- interes
- IT
- în sine
- Loc de munca
- Locuri de munca
- alăturat
- cunoştinţe
- de laborator
- etichete
- limbă
- mare
- mai mare
- a lansat
- Conduce
- învăţare
- LIMITĂ
- Linie
- local
- maşină
- face
- FACE
- masiv
- sens
- Metode
- Metrici
- ar putea
- ML
- model
- Modele
- mai mult
- multiplu
- Natural
- în mod necesar
- nevoilor
- rețele
- caiet
- număr
- Obiectivele
- obținut
- optimizare
- Optimizați
- optimizarea
- original
- Altele
- propriu
- în special
- Plătește
- performanță
- efectuarea
- "vă rog"
- puncte
- Popular
- practică
- Principal
- Problemă
- proces
- prelucrare
- furnizează
- gamă
- Clasat
- raportează
- reporter
- Rapoarte
- reprezintă
- Necesită
- REZULTATE
- Alerga
- funcţionare
- acelaşi
- Om de stiinta
- Caută
- secunde
- sămânţă
- selectate
- sentiment
- set
- instalare
- Arăta
- semnificativ
- asemănător
- simplu
- singur
- Mărimea
- soluţie
- sofisticat
- Spaţiu
- specific
- împărţi
- standard
- Începe
- Stat
- Încă
- Strategie
- sisteme
- sarcini
- test
- lumea
- prin urmare
- timp
- comerţului
- Pregătire
- trata
- extraordinar
- proces
- înţelegere
- us
- utilizare
- utilizatorii
- obișnuit
- folosi
- validare
- vizibilitate
- Wikipedia
- fără
- muncitorii
- lume
- Ta