View a markdown version of this page

Algorithme XGBoost avec Amazon AI SageMaker - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Algorithme XGBoost avec Amazon AI SageMaker

XGBoost (eXtreme Gradient Boosting) est une implémentation open source réputée et efficace de l’algorithme d’arborescences de renforcement de gradient. Le renforcement de gradient est un algorithme d’apprentissage supervisé qui essaie de prédire avec précision une variable cible en combinant plusieurs estimations d’un ensemble de modèles plus simples. L’algorithme XGBoost fonctionne bien dans les compétitions de machine learning pour les raisons suivantes :

  • Son traitement robuste de divers types de données, de relations et de distributions.

  • La variété des hyperparamètres que vous pouvez optimiser.

Vous pouvez utiliser XGBoost pour les problèmes de régression, de classification (binaire et multi-classes) et de classement.

Vous pouvez utiliser la nouvelle version de l’algorithme XGBoost comme :

  • Un algorithme intégré à Amazon SageMaker AI.

  • cadre pour exécuter des scripts d’entraînement dans vos environnements locaux.

Cette implémentation bénéficie d’une empreinte mémoire plus petite, d’une meilleure journalisation, d’une meilleure validation des hyperparamètres et d’un plus grand ensemble de métriques que les versions d’origine. Elle fournit également un estimator XGBoost qui exécute un script d’entraînement dans un environnement XGBoost géré. La version actuelle d' SageMaker AI XGBoost est basée sur les versions originales de XGBoost 1.0, 1.2, 1.3, 1.5, 1.7 et 3.0.

Pour plus d'informations sur l'algorithme Amazon SageMaker AI XGBoost, consultez les articles de blog suivants :

Versions prises en charge

Pour plus de détails, consultez notre politique de support.

  • Mode framework (open source) : 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5

  • Mode algorithme : 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5

Avertissement

En raison de la capacité de calcul requise, la version 3.0-5 d' SageMaker AI XGBoost n'est pas compatible avec les instances GPU de la famille d'instances P3 à des fins d'entraînement ou d'inférence.

Avertissement

En raison de la compatibilité des packages, la version 3.0-5 d' SageMaker AI XGBoost ne prend pas en charge le débogueur. SageMaker

Avertissement

En raison de la capacité de calcul requise, la version 1.7-1 d' SageMaker AI XGBoost n'est pas compatible avec les instances GPU de la famille d'instances P2 à des fins d'entraînement ou d'inférence.

Avertissement

Mode d'isolation réseau : ne mettez pas à niveau pip au-delà de la version 25.2. Les versions plus récentes peuvent tenter de récupérer les outils de configuration depuis PyPI lors de l'installation du module.

Important

Lorsque vous récupérez l'URI de l'image SageMaker AI XGBoost, n'utilisez pas :latest ou :1 pour la balise URI de l'image. Vous devez spécifier l'un des Versions prises en charge pour choisir le conteneur SageMaker AI-managed XGBoost avec la version native du package XGBoost que vous souhaitez utiliser. Pour trouver la version du package migrée vers les conteneurs SageMaker AI XGBoost, consultez les chemins de registre Docker et les exemples de code. Choisissez ensuite votre Région AWS et accédez à la section XGBoost (algorithme).

Avertissement

Les versions XGBoost 0.90 sont obsolètes. La prise en charge des mises à jour de sécurité et des corrections de bogues pour XGBoost 0.90 a été interrompue. Nous vous recommandons vivement de mettre à niveau la version de XGBoost vers l’une des versions les plus récentes.

Note

XGBoost v1.1 n'est pas pris en charge sur l'IA. SageMaker La version 1.1 de XGBoost n’est pas en mesure d’exécuter la prédiction quand l’entrée de test a moins de caractéristiques que les données d’entraînement dans les entrées LIBSVM. Cette capacité a été restaurée dans XGBoost 1.2. Envisagez d'utiliser SageMaker AI XGBoost 1.2-2 ou version ultérieure.

Note

Vous pouvez utiliser XGBoost 1.0-1, mais cette version n’est pas officiellement prise en charge.

Recommandation sur les instances EC2 pour l’algorithme XGBoost

SageMaker AI XGBoost prend en charge l'entraînement et l'inférence du processeur et du GPU. Les recommandations relatives aux instances dépendent des besoins d'entraînement et d'inférence, ainsi que de la version de l'algorithme XGBoost. Choisissez l'une des options suivantes pour plus d'informations :

Entraînement

L'algorithme SageMaker AI XGBoost prend en charge l'entraînement du processeur et du GPU.

Entraînement CPU

SageMaker AI XGBoost 1.0-1 ou version antérieure ne s'entraîne qu'à l'aide de processeurs. Il s'agit d'un algorithme dépendant de la mémoire (par opposition à un algorithme dépendant du calcul). Par conséquent, une instance de calcul à usage général (par exemple, M5) constitue un meilleur choix qu'une instance optimisée pour le calcul (par exemple, C4). De plus, nous vous recommandons d'avoir suffisamment de mémoire totale dans les instances sélectionnées pour contenir les données d'entraînement. Il prend en charge l’utilisation de l’espace disque pour gérer les données qui ne rentrent pas dans la mémoire principale. Cela est dû à la caractéristique externe disponible avec le mode d’entrée libsvm. Malgré tout, l’écriture des fichiers de cache sur le disque ralentit le temps de traitement de l’algorithme.

Entraînement GPU

SageMaker La version 1.2-2 ou ultérieure d'AI XGBoost prend en charge l'entraînement du GPU. Malgré des coûts par instance plus élevés, les GPU entraînent plus rapidement, ce qui les rend plus rentables.

SageMaker AI XGBoost version 1.2-2 ou ultérieure prend en charge les familles d'instances GPU P2, P3, G4dn et G5.

SageMaker AI XGBoost version 1.7-1 ou ultérieure prend en charge les familles d'instances GPU P3, G4dn et G5. Notez qu'en raison des exigences en matière de capacité de calcul, la version 1.7-1 ou ultérieure ne prend pas en charge la famille d'instances P2.

SageMaker AI XGBoost version 3.0-5 ou ultérieure prend en charge les familles d'instances GPU G4dn et G5. Notez qu'en raison des exigences en matière de capacité de calcul, la version 3.0-5 ou ultérieure ne prend pas en charge la famille d'instances P3.

Pour tirer parti de l’entraînement GPU :

  • Spécifiez le type d'instance comme l'une des instances du GPU (par exemple, G4dn)

  • Définissez l’hyperparamètre tree_method sur gpu_hist dans votre script XGBoost existant.

Entraînement distribué

SageMaker AI XGBoost prend en charge les instances de CPU et de GPU pour l'entraînement distribué.

Entraînement CPU distribué

Pour exécuter l'entraînement CPU sur plusieurs instances, définissez le paramètre instance_count de l'estimateur sur une valeur supérieure à un. Les données d'entrée doivent être divisées entre le nombre total d'instances.

Division des données d'entrée entre les instances

Divisez les données d'entrée en procédant comme suit :

  1. Décomposez les données d'entrée en fichiers plus petits. Le nombre de fichiers doit être au moins égal au nombre d'instances utilisées pour l'entraînement distribué. L'utilisation de plusieurs fichiers plus petits au lieu d'un seul fichier volumineux réduit également le temps de téléchargement des données pour la tâche d'entraînement.

  2. Lors de la création de votre TrainingInput, définissez le paramètre de distribution surShardedByS3Key. Ainsi, chaque instance obtient approximativement 1/nle nombre de fichiers dans S3 si n instances sont spécifiées dans la tâche de formation.

Entraînement GPU distribué

Vous pouvez utiliser l'entraînement distribué avec des instances à un seul GPU ou multi-GPU.

Entraînement distribué avec des instances à un seul GPU

SageMaker Les versions 1.2-2 à 1.3-1 d'AI XGBoost ne prennent en charge que l'entraînement des instances à un seul GPU. Cela signifie que même si vous sélectionnez une instance multi-GPU, un seul GPU est utilisé par instance.

Vous devez diviser les données d’entrée entre le nombre total d’instances si :

  • vous utilisez les versions 1.2-2 à 1.3-1 de XGBoost ;

  • vous n’avez pas besoin d’utiliser d’instances multi-GPU.

Pour de plus amples informations, veuillez consulter Division des données d'entrée entre les instances.

Note

Les versions 1.2-2 à 1.3-1 d' SageMaker AI XGBoost n'utilisent qu'un seul GPU par instance, même si vous choisissez une instance multi-GPU.

Entraînement distribué avec des instances multi-GPU

À partir de la version 1.5-1, SageMaker AI XGBoost propose un entraînement GPU distribué avec Dask. Avec Dask, vous pouvez utiliser tous les GPU lorsque vous utilisez une ou plusieurs instances multi-GPU. Dask fonctionne également lors de l'utilisation d'instances à un seul GPU.

Effectuez l'entraînement avec Dask en procédant comme suit :

  1. Vous pouvez omettre le distribution paramètre dans votre TrainingInputou le définir surFullyReplicated.

  2. Lorsque vous définissez vos hyperparamètres, définissez use_dask_gpu_training sur "true".

Important

L'entraînement distribué avec Dask ne prend en charge que les formats d'entrée CSV et Parquet. Si vous utilisez d'autres formats de données tels que LIBSVM ou PROTOBUF, la tâche d'entraînement échoue.

Pour les données Parquet, assurez-vous que les noms des colonnes sont enregistrés sous forme de chaînes. Les colonnes dotées de noms d'un autre type de données ne seront pas chargées.

Important

L'entraînement distribué avec Dask ne prend pas en charge le mode Pipe. Si le mode Pipe est spécifié, la tâche d'entraînement échoue.

Il y a quelques considérations à prendre en compte lors de l'entraînement à SageMaker AI XGBoost avec Dask. Veillez à diviser vos données en fichiers plus petits. Dask lit chaque fichier Parquet comme une partition. Il existe une application de travail Dask pour chaque GPU. Ainsi, le nombre de fichiers doit être supérieur au nombre total de GPU (nombre d’instances * nombre de GPU par instance). Le fait d'avoir un très grand nombre de fichiers peut également dégrader les performances. Pour plus d'informations, consultez Bonnes pratiques relatives à Dask (langue française non garantie).

Variations en sortie

L'hyperparamètre tree_method spécifié détermine l'algorithme utilisé pour l'entraînement XGBoost. Les méthodes arborescentes approx, hist et gpu_hist sont toutes des méthodes approximatives qui utilisent le traçage de croquis (sketching) pour le calcul des quantiles. Pour plus d'informations, consultez Méthodes arborescentes (langue française non garantie) dans la documentation sur XGBoost. Le traçage de croquis est un algorithme approximatif. Par conséquent, vous pouvez vous attendre à des variations dans le modèle en fonction de facteurs tels que le nombre d'applications de travail choisies pour l'entraînement distribué. L'importance de la variation dépend des données.

Inférence

SageMaker AI XGBoost prend en charge les instances de CPU et de GPU à des fins d'inférence. Pour plus d'informations sur les types d'instances à inférer, consultez Amazon SageMaker AI ML Instance Types.