Voer automatische modelafstemming uit met Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Voer automatische modelafstemming uit met Amazon SageMaker JumpStart

In december 2020, AWS aangekondigd de algemene beschikbaarheid van Amazon SageMaker JumpStart, een vermogen van Amazon Sage Maker waarmee je snel en eenvoudig aan de slag gaat met machine learning (ML). In maart 2022 hebben we ook aangekondigd de ondersteuning voor API's in JumpStart. JumpStart biedt fijnafstemming en implementatie met รฉรฉn klik van een breed scala aan vooraf getrainde modellen voor populaire ML-taken, evenals een selectie van end-to-end-oplossingen die veelvoorkomende zakelijke problemen oplossen. Deze functies verwijderen het zware werk van elke stap van het ML-proces, waardoor het eenvoudiger wordt om hoogwaardige modellen te ontwikkelen en de implementatietijd te verkorten.

In dit bericht laten we zien hoe u automatische modelafstemming kunt uitvoeren met JumpStart.

Automatische afstemming van SageMaker-modellen

Traditioneel implementeren ML-ingenieurs een methode van vallen en opstaan โ€‹โ€‹om de juiste set hyperparameters te vinden. Trial-and-error houdt in dat meerdere taken achter elkaar of parallel worden uitgevoerd, terwijl de resources worden ingericht die nodig zijn om het experiment uit te voeren.

met Automatische afstemming van SageMaker-modellenkunnen ML-ingenieurs en datawetenschappers de tijdrovende taak van het optimaliseren van hun model uit handen nemen en SageMaker de experimenten laten uitvoeren. SageMaker maakt gebruik van de elasticiteit van het AWS-platform om efficiรซnt en gelijktijdig meerdere trainingssimulaties op een dataset uit te voeren en de beste hyperparameters voor een model te vinden.

SageMaker automatische modelafstemming vindt de beste versie van een model door veel trainingstaken op uw dataset uit te voeren met behulp van het algoritme en ranges van hyperparameters die u opgeeft. Vervolgens kiest het de hyperparameterwaarden die resulteren in een model dat het beste presteert, zoals gemeten door a metriek dat je kiest.

Automatische modelafstemming maakt gebruik van ofwel a Bayesian (standaard) of a willekeurige zoekstrategie om de beste waarden voor hyperparameters te vinden. Bayesiaans zoeken behandelt hyperparameter-afstemming als a regressie probleem. Bij het kiezen van de beste hyperparameters voor de volgende trainingstaak, houdt het rekening met alles wat het tot nu toe weet over het probleem en laat het het algoritme de bekendste resultaten benutten.

In dit bericht gebruiken we de standaard Bayesiaanse zoekstrategie om de stappen te demonstreren die betrokken zijn bij het uitvoeren van automatische modelafstemming met JumpStart met behulp van de LichtGBM model.

JumpStart ondersteunt momenteel 10 voorbeeldnotebooks met automatische modelafstemming. Het ondersteunt ook vier populaire algoritmen voor gegevensmodellering in tabelvorm. De taken en koppelingen naar hun voorbeeldnotitieblokken zijn samengevat in de volgende tabel.

Taak Voorgetrainde modellen Ondersteunt aangepaste dataset Ondersteunde frameworks Voorbeeld notebooks
Afbeeldingsclassificatie ja ja PyTorch, TensorFlow Inleiding tot JumpStart โ€“ Beeldclassificatie
Objectdetectie ja ja PyTorch, TensorFlow, MXNet Inleiding tot JumpStart โ€“ Objectdetectie
Semantische segmentatie ja ja MXNet Inleiding tot JumpStart โ€“ Semantische segmentatie
Tekstclassificatie ja ja TensorFlow Inleiding tot JumpStart โ€“ Tekstclassificatie
Classificatie van zinsparen ja ja TensorFlow, knuffelend gezicht Inleiding tot JumpStart โ€“ Classificatie van zinsparen
Vraag beantwoorden ja ja PyTorch Inleiding tot JumpStart - Vragen beantwoorden
Classificatie in tabelvorm ja ja LightGBM, CatBoost, XGBoost, Lineaire leerling Inleiding tot JumpStart โ€“ Classificatie in tabelvorm โ€“ LightGBM, CatBoost
Inleiding tot JumpStart โ€“ Classificatie in tabelvorm โ€“ XGBoost, lineaire leerling
Tabelregressie ja ja LightGBM, CatBoost, XGBoost, Lineaire leerling Inleiding tot JumpStart - Tabelregressie - LightGBM, CatBoost
Inleiding tot JumpStart - Tabelregressie - XGBoost, lineaire leerling

Overzicht oplossingen

Deze technische workflow geeft een overzicht van de verschillende Amazon Sagemaker-functies en stappen die nodig zijn om automatisch een JumpStart-model af te stemmen.

Voer automatische modelafstemming uit met Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

In de volgende secties bieden we een stapsgewijze uitleg van hoe u automatische modelafstemming kunt uitvoeren met JumpStart met behulp van het LightGBM-algoritme. Wij zorgen voor een begeleidend notitieboekje voor deze uitleg.

We doorlopen de volgende stappen op hoog niveau:

  1. Haal de vooraf getrainde model- en afbeeldingencontainer van JumpStart op.
  2. Stel statische hyperparameters in.
  3. Definieer de afstembare hyperparameterbereiken.
  4. Initialiseer de automatische modelafstemming.
  5. Voer de afstemmingstaak uit.
  6. Implementeer het beste model op een eindpunt.

De voorgetrainde model- en afbeeldingencontainer van JumpStart ophalen

In deze sectie kiezen we het LightGBM-classificatiemodel voor fine-tuning. We gebruiken het instantietype ml.m5.xlarge waarop het model wordt uitgevoerd. Vervolgens halen we de training Docker-container, de bron van het trainingsalgoritme en het vooraf getrainde model op. Zie de volgende code:

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
)

Statische hyperparameters instellen

We halen nu de standaard hyperparameters voor dit LightGBM-model op, zoals vooraf geconfigureerd door JumpStart. We overschrijven ook de num_boost_round hyperparameter met een aangepaste waarde.

# 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

Definieer de afstembare hyperparameterbereiken

Vervolgens definiรซren we de hyperparameterbereiken die moeten worden geoptimaliseerd door automatische modelafstemming. We definiรซren de naam van de hyperparameter zoals verwacht door het model en vervolgens de reeksen van waarden die voor deze hyperparameter moeten worden geprobeerd. Automatische modelafstemming trekt samples (gelijk aan de max_jobs parameter) vanuit de ruimte van hyperparameters, met behulp van een techniek die Bayesiaans zoeken wordt genoemd. Voor elk getrokken hyperparametermonster maakt de tuner een trainingstaak om het model met die configuratie te evalueren. Zie de volgende code:

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),
}

De automatische modelafstemming initialiseren

We beginnen met het maken van een Taxateur object met alle benodigde middelen die de trainingstaak definiรซren, zoals het vooraf getrainde model, de trainingsafbeelding en het trainingsscript. We definiรซren dan a HyperparameterTuner object om te communiceren met SageMaker-API's voor het afstemmen van hyperparameters.

De HyperparameterTuner accepteert als parameters het Estimator-object, de doelmetriek op basis waarvan de beste set hyperparameters wordt bepaald, het totale aantal trainingstaken (max_jobs) om te starten voor de hyperparameter-afstemmingstaak en de maximale parallelle trainingstaken die moeten worden uitgevoerd (max_parallel_jobs). Trainingstaken worden uitgevoerd met het LightGBM-algoritme en de hyperparameterwaarden met de minimale mlogloss metriek wordt gekozen. Voor meer informatie over het configureren van automatische modelafstemming, zie Best practices voor het afstemmen van hyperparameters.

# 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,
)

In de voorgaande code vertellen we de tuner om maximaal 10 experimenten uit te voeren (max_jobs) en slechts twee gelijktijdige experimenten tegelijk (max_parallel_jobs). Beide parameters houden uw kosten en trainingstijd onder controle.

Voer de afstemmingstaak uit

Om de afstemmingstaak van SageMaker te starten, roepen we de fit-methode van het hyperparameter-tunerobject aan en geven de Amazon eenvoudige opslagservice (Amazon S3) pad van de trainingsgegevens:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

Terwijl automatisch afstemmen van modellen naar de beste hyperparameters zoekt, kunt u hun voortgang volgen op de SageMaker-console of op Amazon Cloud Watch. Wanneer de training is voltooid, worden de nauwkeurig afgestemde artefacten van het beste model geรผpload naar de Amazon S3-uitvoerlocatie die is opgegeven in de trainingsconfiguratie.

Het beste model implementeren op een eindpunt

Wanneer de afstemmingsopdracht is voltooid, is het beste model geselecteerd en opgeslagen in Amazon S3. We kunnen dat model nu implementeren door de implementatiemethode van de aan te roepen HyperparameterTuner object en het doorgeven van de benodigde parameters, zoals het aantal instanties dat moet worden gebruikt voor het gemaakte eindpunt, hun type, de te implementeren afbeelding en het uit te voeren script:

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
)

We kunnen het gemaakte eindpunt nu testen door gevolgtrekkingsverzoeken te doen. De rest van het proces kun je volgen in de bijgevoegde notitieboekje.

Conclusie

Met automatische modelafstemming in SageMaker kunt u de beste versie van uw model vinden door trainingstaken uit te voeren op de verstrekte dataset met een van de ondersteunde algoritmen. Met automatische modelafstemming kunt u de tijd voor het afstemmen van een model verkorten door automatisch te zoeken naar de beste hyperparameterconfiguratie binnen de hyperparameterbereiken die u opgeeft.

In dit bericht hebben we de waarde laten zien van het uitvoeren van automatische modelafstemming op een vooraf getraind JumpStart-model met behulp van SageMaker API's. We gebruikten het LightGBM-algoritme en definieerden maximaal 10 opleidingstaken. We hebben ook links gegeven naar voorbeeldnotitieblokken waarin de ML-frameworks worden getoond die JumpStart-modeloptimalisatie ondersteunen.

Raadpleeg ons voorbeeld voor meer informatie over het optimaliseren van een JumpStart-model met automatische modelafstemming notitieboekje.


Over de auteur

Voer automatische modelafstemming uit met Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Doug Mbaya is een Senior Partner Solution architect met een focus op data en analytics. Doug werkt nauw samen met AWS-partners en helpt hen data- en analyseoplossingen in de cloud te integreren.

Voer automatische modelafstemming uit met Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Kruthi Jayasimha Rao is Partner Solutions Architect in het Scale-PSA-team. Kruthi voert technische validaties uit voor Partners, waardoor ze vooruitgang kunnen boeken in het Partner Path.

Voer automatische modelafstemming uit met Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Giannis Mitropoulos is een Software Development Engineer voor SageMaker Automatische afstemming van modellen.

Voer automatische modelafstemming uit met Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Dr Ashish Khetan is een Senior Applied Scientist met Amazon SageMaker JumpStart en Ingebouwde algoritmen van Amazon SageMaker en helpt bij het ontwikkelen van algoritmen voor machine learning. Hij is een actief onderzoeker op het gebied van machine learning en statistische inferentie en heeft veel artikelen gepubliceerd op NeurIPS-, ICML-, ICLR-, JMLR- en ACL-conferenties.

Tijdstempel:

Meer van AWS-machine learning