View a markdown version of this page

Algoritmo XGBoost con Amazon AI SageMaker - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Algoritmo XGBoost con Amazon AI SageMaker

XGBoost (potenciación del gradiente eXtreme) es una implementación de código abierto popular y eficiente del algoritmo de árboles aumentados de gradientes. La potenciación de gradientes es un algoritmo de aprendizaje supervisado que intenta predecir con precisión una variable de destino mediante la combinación de varias estimaciones a partir de un conjunto de modelos más simples. El algoritmo XGBoost funciona bien en las competiciones de machine learning por las siguientes razones:

  • Su potente gestión de distintos tipos de datos, relaciones y distribuciones.

  • La variedad de hiperparámetros que se pueden refinar.

Puede usar XGBoost para problemas de regresión, de clasificación (binaria y multiclase) y de ranking.

Puede utilizar la nueva versión del algoritmo XGBoost como:

  • Un algoritmo integrado de Amazon SageMaker AI.

  • Un marco para ejecutar scripts de entrenamiento en sus entornos locales.

Esta implementación ocupa menos espacio de memoria, tiene un mejor registro, una validación de hiperparámetros mejorada y un conjunto mayor de métricas en comparación con las versiones originales. También proporciona un estimator de XGBoost que ejecuta un script de entrenamiento en un entorno de XGBoost administrado. La versión actual de SageMaker AI XGBoost se basa en las versiones originales de XGBoost 1.0, 1.2, 1.3, 1.5, 1.7 y 3.0.

Para obtener más información sobre el algoritmo XGBoost de Amazon SageMaker AI, consulta las siguientes entradas de blog:

Versiones compatibles

Para obtener más información, consulta nuestra política de soporte.

  • Modo Framework (código abierto): 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5

  • Modo de algoritmo: 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1, 3.0-5

aviso

Debido a la capacidad de procesamiento requerida, la versión 3.0-5 de SageMaker AI XGBoost no es compatible con las instancias de GPU de la familia de instancias P3 para fines de entrenamiento o inferencia.

aviso

Debido a que el paquete es compatible, la versión 3.0-5 de SageMaker AI XGBoost no admite el depurador. SageMaker

aviso

Debido a la capacidad de procesamiento requerida, la versión 1.7-1 de SageMaker AI XGBoost no es compatible con las instancias de GPU de la familia de instancias P2 para fines de entrenamiento o inferencia.

aviso

Modo de aislamiento de red: no actualices pip a una versión posterior a la 25.2. Las versiones más recientes pueden intentar recuperar las herramientas de configuración de PyPI durante la instalación del módulo.

importante

Cuando recuperes el URI de la imagen SageMaker AI XGBoost, no utilices :latest ni para la etiqueta URI de la imagen. :1 Debe especificar uno de ellos Versiones compatibles para elegir el contenedor SageMaker AI-managed XGBoost con la versión nativa del paquete XGBoost que desee utilizar. Para encontrar la versión del paquete migrada a los contenedores SageMaker AI XGBoost, consulte las rutas de registro de Docker y el código de ejemplo. Luego elige el tuyo Región de AWS y navega hasta la sección XGBoost (algoritmo).

aviso

Las versiones XGBoost 0.90 están en desuso. Ya no hay actualizaciones de seguridad ni correcciones para XGBoost 0.90. Recomendamos encarecidamente actualizar la versión de XGBoost a una de las versiones más recientes.

nota

La versión 1.1 de XGBoost no es compatible con AI. SageMaker XGBoost 1.1 tiene una capacidad deficiente para ejecutar predicciones cuando la entrada de prueba tiene menos características que los datos de entrenamiento de las entradas LIBSVM. Esta capacidad se ha restablecido en la versión 1.2 de XGBoost. Considera usar SageMaker AI XGBoost 1.2-2 o una versión posterior.

nota

Puede utilizar XGBoost v1.0-1, pero no es compatible oficialmente.

Recomendación de instancias de EC2 para el algoritmo XGBoost

SageMaker AI XGBoost admite el entrenamiento y la inferencia de la CPU y la GPU. Las recomendaciones de instancias dependen de las necesidades de entrenamiento e inferencia, así como de la versión del algoritmo XGBoost. Seleccione una de las siguientes opciones para obtener más información:

Formación

El algoritmo SageMaker AI XGBoost admite el entrenamiento de la CPU y la GPU.

Entrenamiento con CPU

SageMaker El AI XGBoost 1.0-1 o una versión anterior solo se entrena con CPU. Se trata de un algoritmo de vinculación de memoria (como se opone en la vinculación de computación). Por lo tanto, una instancia de computación de uso general (por ejemplo, M5) es una opción mejor que una instancia optimizada de computación (por ejemplo, C4). Además, recomendamos que disponga de suficiente memoria en total en las instancias seleccionadas para almacenar los datos de capacitación. Admite el uso del espacio en disco para gestionar datos que no caben en la memoria principal. Esto se debe a la característica de fuera de núcleo disponible con el modo de entrada libsvm. Aun así, escribir archivos de caché en el disco ralentiza el tiempo de procesamiento del algoritmo.

Entrenamiento con GPU

SageMaker La versión 1.2-2 o posterior de AI XGBoost admite el entrenamiento con la GPU. A pesar de que los costos por instancia son superiores, la capacitación de las GPU se realiza de forma más rápida, por lo que son más rentables.

SageMaker La versión 1.2-2 o posterior de AI XGBoost es compatible con las familias de instancias de GPU P2, P3, G4dn y G5.

SageMaker La versión 1.7-1 o posterior de AI XGBoost es compatible con las familias de instancias de GPU P3, G4dn y G5. Tenga en cuenta que, debido a los requisitos de capacidad informática, la versión 1.7-1 o posterior no es compatible con la familia de instancias P2.

SageMaker La versión 3.0-5 o posterior de AI XGBoost es compatible con las familias de instancias de GPU G4dn y G5. Ten en cuenta que, debido a los requisitos de capacidad de procesamiento, la versión 3.0-5 o posterior no es compatible con la familia de instancias P3.

Para sacar partido del entrenamiento con la GPU:

  • Especifica el tipo de instancia como una de las instancias de GPU (por ejemplo, G4dn)

  • Ajuste el hiperparámetro tree_method en gpu_hist en su script XGBoost existente

Entrenamiento distribuido

SageMaker AI XGBoost admite instancias de CPU y GPU para el entrenamiento distribuido.

Entrenamiento distribuido con CPU

Para ejecutar el entrenamiento con CPU en varias instancias, defina el parámetro instance_count del estimador en un valor superior a uno. Los datos de entrada se deben dividir entre el número total de instancias.

División de datos de entrada entre las instancias

Divida los datos de entrada mediante los siguientes pasos:

  1. Separe los datos de entrada en archivos más pequeños. La cantidad de archivos debe ser, al menos, igual a la cantidad de instancias utilizadas para el entrenamiento distribuido. El uso de varios archivos más pequeños, en lugar de uno grande, también reduce el tiempo de descarga de datos para el trabajo de entrenamiento.

  2. Al crear la suya TrainingInput, defina el parámetro de distribución en. ShardedByS3Key Con esto, cada instancia obtiene aproximadamente 1/nla cantidad de archivos de S3 si hay n instancias especificadas en el trabajo de entrenamiento.

Entrenamiento distribuido con GPU

Puede utilizar el entrenamiento distribuido con instancias de una o varias GPU.

Entrenamiento distribuido con instancias de una sola GPU

SageMaker Las versiones 1.2-2 a 1.3-1 de AI XGBoost solo admiten el entrenamiento de instancias con una sola GPU. Esto significa que, aunque seleccione una instancia con varias GPU, solo se utilizará una GPU por instancia.

Debe dividir los datos de entrada entre el número total de instancias si:

  • Utiliza las versiones 1.2-2 a 1.3-1 de XGBoost.

  • No necesita utilizar instancias con varias GPU.

Para obtener más información, consulte División de datos de entrada entre las instancias.

nota

Las versiones 1.2-2 a 1.3-1 de SageMaker AI XGBoost solo utilizan una GPU por instancia, incluso si eliges una instancia con varias GPU.

Entrenamiento distribuido con instancias de varias GPU

A partir de la versión 1.5-1, SageMaker AI XGBoost ofrece entrenamiento distribuido sobre GPU con Dask. Con Dask, puede utilizar todas las GPU cuando utilice una o más instancias de varias GPU. Dask también funciona cuando se utilizan instancias de una sola GPU.

Siga estos pasos para entrenar con Dask:

  1. Omite el distribution parámetro en tu ordenador o configúralo en. TrainingInputFullyReplicated

  2. Al definir los hiperparámetros, establezca use_dask_gpu_training en "true".

importante

El entrenamiento distribuido con Dask solo admite los formatos de entrada CSV y Parquet. Si utiliza otros formatos de datos, como LIBSVM o PROTOBUF, el trabajo de entrenamiento no se llevará a cabo.

Con datos Parquet, debe guardar los nombres de las columnas como cadenas. Las columnas que tienen nombres de otros tipos de datos no se cargarán.

importante

El entrenamiento distribuido con Dask no admite el modo canalización. Si se especifica el modo canalización, el trabajo de entrenamiento no se llevará a cabo.

Hay algunas consideraciones que debes tener en cuenta a la hora de entrenar SageMaker AI XGBoost con Dask. Divida los datos en archivos más pequeños. Dask lee cada archivo de Parquet como una partición. Hay un proceso de trabajo Dask para cada GPU. Como resultado, el número de archivos debe ser mayor que el número total de GPU (número de instancias * número de GPU por instancia). Tener una gran cantidad de archivos también puede reducir el rendimiento. Para obtener más información, consulte Dask Best Practices.

Variaciones en la producción

El hiperparámetro tree_method especificado determina el algoritmo que se utiliza para el entrenamiento con XGBoost. Los métodos de árbol (approx, hist y gpu_hist) son todos aproximados, y utilizan bocetos para el cálculo de cuantiles. Para obtener más información, consulte Tree Methods en la documentación de XGBoost. El boceto es un algoritmo aproximado. Por lo tanto, cabe esperar variaciones en el modelo en función de factores como el número de procesos de trabajo elegidos para el entrenamiento distribuido. La importancia de la variación depende de los datos.

Inferencia

SageMaker AI XGBoost admite instancias de CPU y GPU para realizar inferencias. Para obtener información sobre los tipos de instancias para la inferencia, consulte Tipos de instancias de Amazon SageMaker AI ML.