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
-
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_methodengpu_histen 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:
-
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.
-
Al crear la suya TrainingInput
, defina el parámetro de distribución en. ShardedByS3KeyCon 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.
Siga estos pasos para entrenar con Dask:
Omite el
distributionparámetro en tu ordenador o configúralo en. TrainingInputFullyReplicatedAl definir los hiperparámetros, establezca
use_dask_gpu_trainingen"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
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