Rulați reglarea automată a modelului cu Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Rulați reglarea automată a modelului cu Amazon SageMaker JumpStart

Î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.

Sarcină Modele pre-antrenate Suportă set de date personalizate Cadre acceptate Caiete de exemplu
Clasificarea imaginilor da da PyTorch, TensorFlow Introducere în JumpStart – Clasificarea imaginilor
Detectarea obiectelor da da PyTorch, TensorFlow, MXNet Introducere în JumpStart – Detectarea obiectelor
Segmentarea semantică da da MX Net Introducere în JumpStart – Segmentarea semantică
Clasificarea textului da da TensorFlow Introducere în JumpStart – Clasificarea textului
Clasificarea perechilor de propoziții da da TensorFlow, Față îmbrățișată Introducere în JumpStart – Clasificarea perechilor de propoziții
Răspuns la întrebare da da PyTorch Introducere în JumpStart – Răspunsuri la întrebări
Clasificare tabelară da da LightGBM, CatBoost, XGBoost, Linear Learner Introducere în JumpStart – Clasificare tabelară – LightGBM, CatBoost
Introducere în JumpStart – Clasificare tabelară – XGBoost, Linear Learner
Regresie tabelară da da LightGBM, CatBoost, XGBoost, Linear Learner Introducere în JumpStart – Regresie tabulară – LightGBM, CatBoost
Introducere în JumpStart – Regresie tabulară – XGBoost, Linear Learner

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.

Rulați reglarea automată a modelului cu Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Î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:

  1. Preluați modelul pre-antrenat JumpStart și containerul de imagini.
  2. Setați hiperparametrii statici.
  3. Definiți intervalele de hiperparametri reglabile.
  4. Inițializați reglarea automată a modelului.
  5. Rulați lucrarea de reglare.
  6. 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

Rulați reglarea automată a modelului cu Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.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.

Rulați reglarea automată a modelului cu Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.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.

Rulați reglarea automată a modelului cu Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Giannis Mitropoulos este inginer de dezvoltare software pentru SageMaker Reglare automată a modelului.

Rulați reglarea automată a modelului cu Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.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.

Timestamp-ul:

Mai mult de la Învățare automată AWS