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.
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.
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:
- Haal de vooraf getrainde model- en afbeeldingencontainer van JumpStart op.
- Stel statische hyperparameters in.
- Definieer de afstembare hyperparameterbereiken.
- Initialiseer de automatische modelafstemming.
- Voer de afstemmingstaak uit.
- 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
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.
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.
Giannis Mitropoulos is een Software Development Engineer voor SageMaker Automatische afstemming van modellen.
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.
- "
- 10
- 100
- 2020
- 2022
- Over
- over
- actieve
- Voordeel
- algoritme
- algoritmen
- Alles
- Amazone
- analytics
- APIs
- Activa
- Automatisch
- beschikbaarheid
- AWS
- BEST
- ingebouwd
- bedrijfsdeskundigen
- Bellen
- Kies
- uitgekozen
- classificatie
- Cloud
- code
- Gemeen
- conferenties
- Configuratie
- beschouwt
- troosten
- Containers
- onder controle te houden
- en je merk te creรซren
- aangemaakt
- creรซert
- Wij creรซren
- Op dit moment
- gewoonte
- gegevens
- beslist
- tonen
- implementeren
- ingezet
- inzet
- gegevens
- ontwikkelen
- Ontwikkeling
- anders
- havenarbeider
- gemakkelijk
- efficiรซnt
- waardoor
- Endpoint
- ingenieur
- Ingenieurs
- schatten
- alles
- voorbeeld
- verwacht
- experiment
- Exploiteren
- Voordelen
- vondsten
- geschikt
- Focus
- volgen
- volgend
- verder
- Algemeen
- Hoogte
- het helpen van
- helpt
- hoogwaardige
- Hoe
- How To
- HTTPS
- beeld
- uitvoeren
- informatie
- integreren
- betrokken zijn
- IT
- Jobomschrijving:
- Vacatures
- lancering
- leren
- facelift
- links
- plaats
- machine
- machine learning
- maken
- Maart
- ML
- model
- modellen
- monitor
- meer
- meest
- meervoudig
- aantal
- optimalisatie
- Optimaliseer
- optimaliseren
- partner
- partners
- Voorbijgaand
- platform
- Populair
- probleem
- problemen
- zorgen voor
- biedt
- vraag
- snel
- verminderen
- vermindering
- verzoeken
- nodig
- Resources
- REST
- Resultaten
- lopen
- lopend
- Wetenschapper
- wetenschappers
- Ontdek
- gekozen
- reeks
- presentatie
- Eenvoudig
- So
- Software
- software development
- oplossing
- Oplossingen
- OPLOSSEN
- Tussenruimte
- begin
- gestart
- statistisch
- mediaopslag
- Strategie
- ondersteuning
- ondersteunde
- steunen
- doelwit
- taken
- team
- Technisch
- proef
- Door
- niet de tijd of
- tijdrovend
- Titel
- Trainingen
- proces
- .
- waarde
- variรซteit
- en
- binnen
- Bedrijven