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.
XGBoost algoritmo con Amazon SageMaker AI
El XGBoost
-
Su potente gestión de distintos tipos de datos, relaciones y distribuciones.
-
La variedad de hiperparámetros que se pueden afinar.
Se puede utilizar XGBoost para problemas de regresión, clasificación (binaria y multiclase) y clasificación.
Puede utilizar la nueva versión del XGBoost algoritmo 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. Proporciona un guion de formación XGBoost estimator
que ejecuta en un XGBoost entorno gestionado. La versión actual de SageMaker AI XGBoost se basa en las XGBoost versiones originales 1.0, 1.2, 1.3, 1.5 y 1.7.
Para obtener más información sobre el XGBoost algoritmo Amazon SageMaker AI, consulta las siguientes entradas del blog:
Versiones compatibles
-
Modo marco (código abierto): 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1
-
Modo de algoritmo: 1.2-1, 1.2-2, 1.3-1, 1.5-1, 1.7-1
aviso
Debido a la capacidad de procesamiento requerida, la versión 1.7-1 de SageMaker AI no XGBoost es compatible con las instancias de GPU de la familia de instancias P2 para fines de entrenamiento o inferencia.
importante
Cuando recuperes el URI de la XGBoost imagen de SageMaker IA, no utilices :latest
ni :1
para la etiqueta URI de la imagen. Debe especificar uno de ellos Versiones compatibles para elegir el XGBoost contenedor SageMaker administrado por IA con la versión de XGBoost paquete nativa que desee usar. Para encontrar la versión del paquete migrada a los XGBoost contenedores de SageMaker IA, consulte las rutas de registro y el código de ejemplo de Docker. A continuación Región de AWS, elige la tuya y navega hasta la sección XGBoost (algoritmo).
aviso
Las versiones XGBoost 0.90 están en desuso. Se ha dejado de ofrecer soporte para las actualizaciones de seguridad o las correcciones de errores de la XGBoost versión 0.90. Le recomendamos encarecidamente que actualice la XGBoost versión a una de las versiones más recientes.
nota
XGBoost La versión 1.1 no es compatible con la SageMaker IA. XGBoost La 1.1 tiene una capacidad insuficiente para ejecutar predicciones cuando la entrada de prueba tiene menos funciones que los datos de entrenamiento de las entradas LIBSVM. Esta capacidad se restableció en XGBoost la versión 1.2. Considere la posibilidad de utilizar SageMaker AI XGBoost 1.2-2 o una versión posterior.
nota
Puedes usar la XGBoost versión 1.0-1, pero no cuenta con soporte oficial.
EC2 recomendación de instancia para el algoritmo XGBoost
SageMaker La IA XGBoost admite el entrenamiento y la inferencia de la CPU y la GPU. Las recomendaciones de instancias dependen de las necesidades de formación e inferencia, así como de la versión del XGBoost algoritmo. Seleccione una de las siguientes opciones para obtener más información:
Formación
El XGBoost algoritmo de SageMaker IA admite el entrenamiento de la CPU y la GPU.
Entrenamiento con CPU
SageMaker La IA XGBoost 1.0-1 o anterior solo se entrena con CPUs ella. 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 out-of-core función 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 XGBoost versión 1.2-2 o posterior de AI admite el entrenamiento con la GPU. A pesar de que los costes por instancia son más altos, GPUs entrene más rápido, lo que las hace más rentables.
SageMaker XGBoost La versión 1.2-2 o posterior de AI admite las familias de instancias de GPU P2, P3, G4dn y G5.
SageMaker La XGBoost versión 1.7-1 o posterior de AI admite 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.
Para sacar partido del entrenamiento con la GPU:
-
Especifique el tipo de instancia como una de las instancias de la GPU (por ejemplo, P3).
-
Defina el
tree_method
hiperparámetro en su script actualgpu_hist
XGBoost
Entrenamiento distribuido
SageMaker La IA 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 tuya TrainingInput
, establece el parámetro de distribución en ShardedByS3Key
. Con esto, cada instancia recibe aproximadamente 1/n del número 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 XGBoost Las versiones 1.2-2 a 1.3-1 de AI 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:
-
Utilizas las XGBoost versiones 1.2-2 a 1.3-1.
-
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, la SageMaker IA XGBoost ofrece formación distribuida sobre la GPU con Dask.
Siga estos pasos para entrenar con Dask:
Omite el
distribution
parámetro en tu cuenta TrainingInputo configúralo en. FullyReplicated
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 hay que tener en cuenta a la hora de entrenar la SageMaker IA 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 GPUs (número de instancias * número de GPUs 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 tree_method
hiperparámetro especificado determina el algoritmo que se utiliza para el XGBoost entrenamiento. 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 Métodos de árbol
Inferencia
SageMaker La IA 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