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
-
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_methodsurgpu_histdans 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 :
-
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.
-
Lors de la création de votre TrainingInput
, définissez le paramètre de distribution sur ShardedByS3Key. 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.
Effectuez l'entraînement avec Dask en procédant comme suit :
Vous pouvez omettre le
distributionparamètre dans votre TrainingInputou le définir sur FullyReplicated.Lorsque vous définissez vos hyperparamètres, définissez
use_dask_gpu_trainingsur"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
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
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