AutoGluon-Tabular
AutoGluon-Tabular
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'APIget_image_uri
si vous utilisez le kit SDK Python pour Amazon SageMakerversion 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.
-
Classification tabulaire avec l'algorithme AutoGluon-Tabular dans Amazon SageMaker
(Français non garanti) -
Régression tabulaire avec l'algorithme AutoGluon-Tabular dans Amazon SageMaker
(Français non garanti)
-
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.
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 fichierdata.csv
. Les variables cibles doivent figurer dans la première colonne dedata.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 fichierdata.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 tabulairedans 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 |
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 |
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).