En décembre 2020, AWS annoncé la disponibilité générale de Amazon SageMaker JumpStart, une capacité de Amazon Sage Maker qui vous aide à démarrer rapidement et facilement avec l'apprentissage automatique (ML). En mars 2022, nous avons également annoncé la prise en charge des API dans JumpStart. JumpStart permet d'ajuster et de déployer en un clic une grande variété de modèles pré-formés pour les tâches ML courantes, ainsi qu'une sélection de solutions de bout en bout qui résolvent les problèmes commerciaux courants. Ces fonctionnalités suppriment la lourde charge de chaque étape du processus ML, ce qui simplifie le développement de modèles de haute qualité et réduit le temps de déploiement.
Dans cet article, nous montrons comment exécuter le réglage automatique du modèle avec JumpStart.
Réglage automatique du modèle SageMaker
Traditionnellement, les ingénieurs ML mettent en œuvre une méthode d'essai et d'erreur pour trouver le bon ensemble d'hyperparamètres. Les essais et erreurs impliquent l'exécution de plusieurs tâches séquentiellement ou en parallèle tout en provisionnant les ressources nécessaires à l'exécution de l'expérience.
Avec Réglage automatique du modèle SageMaker, les ingénieurs ML et les scientifiques des données peuvent se décharger de la tâche fastidieuse d'optimisation de leur modèle et laisser SageMaker mener l'expérimentation. SageMaker tire parti de l'élasticité de la plate-forme AWS pour exécuter efficacement et simultanément plusieurs simulations de formation sur un ensemble de données et trouver les meilleurs hyperparamètres pour un modèle.
Le réglage automatique du modèle SageMaker trouve la meilleure version d'un modèle en exécutant de nombreuses tâches de formation sur votre ensemble de données à l'aide de l'algorithme et gammes d'hyperparamètres que vous spécifiez. Il choisit ensuite les valeurs d'hyperparamètres qui se traduisent par un modèle qui fonctionne le mieux, tel que mesuré par un métrique que vous choisissez.
Le réglage automatique du modèle utilise soit un Bayésien (par défaut) ou un aléatoire stratégie de recherche pour trouver les meilleures valeurs pour les hyperparamètres. La recherche bayésienne traite le réglage des hyperparamètres comme un régression problème. Lors du choix des meilleurs hyperparamètres pour le prochain travail de formation, il prend en compte tout ce qu'il sait sur le problème jusqu'à présent et permet à l'algorithme d'exploiter les résultats les plus connus.
Dans cet article, nous utilisons la stratégie de recherche bayésienne par défaut pour démontrer les étapes impliquées dans l'exécution du réglage automatique du modèle avec JumpStart à l'aide de la LumièreGBM .
JumpStart prend actuellement en charge 10 exemples d'ordinateurs portables avec réglage automatique du modèle. Il prend également en charge quatre algorithmes populaires pour la modélisation de données tabulaires. Les tâches et les liens vers leurs exemples de blocs-notes sont résumés dans le tableau suivant.
Vue d'ensemble de la solution
Ce flux de travail technique donne un aperçu des différentes fonctionnalités et étapes d'Amazon Sagemaker nécessaires pour régler automatiquement un modèle JumpStart.
Dans les sections suivantes, nous fournissons une procédure pas à pas pour exécuter le réglage automatique du modèle avec JumpStart à l'aide de l'algorithme LightGBM. Nous vous proposons un accompagnement cahier pour cette procédure pas à pas.
Nous suivons les étapes de haut niveau suivantes :
- Récupérez le modèle pré-formé JumpStart et le conteneur d'images.
- Définissez des hyperparamètres statiques.
- Définissez les plages d'hyperparamètres réglables.
- Initialiser le réglage automatique du modèle.
- Exécutez la tâche de réglage.
- Déployez le meilleur modèle sur un point de terminaison.
Récupérer le modèle pré-formé JumpStart et le conteneur d'images
Dans cette section, nous choisissons le modèle de classification LightGBM pour un réglage fin. Nous utilisons le type d'instance ml.m5.xlarge sur lequel le modèle est exécuté. Nous récupérons ensuite le conteneur Docker de formation, la source de l'algorithme de formation et le modèle pré-formé. Voir le code suivant :
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
)
Définir des hyperparamètres statiques
Nous récupérons maintenant les hyperparamètres par défaut pour ce modèle LightGBM, tels que préconfigurés par JumpStart. Nous remplaçons également le num_boost_round
hyperparamètre avec une valeur personnalisée.
# 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
Définir les plages d'hyperparamètres ajustables
Ensuite, nous définissons les plages d'hyperparamètres comme étant optimisé par le réglage automatique du modèle. Nous définissons le nom de l'hyperparamètre tel qu'attendu par le modèle, puis les plages de valeurs à essayer pour cet hyperparamètre. Le réglage automatique du modèle prélève des échantillons (égaux au max_jobs
paramètre) à partir de l'espace des hyperparamètres, en utilisant une technique appelée recherche bayésienne. Pour chaque échantillon d'hyperparamètre dessiné, le tuner crée une tâche d'entraînement pour évaluer le modèle avec cette configuration. Voir le code suivant :
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),
}
Initialiser le réglage automatique du modèle
Nous commençons par créer un Estimateur objet avec tous les actifs requis qui définissent la tâche de formation, tels que le modèle pré-formé, l'image de formation et le script de formation. On définit alors un HyperparameterTuner objet pour interagir avec les API de réglage d'hyperparamètres SageMaker.
Les HyperparameterTuner
accepte comme paramètres l'objet Estimator, la métrique cible sur la base de laquelle le meilleur ensemble d'hyperparamètres est décidé, le nombre total de tâches d'entraînement (max_jobs
) pour démarrer la tâche de réglage d'hyperparamètres et le nombre maximal de tâches d'entraînement parallèles à exécuter (max_parallel_jobs
). Les tâches de formation sont exécutées avec l'algorithme LightGBM et les valeurs d'hyperparamètres qui ont le minimum mlogloss
la métrique est choisie. Pour plus d'informations sur la configuration du réglage automatique du modèle, voir Meilleures pratiques pour le réglage des hyperparamètres.
# 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,
)
Dans le code précédent, nous disons au tuner d'exécuter au plus 10 expériences (max_jobs
) et seulement deux expériences simultanées à la fois (max_parallel_jobs
). Ces deux paramètres permettent de contrôler vos coûts et votre temps de formation.
Exécutez la tâche de réglage
Pour lancer la tâche de réglage SageMaker, nous appelons la méthode d'ajustement de l'objet tuner d'hyperparamètres et transmettons le Service de stockage simple Amazon (Amazon S3) chemin des données d'entraînement :
tuner.fit({"training": training_dataset_s3_path}, logs=True)
Pendant que le réglage automatique du modèle recherche les meilleurs hyperparamètres, vous pouvez surveiller leur progression soit sur la console SageMaker, soit sur Amazon Cloud Watch. Lorsque la formation est terminée, les artefacts affinés du meilleur modèle sont téléchargés vers l'emplacement de sortie Amazon S3 spécifié dans la configuration de la formation.
Déployer le meilleur modèle sur un point de terminaison
Une fois la tâche de réglage terminée, le meilleur modèle a été sélectionné et stocké dans Amazon S3. Nous pouvons maintenant déployer ce modèle en appelant la méthode de déploiement du HyperparameterTuner
objet et en transmettant les paramètres nécessaires, tels que le nombre d'instances à utiliser pour le point de terminaison créé, leur type, l'image à déployer et le script à exécuter :
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
)
Nous pouvons maintenant tester le point de terminaison créé en effectuant des requêtes d'inférence. Vous pouvez suivre le reste du processus dans l'accompagnement cahier.
Conclusion
Avec le réglage automatique du modèle dans SageMaker, vous pouvez trouver la meilleure version de votre modèle en exécutant des tâches de formation sur l'ensemble de données fourni avec l'un des algorithmes pris en charge. Le réglage automatique du modèle vous permet de réduire le temps de réglage d'un modèle en recherchant automatiquement la meilleure configuration d'hyperparamètres dans les plages d'hyperparamètres que vous spécifiez.
Dans cet article, nous avons montré l'intérêt d'exécuter le réglage automatique du modèle sur un modèle pré-formé JumpStart à l'aide des API SageMaker. Nous avons utilisé l'algorithme LightGBM et défini un maximum de 10 tâches d'entraînement. Nous avons également fourni des liens vers des exemples de blocs-notes présentant les frameworks ML qui prennent en charge l'optimisation du modèle JumpStart.
Pour plus de détails sur l'optimisation d'un modèle JumpStart avec le réglage automatique du modèle, reportez-vous à notre exemple cahier.
À propos de l’auteur
Doug Mbaya est un architecte de solution partenaire principal spécialisé dans les données et l'analyse. Doug travaille en étroite collaboration avec les partenaires AWS, les aidant à intégrer la solution de données et d'analyse dans le cloud.
Kruthi Jayasimha Rao est Partner Solutions Architect au sein de l'équipe Scale-PSA. Kruthi réalise des validations techniques pour les Partenaires leur permettant de progresser dans le Parcours Partenaire.
Giannis Mitropoulos est un ingénieur en développement logiciel pour SageMaker Réglage automatique du modèle.
Dr Ashish Khetan est un scientifique appliqué senior avec Amazon SageMaker JumpStart ainsi que le Algorithmes intégrés d'Amazon SageMaker et aide à développer des algorithmes d'apprentissage automatique. Il est un chercheur actif en apprentissage automatique et en inférence statistique et a publié de nombreux articles dans les conférences NeurIPS, ICML, ICLR, JMLR et ACL.
- "
- 10
- 100
- 2020
- 2022
- Qui sommes-nous
- à travers
- infection
- Avantage
- algorithme
- algorithmes
- Tous
- Amazon
- analytique
- Apis
- Outils
- Automatique
- disponibilité
- AWS
- LES MEILLEURS
- intégré
- la performance des entreprises
- Appelez-nous
- Selectionnez
- choisi
- classification
- le cloud
- code
- Commun
- conférences
- configuration
- considère
- Console
- Contenant
- des bactéries
- engendrent
- créée
- crée des
- La création
- Lecture
- Customiser
- données
- décidé
- démontrer
- déployer
- déployé
- déploiement
- détails
- développer
- Développement
- différent
- Docker
- même
- efficacement
- permettant
- Endpoint
- ingénieur
- Les ingénieurs
- évaluer
- peut
- exemple
- attendu
- expérience
- Exploiter
- Fonctionnalités:
- trouve
- s'adapter
- Focus
- suivre
- Abonnement
- plus
- Général
- la taille
- aider
- aide
- de haute qualité
- Comment
- How To
- HTTPS
- image
- Mettre en oeuvre
- d'information
- intégrer
- impliqué
- IT
- Emploi
- Emplois
- lancer
- apprentissage
- lifting
- Gauche
- emplacement
- click
- machine learning
- Fabrication
- Mars
- ML
- modèle
- numériques jumeaux (digital twin models)
- Surveiller
- PLUS
- (en fait, presque toutes)
- plusieurs
- nombre
- à mettre en œuvre pour gérer une entreprise rentable. Ce guide est basé sur trois décennies d'expérience
- Optimiser
- l'optimisation
- les partenaires
- partenaires,
- En passant
- plateforme
- Populaire
- Problème
- d'ouvrabilité
- processus
- fournir
- fournit
- question
- vite.
- réduire
- réduire
- demandes
- conditions
- Ressources
- REST
- Résultats
- Courir
- pour le running
- Scientifique
- scientifiques
- Rechercher
- choisi
- set
- mettre en valeur
- étapes
- So
- Logiciels
- développement de logiciels
- sur mesure
- Solutions
- RÉSOUDRE
- Space
- Commencer
- j'ai commencé
- statistique
- storage
- de Marketing
- Support
- Appareils
- Les soutiens
- Target
- tâches
- équipe
- Technique
- tester
- Avec
- fiable
- long
- Titre
- Formation
- procès
- utilisé
- Plus-value
- variété
- tout en
- dans les
- vos contrats