Intelligence de données générative

Nouveaux algorithmes Amazon SageMaker intégrés pour la modélisation de données tabulaires : LightGBM, CatBoost, AutoGluon-Tabular et TabTransformer

Date :

Amazon Sage Maker offre une suite de algorithmes intégrés, modèles pré-entraînéset modèles de solutions prédéfinis pour aider les scientifiques des données et les praticiens de l'apprentissage automatique (ML) à démarrer rapidement la formation et le déploiement de modèles ML. Vous pouvez utiliser ces algorithmes et modèles pour l'apprentissage supervisé et non supervisé. Ils peuvent traiter différents types de données d'entrée, notamment des tableaux, des images et du texte.

À partir d'aujourd'hui, SageMaker fournit quatre nouveaux algorithmes de modélisation de données tabulaires intégrés : LightGBM, CatBoost, AutoGluon-Tabular et TabTransformer. Vous pouvez utiliser ces algorithmes de pointe populaires pour les tâches de classification tabulaire et de régression. Ils sont disponibles via le algorithmes intégrés sur la console SageMaker ainsi que via le Amazon SageMaker JumpStart Interface utilisateur à l'intérieur Amazon SageMakerStudio.

Voici la liste des quatre nouveaux algorithmes intégrés, avec des liens vers leur documentation, des exemples de cahiers et la source.

Dans les sections suivantes, nous fournissons une brève description technique de chaque algorithme et des exemples de formation d'un modèle via le SDK SageMaker ou SageMaker Jumpstart.

LumièreGBM

LumièreGBM est une implémentation open source populaire et efficace de l'algorithme Gradient Boosting Decision Tree (GBDT). GBDT est un algorithme d'apprentissage supervisé qui tente de prédire avec précision une variable cible en combinant un ensemble d'estimations à partir d'un ensemble de modèles plus simples et plus faibles. LightGBM utilise des techniques supplémentaires pour améliorer considérablement l'efficacité et l'évolutivité du GBDT conventionnel.

ChatBoost

ChatBoost est une implémentation open source populaire et performante de l'algorithme GBDT. Deux avancées algorithmiques critiques sont introduites dans CatBoost : la mise en œuvre du boosting ordonné, une alternative basée sur la permutation à l'algorithme classique, et un algorithme innovant pour le traitement des caractéristiques catégorielles. Les deux techniques ont été créées pour lutter contre un changement de prédiction causé par un type particulier de fuite de cible présent dans toutes les implémentations existantes d'algorithmes d'amplification de gradient.

AutoGluon-Tableau

AutoGluon-Tableau est un projet AutoML open source développé et maintenu par Amazon qui effectue un traitement avancé des données, un apprentissage en profondeur et un assemblage de piles multicouches. Il reconnaît automatiquement le type de données dans chaque colonne pour un prétraitement des données robuste, y compris une gestion spéciale des champs de texte. AutoGluon s'adapte à divers modèles allant des arbres boostés prêts à l'emploi aux modèles de réseaux neuronaux personnalisés. Ces modèles sont regroupés d'une nouvelle manière : les modèles sont empilés en plusieurs couches et formés d'une manière couche par couche qui garantit que les données brutes peuvent être traduites en prédictions de haute qualité dans une contrainte de temps donnée. Le surajustement est atténué tout au long de ce processus en divisant les données de différentes manières avec un suivi minutieux des exemples hors pli. AutoGluon est optimisé pour les performances et son utilisation prête à l'emploi a atteint plusieurs positions parmi les 3 et 10 premières dans les compétitions de science des données.

TabTransformateur

TabTransformateur est une nouvelle architecture de modélisation de données tabulaires profondes pour l'apprentissage supervisé. Le TabTransformer est construit sur des transformateurs basés sur l'attention personnelle. Les couches Transformer transforment les intégrations de caractéristiques catégorielles en intégrations contextuelles robustes pour obtenir une précision de prédiction plus élevée. De plus, les incorporations contextuelles apprises de TabTransformer sont très robustes contre les fonctionnalités de données manquantes et bruyantes, et offrent une meilleure interprétabilité. Ce modèle est le produit de la récente Sciences amazoniennes recherche (papier et officiel blog récents ici) et a été largement adopté par la communauté ML, avec diverses implémentations tierces (KerasAutoGluon,) et des fonctionnalités de médias sociaux telles que tweetsversdatascience, moyen et Kaggle.

Avantages des algorithmes intégrés de SageMaker

Lors de la sélection d'un algorithme pour votre type particulier de problème et de données, l'utilisation d'un algorithme intégré SageMaker est l'option la plus simple, car cela présente les principaux avantages suivants :

  • Les algorithmes intégrés ne nécessitent aucun codage pour commencer à exécuter des expériences. Les seules entrées que vous devez fournir sont les données, les hyperparamètres et les ressources de calcul. Cela vous permet d'exécuter des expériences plus rapidement, avec moins de surcharge pour le suivi des résultats et des modifications de code.
  • Les algorithmes intégrés sont livrés avec une parallélisation sur plusieurs instances de calcul et une prise en charge GPU prête à l'emploi pour tous les algorithmes applicables (certains algorithmes peuvent ne pas être inclus en raison de limitations inhérentes). Si vous avez beaucoup de données avec lesquelles former votre modèle, la plupart des algorithmes intégrés peuvent facilement évoluer pour répondre à la demande. Même si vous avez déjà un modèle pré-formé, il peut toujours être plus facile d'utiliser son corollaire dans SageMaker et d'entrer les hyperparamètres que vous connaissez déjà plutôt que de le transférer et d'écrire vous-même un script de formation.
  • Vous êtes le propriétaire des artefacts de modèle résultants. Vous pouvez prendre ce modèle et le déployer sur SageMaker pour plusieurs modèles d'inférence différents (consultez tous les types de déploiement disponibles) et une mise à l'échelle et une gestion faciles des terminaux, ou vous pouvez le déployer partout où vous en avez besoin.

Voyons maintenant comment entraîner l'un de ces algorithmes intégrés.

Former un algorithme intégré à l'aide du SDK SageMaker

Pour former un modèle sélectionné, nous devons obtenir l'URI de ce modèle, ainsi que celui du script de formation et de l'image de conteneur utilisée pour la formation. Heureusement, ces trois entrées dépendent uniquement du nom du modèle, de la version (pour une liste des modèles disponibles, voir Tableau des modèles JumpStart disponibles) et le type d'instance sur laquelle vous souhaitez vous entraîner. Ceci est démontré dans l'extrait de code suivant :

from sagemaker import image_uris, model_uris, script_uris

train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
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 model artifact; in the tabular case, the model is not pre-trained 
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

La train_model_id change à lightgbm-regression-model s'il s'agit d'un problème de régression. Les identifiants de tous les autres modèles présentés dans cet article sont répertoriés dans le tableau suivant.

Modèle Type de problème ID du modèle
LumièreGBM Classification lightgbm-classification-model
. Régression lightgbm-regression-model
ChatBoost Classification catboost-classification-model
. Régression catboost-regression-model
AutoGluon-Tableau Classification autogluon-classification-ensemble
. Régression autogluon-regression-ensemble
TabTransformateur Classification pytorch-tabtransformerclassification-model
. Régression pytorch-tabtransformerregression-model

Nous définissons ensuite où se trouve notre entrée Service de stockage simple Amazon (Amazon S3). Nous utilisons un exemple de jeu de données public pour cet exemple. Nous définissons également où nous voulons que notre sortie aille et récupérons la liste par défaut des hyperparamètres nécessaires pour former le modèle sélectionné. Vous pouvez modifier leur valeur à votre convenance.

import sagemaker
from sagemaker import hyperparameters

sess = sagemaker.Session()
region = sess.boto_session.region_name

# URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/"

# URI for output artifacts 
output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output"

# Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)

# [Optional] Override default hyperparameters with custom values
hyperparameters[
    "num_boost_round"
] = "500"  # The same hyperparameter is named as "iterations" for CatBoost

Enfin, nous instancions un SageMaker Estimator avec toutes les entrées récupérées et lancez la tâche d'entraînement avec .fit, en lui transmettant notre URI d'ensemble de données d'entraînement. La entry_point le script fourni est nommé transfer_learning.py (identique pour les autres tâches et algorithmes), et le canal de données d'entrée transmis à .fit doit être nommé training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base

# Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}")

# Create SageMaker Estimator instance
tc_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 s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Notez que vous pouvez former des algorithmes intégrés avec Réglage automatique du modèle SageMaker pour sélectionner les hyperparamètres optimaux et améliorer encore les performances du modèle.

Former un algorithme intégré à l'aide de SageMaker JumpStart

Vous pouvez également entraîner ces algorithmes intégrés en quelques clics via l'interface utilisateur SageMaker JumpStart. JumpStart est une fonctionnalité SageMaker qui vous permet de former et de déployer des algorithmes intégrés et des modèles pré-formés à partir de divers frameworks ML et hubs de modèles via une interface graphique. Il vous permet également de déployer des solutions ML à part entière qui associent des modèles ML et divers autres services AWS pour résoudre un cas d'utilisation ciblé.

Pour plus d'informations, reportez-vous à Exécutez la classification de texte avec Amazon SageMaker JumpStart à l'aide des modèles TensorFlow Hub et Hugging Face.

Conclusion

Dans cet article, nous avons annoncé le lancement de quatre nouveaux algorithmes intégrés puissants pour le ML sur des ensembles de données tabulaires désormais disponibles sur SageMaker. Nous avons fourni une description technique de ces algorithmes, ainsi qu'un exemple de tâche de formation pour LightGBM utilisant le SDK SageMaker.

Apportez votre propre ensemble de données et essayez ces nouveaux algorithmes sur SageMaker, et consultez les exemples de blocs-notes pour utiliser les algorithmes intégrés disponibles sur GitHub.


À propos des auteurs

Dr Xin Huang est un scientifique appliqué pour Amazon SageMaker JumpStart et les algorithmes intégrés d'Amazon SageMaker. Il se concentre sur le développement d'algorithmes d'apprentissage automatique évolutifs. Ses intérêts de recherche portent sur le traitement du langage naturel, l'apprentissage en profondeur explicable sur des données tabulaires et l'analyse robuste du clustering spatio-temporel non paramétrique. Il a publié de nombreux articles dans les conférences ACL, ICDM, KDD et Royal Statistical Society: Series A journal.

Dr Ashish Khetan est un scientifique appliqué senior avec Amazon SageMaker JumpStart et les 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, ACL et EMNLP.

Joao Moura est architecte de solutions spécialisées en IA/ML chez Amazon Web Services. Il se concentre principalement sur les cas d'utilisation du NLP et aide les clients à optimiser la formation et le déploiement des modèles de Deep Learning. Il est également un partisan actif des solutions ML low-code et du matériel spécialisé ML.

spot_img

Dernières informations

spot_img

Discutez avec nous

Salut! Comment puis-je t'aider?