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.
XGBoostalgoritmo con Amazon SageMaker
El XGBoost
-
Su manejo robusto de una variedad de tipos de datos, relaciones y distribuciones.
-
La variedad de hiperparámetros que se pueden ajustar.
Se puede utilizar XGBoost para problemas de regresión, clasificación (binaria y multiclase) y de clasificación.
Puede utilizar la nueva versión del XGBoost algoritmo de las siguientes maneras:
-
Un algoritmo SageMaker integrado en Amazon.
-
Un marco para ejecutar guiones de entrenamiento en sus entornos locales.
Esta implementación ocupa menos memoria, mejora el registro, mejora la validación de hiperparámetros y tiene un conjunto de métricas más amplio que las versiones originales. Proporciona un guion de formación XGBoost estimator
que ejecuta en un XGBoost entorno gestionado. La versión actual de SageMaker 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 SageMaker XGBoost algoritmo de Amazon, 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 no SageMaker XGBoost es compatible con las instancias de la familia de GPU instancias P2 para fines de entrenamiento o inferencia.
importante
Cuando recuperes la SageMaker XGBoost imagenURI, no utilices :latest
ni :1
para la etiqueta de la imagen. URI Debe especificar una de las opciones Versiones compatibles para elegir el XGBoost contenedor SageMaker gestionado con la versión XGBoost del paquete nativo que desee utilizar. Para encontrar la versión del paquete migrada a los SageMaker XGBoost contenedores, consulta las rutas de registro de Docker y el código de ejemplo. A continuación Región de AWS, elija la suya y vaya a 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
XGBoostLa versión 1.1 no es compatible con. SageMaker XGBoost1.1 tiene una capacidad deficiente para ejecutar predicciones cuando la entrada de prueba tiene menos funciones que los datos de entrenamiento de las LIBSVM entradas. Esta capacidad se restableció en la XGBoost versión 1.2. Considere la posibilidad de utilizar la versión SageMaker XGBoost 1.2-2 o una versión posterior.
nota
Puedes usar la XGBoost versión 1.0-1, pero no tiene soporte oficial.
EC2recomendación de instancia para el algoritmo XGBoost
SageMaker XGBoostapoyosCPU, GPU entrenamiento e inferencia. 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 SageMaker XGBoost algoritmo apoya CPU y GPU entrena.
CPUformación
SageMaker XGBoost1.0-1 o anterior que solo utilizan CPUs trenes. 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 los archivos de caché en el disco reduce el tiempo de procesamiento del algoritmo.
GPUformación
SageMaker XGBoostla versión 1.2-2 o posterior admite GPU la formación. A pesar del aumento de los costes por instancia, GPUs entrene con mayor rapidez, lo que las hace más rentables.
SageMaker XGBoostla versión 1.2-2 o posterior admite las familias de instancias P2, P3, G4dn y G5. GPU
SageMaker XGBoostla versión 1.7-1 o posterior admite las familias de instancias P3, G4dn y G5. GPU 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 aprovechar la capacitación: GPU
-
Especifique el tipo de instancia como una de las GPU instancias (por ejemplo, P3)
-
Defina el
tree_method
hiperparámetrogpu_hist
en su script existente XGBoost
Entrenamiento distribuido
SageMaker XGBoostsoportes CPU e GPU instancias para la formación distribuida.
CPUFormación distribuida
Para ejecutar el CPU entrenamiento en varias instancias, defina el instance_count
parámetro 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 el suyo TrainingInput
, defina el parámetro de distribución en. ShardedByS3Key
De este modo, cada instancia obtiene aproximadamente 1/n del número de archivos de S3 si hay n instancias especificadas en el trabajo de formación.
Capacitación distribuida GPU
Puede utilizar la formación distribuida con una GPU o varias GPU instancias.
Capacitación distribuida con GPU instancias únicas
SageMaker XGBoostlas versiones 1.2-2 a 1.3-1 solo admiten la formación en una sola instancia. GPU Esto significa que, incluso si selecciona una GPU instancia múltiple, solo se usará una GPU por instancia.
Debe dividir los datos de entrada entre el número total de instancias si:
-
Utiliza XGBoost las versiones 1.2-2 a 1.3-1.
-
No es necesario utilizar varias instancias. 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 SageMaker XGBoost solo usan una GPU por instancia, incluso si elige una instancia múltiple. GPU
Capacitación distribuida con varias instancias GPU
A partir de la versión 1.5-1, SageMaker XGBoost ofrece GPU formación distribuida con Dask.
Siga estos pasos para entrenar con Dask:
Omita el
distribution
parámetro en su archivo TrainingInputo configúrelo en. FullyReplicated
Al definir los hiperparámetros, establezca
use_dask_gpu_training
en"true"
.
importante
El entrenamiento distribuido con Dask solo admite CSV los formatos de entrada Parquet. Si utiliza otros formatos de datos, como LIBSVM oPROTOBUF, el trabajo de formación falla.
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 a tener en cuenta a la hora de entrenar SageMaker XGBoost con Dask. Divida los datos en archivos más pequeños. Dask lee cada archivo de Parquet como una partición. Hay un trabajador de Dask para cada persona. 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 XGBoostsoportes CPU e GPU instancias para la inferencia. Para obtener información sobre los tipos de instancias para la inferencia, consulte Tipos de instancias de Amazon SageMaker ML