

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.

# XGBoost algorithme avec Amazon SageMaker AI
<a name="xgboost"></a>

Le [XGBoost](https://github.com/dmlc/xgboost)(eXtreme Gradient Boosting) est une implémentation open source populaire et efficace de l'algorithme des arbres boostés par le 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' XGBoost algorithme fonctionne bien dans les concours d'apprentissage automatique 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 l'utiliser XGBoost pour les problèmes de régression, de classification (binaire et multiclasse) et de classement. 

Vous pouvez utiliser la nouvelle version de l' XGBoost algorithme comme suit :
+ 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. Il fournit un script de formation XGBoost `estimator` qui exécute un script de formation dans un XGBoost environnement géré. La version actuelle d' SageMaker AI XGBoost est basée sur les XGBoost versions originales 1.0, 1.2, 1.3, 1.5, 1.7 et 3.0.

Pour plus d'informations sur l' XGBoost algorithme Amazon SageMaker AI, consultez les articles de blog suivants :
+ [Présentation du conteneur d' XGBoost algorithmes open source Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/introducing-the-open-source-amazon-sagemaker-xgboost-algorithm-container/)
+ [Amazon SageMaker AI propose XGBoost désormais une formation GPU entièrement distribuée](https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-xgboost-now-offers-fully-distributed-gpu-training/)

## Versions prises en charge
<a name="xgboost-supported-versions"></a>

Pour plus de détails, consultez notre [politique de support](https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-support-policy.html#pre-built-containers-support-policy-ml-framework).
+ 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 n' XGBoost 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 SageMaker le débogueur.

**Avertissement**  
En raison de la capacité de calcul requise, la version 1.7-1 d' SageMaker AI n' XGBoost 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 XGBoost l'image SageMaker AI, n'utilisez pas `:latest` ou `:1` pour la balise URI de l'image. Vous devez spécifier l'un des [Versions prises en charge](#xgboost-supported-versions) pour choisir le XGBoost conteneur SageMaker géré par l'IA avec la version de XGBoost package native que vous souhaitez utiliser. Pour trouver la version du package migrée vers les XGBoost conteneurs SageMaker AI, consultez les [chemins de registre Docker et les exemples](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html) 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é ou des corrections de bogues pour la version XGBoost 0.90 est interrompue. Nous vous recommandons vivement de passer à l' XGBoostune des versions les plus récentes.

**Note**  
XGBoost La version 1.1 n'est pas prise en charge par SageMaker AI. XGBoost 1.1 n'a pas la capacité d'exécuter une prédiction lorsque l'entrée de test comporte moins de fonctionnalités que les données d'apprentissage contenues dans les entrées LIBSVM. Cette fonctionnalité a été rétablie dans la XGBoost version 1.2. Envisagez d'utiliser SageMaker AI XGBoost 1.2-2 ou version ultérieure.

**Note**  
Vous pouvez utiliser la XGBoost version v1.0-1, mais elle n'est pas officiellement prise en charge.

## Recommandation d'instance EC2 pour l'algorithme XGBoost
<a name="Instance-XGBoost"></a>

SageMaker L'IA 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 de formation et d'inférence, ainsi que de la version de l' XGBoost algorithme. Choisissez l'une des options suivantes pour plus d'informations :
+ [Entraînement CPU](#Instance-XGBoost-training-cpu)
+ [Entraînement GPU](#Instance-XGBoost-training-gpu)
+ [Entraînement CPU distribué](#Instance-XGBoost-distributed-training-cpu)
+ [Entraînement GPU distribué](#Instance-XGBoost-distributed-training-gpu)
+ [Inférence](#Instance-XGBoost-inference)

### Entraînement
<a name="Instance-XGBoost-training"></a>

L' XGBoost algorithme d' SageMaker intelligence artificielle prend en charge l'entraînement du processeur et du processeur graphique.

#### Entraînement CPU
<a name="Instance-XGBoost-training-cpu"></a>

SageMaker AI XGBoost 1.0-1 ou version antérieure uniquement pour les trains utilisant. CPUs 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 out-of-core fonctionnalité disponible avec le mode de saisie libsvm. Malgré tout, l’écriture des fichiers de cache sur le disque ralentit le temps de traitement de l’algorithme. 

#### Entraînement GPU
<a name="Instance-XGBoost-training-gpu"></a>

SageMaker XGBoost La version 1.2-2 ou ultérieure de l'IA prend en charge l'entraînement au GPU. Malgré des coûts par instance plus élevés, GPUs entraînez-vous plus rapidement, ce qui les rend plus rentables. 

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

SageMaker XGBoost La version 1.7-1 ou ultérieure d'AI 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 XGBoost La version 3.0-5 ou ultérieure d'AI 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'`tree_method`hyperparamètre sur `gpu_hist` dans votre script existant XGBoost 

### Entraînement distribué
<a name="Instance-XGBoost-distributed-training"></a>

SageMaker L'IA XGBoost prend en charge les instances de CPU et de GPU pour la formation distribuée.

#### Entraînement CPU distribué
<a name="Instance-XGBoost-distributed-training-cpu"></a>

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
<a name="Instance-XGBoost-distributed-training-divide-data"></a>

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.

1. Lors de la création de votre [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html), définissez le paramètre de distribution sur`ShardedByS3Key`. Ceci garantit que chaque instance obtient environ *1/n* du nombre de fichiers dans S3 si *n* instances sont spécifiées dans la tâche d’entraînement.

#### Entraînement GPU distribué
<a name="Instance-XGBoost-distributed-training-gpu"></a>

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 XGBoost Les versions 1.2-2 à 1.3-1 d'AI ne prennent en charge que l'entraînement des instances avec 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 XGBoost les versions 1.2-2 à 1.3-1.
+ 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](#Instance-XGBoost-distributed-training-divide-data).

**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 une formation distribuée sur le GPU avec [Dask](https://www.dask.org/). Avec Dask, vous pouvez tout utiliser GPUs 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 [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html)ou le définir sur`FullyReplicated`.

1. 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 points à prendre en compte lors de l'entraînement à l' SageMaker IA 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. Par conséquent, le nombre de fichiers doit être supérieur au nombre total de GPUs (nombre d'instances \* nombre de GPUs 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](https://docs.dask.org/en/stable/best-practices.html) (langue française non garantie).

#### Variations en sortie
<a name="Instance-XGBoost-distributed-training-output"></a>

L'`tree_method`hyperparamètre spécifié détermine l'algorithme utilisé pour l' XGBoost entraînement. 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 la section [Méthodes arborescentes](https://xgboost.readthedocs.io/en/stable/treemethod.html) dans la XGBoost documentation. 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
<a name="Instance-XGBoost-inference"></a>

SageMaker L'IA 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](https://aws.amazon.com/sagemaker/pricing/).