În decembrie 2020, AWS a anunțat disponibilitatea generală a Amazon SageMaker JumpStart, o capacitate de Amazon SageMaker care vă ajută să începeți rapid și ușor cu învățarea automată (ML). În martie 2022, și noi a anunțat suport pentru API-uri în JumpStart. JumpStart oferă o reglare fină și implementare cu un singur clic a unei game largi de modele pregătite în prealabil pentru sarcinile ML populare, precum și o selecție de soluții end-to-end care rezolvă problemele comune de afaceri. Aceste caracteristici îndepărtează sarcinile grele din fiecare pas al procesului ML, simplificând dezvoltarea modelelor de înaltă calitate și reducând timpul până la implementare.
În această postare, demonstrăm cum să rulați reglarea automată a modelului cu JumpStart.
Ajustarea automată a modelului SageMaker
În mod tradițional, inginerii ML implementează o metodă de încercare și eroare pentru a găsi setul potrivit de hiperparametri. Încercarea și eroarea implică rularea mai multor joburi secvențial sau în paralel, în timp ce furnizați resursele necesare pentru a rula experimentul.
cu Ajustarea automată a modelului SageMaker, inginerii ML și oamenii de știință de date pot descărca sarcina consumatoare de timp de optimizare a modelului lor și pot lăsa SageMaker să execute experimentarea. SageMaker profită de elasticitatea platformei AWS pentru a rula eficient și simultan mai multe simulări de antrenament pe un set de date și pentru a găsi cei mai buni hiperparametri pentru un model.
Reglarea automată a modelului SageMaker găsește cea mai bună versiune a unui model prin rularea multor lucrări de antrenament pe setul dvs. de date folosind algoritmul și game a hiperparametrilor pe care îi specificați. Apoi alege valorile hiperparametrului care rezultă într-un model care are cele mai bune performanțe, măsurate de a metric pe care o alegi tu.
Reglarea automată a modelului utilizează fie a Bayesian (implicit) sau a aleator strategie de căutare pentru a găsi cele mai bune valori pentru hiperparametri. Căutarea bayesiană tratează reglarea hiperparametrului ca a regres problemă. Atunci când alege cei mai buni hiperparametri pentru următorul job de antrenament, ia în considerare tot ce știe despre problemă până acum și permite algoritmului să exploateze cele mai cunoscute rezultate.
În această postare, folosim strategia de căutare bayesiană implicită pentru a demonstra pașii implicați în rularea reglajului automat al modelului cu JumpStart folosind LightGBM model.
JumpStart acceptă în prezent 10 exemple de notebook-uri cu reglare automată a modelului. De asemenea, acceptă patru algoritmi populari pentru modelarea datelor tabelare. Sarcinile și legăturile către exemplele lor de caiete sunt rezumate în tabelul următor.
Prezentare generală a soluțiilor
Acest flux de lucru tehnic oferă o imagine de ansamblu asupra diferitelor funcții și pași Amazon Sagemaker necesari pentru a regla automat un model JumpStart.
În secțiunile următoare, oferim o prezentare pas cu pas a modului de rulare a reglajului automat al modelului cu JumpStart utilizând algoritmul LightGBM. Oferim o însoțire caiet pentru acest tutorial.
Parcurgem următorii pași de nivel înalt:
- Preluați modelul pre-antrenat JumpStart și containerul de imagini.
- Setați hiperparametrii statici.
- Definiți intervalele de hiperparametri reglabile.
- Inițializați reglarea automată a modelului.
- Rulați lucrarea de reglare.
- Implementați cel mai bun model la un punct final.
Preluați modelul pre-antrenat JumpStart și containerul de imagini
În această secțiune, alegem modelul de clasificare LightGBM pentru reglaj fin. Folosim tipul de instanță ml.m5.xlarge pe care se rulează modelul. Preluăm apoi containerul Docker de antrenament, sursa algoritmului de antrenament și modelul pre-antrenat. Vezi următorul cod:
training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve(
region=None,
framework=None,
model_id=train_model_id,
model_version=train_model_version,
image_scope=train_scope,
instance_type=training_instance_type,
)
# Retrieve the training script
train_source_uri = script_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)
Setați hiperparametrii statici
Acum recuperăm hiperparametrii impliciti pentru acest model LightGBM, așa cum au fost preconfigurați de JumpStart. De asemenea, trecem peste num_boost_round
hiperparametru cu o valoare personalizată.
# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values
Definiți intervalele de hiperparametri reglabile
În continuare definim intervalele de hiperparametri care urmează să fie optimizat prin reglarea automată a modelului. Definim numele hiperparametrului așa cum se așteaptă de model și apoi intervalele de valori care trebuie încercate pentru acest hiperparametru. Ajustarea automată a modelului atrage mostre (egale cu max_jobs
parametru) din spațiul hiperparametrilor, folosind o tehnică numită căutare bayesiană. Pentru fiecare eșantion de hiperparametru desenat, tunerul creează un job de antrenament pentru a evalua modelul cu acea configurație. Vezi următorul cod:
hyperparameter_ranges = {
"learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
"num_boost_round": IntegerParameter(2, 30),
"early_stopping_rounds": IntegerParameter(2, 30),
"num_leaves": IntegerParameter(10, 50),
"feature_fraction": ContinuousParameter(0, 1),
"bagging_fraction": ContinuousParameter(0, 1),
"bagging_freq": IntegerParameter(1, 10),
"max_depth": IntegerParameter(5, 30),
"min_data_in_leaf": IntegerParameter(5, 50),
}
Inițializați reglarea automată a modelului
Începem prin a crea un Estimator obiect cu toate elementele necesare care definesc jobul de instruire, cum ar fi modelul preantrenat, imaginea de antrenament și scriptul de instruire. Definim apoi a HyperparameterTuner obiect pentru a interacționa cu API-urile de reglare a hiperparametrilor SageMaker.
HyperparameterTuner
acceptă ca parametri obiectul Estimator, metrica țintă pe baza căreia se decide cel mai bun set de hiperparametri, numărul total de joburi de formare (max_jobs
) pentru a începe jobul de reglare a hiperparametrului și pentru a rula joburile de antrenament paralele maxime (max_parallel_jobs
). Lucrările de antrenament sunt executate cu algoritmul LightGBM și valorile hiperparametrului care au minimum mlogloss
se alege metrica. Pentru mai multe informații despre configurarea reglajului automat al modelului, consultați Cele mai bune practici pentru reglarea hiperparametrului.
# Create SageMaker Estimator instance
tabular_estimator = Estimator(
role=aws_role,
image_uri=train_image_uri,
source_dir=train_source_uri,
model_uri=train_model_uri,
entry_point="transfer_learning.py",
instance_count=1,
instance_type=training_instance_type,
max_run=360000,
hyperparameters=hyperparameters,
output_path=s3_output_location,
) tuner = HyperparameterTuner(
estimator=tabular_estimator,
objective_metric_name="multi_logloss",
hyperparameter_ranges=hyperparameter_ranges,
metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
strategy="Bayesian",
max_jobs=10,
max_parallel_jobs=2,
objective_type="Minimize",
base_tuning_job_name=training_job_name,
)
În codul precedent, îi spunem tunerului să ruleze cel mult 10 experimente (max_jobs
) și doar două experimente simultane (max_parallel_jobs
). Ambii acești parametri vă mențin costurile și timpul de antrenament sub control.
Rulați lucrarea de reglare
Pentru a lansa jobul de reglare SageMaker, apelăm metoda fit a obiectului tuner hiperparametru și trecem Serviciul Amazon de stocare simplă (Amazon S3) calea datelor de antrenament:
tuner.fit({"training": training_dataset_s3_path}, logs=True)
În timp ce reglarea automată a modelului caută cei mai buni hiperparametri, puteți monitoriza progresul acestora fie pe consola SageMaker, fie pe Amazon CloudWatch. Când antrenamentul este încheiat, artefactele reglate fin ale celui mai bun model sunt încărcate în locația de ieșire Amazon S3 specificată în configurația de antrenament.
Implementați cel mai bun model la un punct final
Când lucrarea de reglare este finalizată, cel mai bun model a fost selectat și stocat în Amazon S3. Acum putem implementa acel model apelând metoda de implementare a HyperparameterTuner
obiect și transmiterea parametrilor necesari, cum ar fi numărul de instanțe care trebuie utilizate pentru punctul final creat, tipul acestora, imaginea care urmează să fie implementată și scriptul de rulat:
tuner.deploy(
initial_instance_count=1,
instance_type=inference_instance_type,
entry_point="inference.py",
image_uri=deploy_image_uri,
source_dir=deploy_source_uri,
endpoint_name=endpoint_name,
enable_network_isolation=True
)
Acum putem testa punctul final creat făcând cereri de inferență. Puteți urmări restul procesului în documentul însoțitor caiet.
Concluzie
Cu ajustarea automată a modelului în SageMaker, puteți găsi cea mai bună versiune a modelului dvs. rulând joburi de antrenament pe setul de date furnizat cu unul dintre algoritmii acceptați. Reglarea automată a modelului vă permite să reduceți timpul de reglare a unui model prin căutarea automată a celei mai bune configurații de hiperparametri în intervalele de hiperparametri pe care le specificați.
În această postare, am arătat valoarea rulării reglajului automat al modelului pe un model JumpStart pre-antrenat folosind API-urile SageMaker. Am folosit algoritmul LightGBM și am definit maximum 10 joburi de antrenament. De asemenea, am furnizat linkuri către exemple de notebook-uri care prezintă cadrele ML care acceptă optimizarea modelului JumpStart.
Pentru mai multe detalii despre cum să optimizați un model JumpStart cu reglarea automată a modelului, consultați exemplul nostru caiet.
Despre autor
Doug Mbaya este un arhitect Senior Partner Solution cu accent pe date și analiză. Doug lucrează îndeaproape cu partenerii AWS, ajutându-i să integreze soluția de date și analiză în cloud.
Kruthi Jayasimha Rao este arhitect de soluții partener în echipa Scale-PSA. Kruthi efectuează validări tehnice pentru parteneri, permițându-le să progreseze în Calea partenerilor.
Giannis Mitropoulos este inginer de dezvoltare software pentru SageMaker Reglare automată a modelului.
Dr. Ashish Khetan este un Senior Applied Scientist cu Amazon SageMaker JumpStart și Algoritmi încorporați Amazon SageMaker și ajută la dezvoltarea algoritmilor de învățare automată. Este un cercetător activ în învățarea automată și inferența statistică și a publicat multe lucrări în conferințele NeurIPS, ICML, ICLR, JMLR și ACL.
- 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/run-automatic-model-tuning-with-amazon-sagemaker-jumpstart/
- "
- 10
- 100
- 2020
- 2022
- Despre Noi
- peste
- activ
- Avantaj
- Algoritmul
- algoritmi
- TOATE
- Amazon
- Google Analytics
- API-uri
- Bunuri
- Automat
- disponibilitate
- AWS
- CEL MAI BUN
- construit-in
- afaceri
- apel
- Alege
- ales
- clasificare
- Cloud
- cod
- Comun
- conferințe
- Configuraţie
- consideră
- Consoleze
- Recipient
- Control
- crea
- a creat
- creează
- Crearea
- În prezent
- personalizat
- de date
- hotărât
- demonstra
- implementa
- dislocate
- desfășurarea
- detalii
- dezvolta
- Dezvoltare
- diferit
- Docher
- cu ușurință
- eficient
- permițând
- Punct final
- inginer
- inginerii
- evalua
- tot
- exemplu
- de aşteptat
- experiment
- Exploata
- DESCRIERE
- descoperiri
- potrivi
- Concentra
- urma
- următor
- mai mult
- General
- înălțime
- ajutor
- ajută
- de înaltă calitate
- Cum
- Cum Pentru a
- HTTPS
- imagine
- punerea în aplicare a
- informații
- integra
- implicat
- IT
- Loc de munca
- Locuri de munca
- lansa
- învăţare
- ridicare
- Link-uri
- locaţie
- maşină
- masina de învățare
- Efectuarea
- Martie
- ML
- model
- Modele
- monitor
- mai mult
- cele mai multe
- multiplu
- număr
- optimizare
- Optimizați
- optimizarea
- partener
- parteneri
- Care trece
- platformă
- Popular
- Problemă
- probleme
- proces
- furniza
- furnizează
- întrebare
- repede
- reduce
- reducerea
- cereri de
- necesar
- Resurse
- REST
- REZULTATE
- Alerga
- funcţionare
- Om de stiinta
- oamenii de stiinta
- Caută
- selectate
- set
- simbolizeazã
- simplu
- So
- Software
- de dezvoltare de software
- soluţie
- soluţii
- REZOLVAREA
- Spaţiu
- Începe
- început
- statistic
- depozitare
- Strategie
- a sustine
- Suportat
- Sprijină
- Ţintă
- sarcini
- echipă
- Tehnic
- test
- Prin
- timp
- consumă timp
- Titlu
- Pregătire
- proces
- utilizare
- valoare
- varietate
- în timp ce
- în
- fabrică