AutoGluon-Tabular - Amazon SageMaker

AutoGluon-Tabular

AutoGluon-Tabular est un framework AutoML open source populaire qui entraîne des modèles de Machine Learning très précis sur un jeu de données tabulaire non traité. Contrairement aux frameworks AutoML existants qui se concentrent principalement sur la sélection des modèles et des hyperparamètres, AutoGluon-Tabular réussit en regroupant plusieurs modèles et en les empilant en plusieurs couches.

Utilisation d'AutoGluon-Tabular dans SageMaker

Vous pouvez utiliser AutoGluon-Tabular comme un algorithme intégré dans Amazon SageMaker. La section suivante explique comment utiliser AutoGluon-Tabular avec le kit SDK Python SageMaker. Pour plus d'informations sur l'utilisation d'AutoGluon-Tabular à partir de l'interface utilisateur d'Amazon SageMaker Studio, consultez SageMaker JumpStart.

  • Utilisation d'AutoGluon-Tabular en tant qu'algorithme intégré

    Utilisez l'algorithme intégré AutoGluon-Tabular pour créer un conteneur d'entraînement AutoGluon-Tabular comme indiqué dans l'exemple de code suivant. Vous pouvez repérer automatiquement l'URI d'image de l'algorithme intégré AutoGluon-Tabular à l'aide de l'API image_uris.retrieve SageMaker (ou de l'API get_image_uri si vous utilisez le kit SDK Python pour Amazon SageMaker version 2).

    Après avoir spécifié l'URI d'image AutoGluon-Tabular, vous pouvez utiliser le conteneur AutoGluon-Tabular pour créer un évaluateur à l'aide de l'API SageMaker Estimator et lancer une tâche d'entraînement. L'algorithme intégré AutoGluon-Tabular s'exécute en mode script, mais le script d'entraînement vous est fourni et n'a pas besoin d'être remplacé. Si vous avez une vaste expérience de l'utilisation du mode script pour créer une tâche d'entraînement SageMaker, vous pouvez intégrer vos propres scripts d'entraînement AutoGluon-Tabular.

    from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "autogluon-regression-ensemble", "*", "training" training_instance_type = "ml.p3.2xlarge" # 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 ) train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope ) # Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/tabular_multiclass/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}" output_bucket = sess.default_bucket() output_prefix = "jumpstart-example-tabular-training" s3_output_location = f"s3://{output_bucket}/{output_prefix}/output" from sagemaker import hyperparameters # Retrieve the default hyper-parameters for training the model hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version ) # [Optional] Override default hyperparameters with custom values hyperparameters[ "auto_stack" ] = "True" print(hyperparameters) from sagemaker.estimator import Estimator from sagemaker.utils import name_from_base training_job_name = name_from_base(f"built-in-algo-{train_model_id}-training") # 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 ) # Launch a SageMaker Training job by passing the S3 path of the training data tabular_estimator.fit( {"training": training_dataset_s3_path}, logs=True, job_name=training_job_name )

    Pour plus d'informations sur la configuration d'AutoGluon-Tabular en tant qu'algorithme intégré, consultez les exemples de bloc-notes suivants.

Interface d'entrée/sortie de l'algorithme AutoGluon-Tabular

Le boosting de gradient fonctionne sur les données tabulaires, avec les lignes représentant les observations, une colonne représentant la variable ou l'étiquette cible, et les autres colonnes représentant les fonctions.

L'implémentation SageMaker d'AutoGluon-Tabular prend en charge le format CSV pour l'entraînement et l'inférence :

  • Pour Training ContentType (Type de contenu d'entraînement), les entrées valides doivent être au format texte/csv.

  • Pour Inference ContentType (Type de contenu d'inférence), les entrées valides doivent être au format texte/csv.

Note

Pour l'entraînement CSV, l'algorithme suppose que la variable cible est dans la première colonne et que le CSV n'a pas d'enregistrement d'en-tête.

Pour l'inférence CSV, l'algorithme suppose que l'entrée CSV ne dispose pas de la colonne d'étiquette.

Soyez conscient de la façon de formater vos données d'entraînement pour les entrer dans le modèle AutoGluon-Tabular. Vous devez fournir le chemin d'accès à un compartiment Amazon S3 contenant des sous-répertoires pour vos données d'entraînement et de validation facultative.

  • Format d'entrée des données d'entraînement : vos données d'entraînement doivent être dans un sous-répertoire nommé train/, contenant un fichier data.csv. Les variables cibles doivent figurer dans la première colonne de data.csv. Les variables prédictives (caractéristiques) doivent figurer dans les autres colonnes.

  • Format d'entrée des données de validation : si vous le souhaitez, vous pouvez inclure un autre répertoire nommé validation/, contenant également un fichier data.csv. Les données de validation sont utilisées pour calculer un score de validation à la fin de chaque itération de renforcement. Un arrêt précoce intervient lorsque le score de validation cesse de s'améliorer. Si les données de validation ne sont pas fournies, une fraction de vos données d'entraînement est échantillonnée de façon aléatoire pour servir de données de validation. Cette fraction est sélectionnée en fonction du nombre de lignes dans vos données d'entraînement. Pour plus d'informations, reportez-vous à la prédiction tabulaire dans la documentation sur AutoGluon.

Pour le mode d'entrée de l'entraînement CSV, la mémoire totale disponible pour l'algorithme (nombre d'instances multiplié par la mémoire disponible dans InstanceType) doit pouvoir contenir le jeu de données d'entraînement.

Dans SageMaker, AutoGluon-Tabular utilise le module autogluon.tabular.TabularPredictor pour sérialiser et désérialiser le modèle, qui peut être utilisé pour l'enregistrement et le chargement du modèle.

Pour utiliser un modèle entraîné avec AutoGluon-Tabular dans SageMaker avec le framework AutoGluon
  • Utilisez le code Python suivant :

    import tarfile from autogluon.tabular import TabularPredictor t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = TabularPredictor.load(model_file_path) # prediction with test data # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d pred = model.predict(dtest)

Recommandation d'instance Amazon EC2 pour l'algorithme AutoGluon-Tabular

Dans SageMaker, AutoGluon-Tabular prend en charge l'entraînement CPU à instance unique et l'entraînement GPU à instance unique. Malgré des coûts par instance plus élevés, les GPU entraînent plus rapidement, ce qui les rend plus rentables. Pour tirer parti de l'entraînement GPU, spécifiez le type d'instance comme l'une des instances GPU (par exemple, P3). Actuellement, dans SageMaker, AutoGluon-Tabular ne prend pas en charge l'entraînement multi-GPU.

Exemples de blocs-notes AutoGluon-Tabular

Le tableau suivant présente divers exemples de blocs-notes traitant de différents cas d'utilisation de l'algorithme AutoGluon-Tabular dans Amazon SageMaker.

Titre du bloc-notes Description

Classification tabulaire avec l'algorithme AutoGluon-Tabular dans Amazon SageMaker (Français non garanti)

Ce bloc-notes illustre l'utilisation de l'algorithme AutoGluon-Tabular dans Amazon SageMaker pour entraîner et héberger un modèle de classification tabulaire.

Régression tabulaire avec l'algorithme AutoGluon-Tabular dans Amazon SageMaker (Français non garanti)

Ce bloc-notes illustre l'utilisation de l'algorithme AutoGluon-Tabular dans Amazon SageMaker pour entraîner et héberger un modèle de régression tabulaire.

Pour obtenir des instructions sur la création et l'accès aux instances de bloc-notes Jupyter que vous pouvez utiliser pour exécuter l'exemple dans SageMaker, consultez Utilisation des instances de bloc-notes Amazon SageMaker. Après avoir créé et ouvert une instance de bloc-notes, choisissez l'onglet SageMaker Examples (Exemples SageMaker) pour afficher la liste de tous les exemples SageMaker. Pour ouvrir un bloc-notes, choisissez son onglet Use (Utiliser), puis Create copy (Créer une copie).