Compilador de entrenamiento de Amazon SageMaker - Amazon SageMaker AI

Compilador de entrenamiento de Amazon SageMaker

importante

Amazon Web Services (AWS) anuncia que no habrá nuevos lanzamientos o versiones del Compilador de entrenamiento de SageMaker. Puede seguir utilizando el Compilador de entrenamiento de SageMaker a través de los contenedores de aprendizaje profundo (DLC) de AWS existentes para entrenamiento de SageMaker. Es importante tener en cuenta que, si bien los DLC existentes siguen siendo accesibles, ya no recibirán parches ni actualizaciones de AWS, de acuerdo con la Política de compatibilidad del marco de contenedores de aprendizaje profundo de AWS.

Utilice Compilador de entrenamiento de Amazon SageMaker para entrenar modelos de aprendizaje profundo (DL) más rápido en instancias de GPU escalables administradas por SageMaker AI.

¿Qué es Compilador de entrenamiento de SageMaker?

Los modelos de aprendizaje profundo (DL) de última generación consisten en complejas redes neuronales multicapa con miles de millones de parámetros que la GPU puede tardar miles de horas en entrenarse. La optimización de estos modelos en la infraestructura de entrenamiento requiere un amplio conocimiento de la DL y de la ingeniería de sistemas, lo que supone todo un reto incluso en casos de uso limitados. Si bien existen compiladores de código abierto que optimizan el proceso de entrenamiento en aprendizaje remoto, pueden carecer de la flexibilidad necesaria para integrar marcos de aprendizaje continuo con algunos tipos de hardware, como las instancias de GPU.

El Compilador de entrenamiento de SageMaker es una capacidad de SageMaker AI que hace que estas optimizaciones sean difíciles de implementar para reducir el tiempo de entrenamiento en las instancias de GPU. El compilador optimiza los modelos DL para acelerar el entrenamiento mediante el uso más eficiente de las instancias de GPU de machine learning (ML) de SageMaker AI. El Compilador de entrenamiento de SageMaker está disponible sin costo adicional en SageMaker AI y puede ayudar a reducir el tiempo total facturable, ya que acelera el entrenamiento.

Diagrama conceptual de cómo funciona el Compilador de entrenamiento de SageMaker con SageMaker AI

El Compilador de entrenamiento de SageMaker está integrado en los contenedores de aprendizaje profundo (DLC) de AWS. Con los DLC de AWS habilitados para el Compilador de entrenamiento de Sagemaker, puede compilar y optimizar los trabajos de entrenamiento en instancias de GPU con cambios mínimos en el código. Lleve los modelos de aprendizaje profundo a SageMaker AI y habilite SageMaker Training Compiler para acelerar la velocidad del trabajo de entrenamiento en instancias de ML de SageMaker AI para acelerar la computación.

Cómo funciona

El Compilador de entrenamiento de Sagemaker, convierte los modelos DL de su representación de lenguaje de alto nivel en instrucciones optimizadas para hardware. En concreto, el Compilador de entrenamiento de Sagemaker aplica optimizaciones a nivel de gráficos, optimizaciones a nivel de flujo de datos y optimizaciones de backend para producir un modelo optimizado que utilice los recursos de hardware de manera eficiente. Como resultado, puede entrenar sus modelos más rápido que si los entrena sin compilarlos.

La activación del Compilador de entrenamiento de Sagemaker para su trabajo de entrenamiento consiste en un proceso de dos pasos:

  1. Traiga su propio script de machine learning y, si es necesario, adáptelo para compilarlo y entrenarlo con el Compilador de entrenamiento de Sagemaker. Para obtener más información, consulte Usar un modelo de aprendizaje profundo propio.

  2. Cree un objeto estimador de SageMaker AI con el parámetro de configuración del compilador mediante el SageMaker Python SDK.

    1. Para activar el Compilador de entrenamiento de SageMaker, añádalo a la clase del estimador de SageMaker AI compiler_config=TrainingCompilerConfig().

    2. Ajuste los hiperparámetros (batch_size y learning_rate) para maximizar las ventajas que ofrece el Compilador de entrenamiento de Sagemaker.

      La compilación mediante el Compilador de entrenamiento de Sagemaker, cambia el espacio de memoria del modelo. Lo más habitual es que esto se manifieste como una reducción de la utilización de la memoria y el consiguiente aumento del tamaño de lote más grande que cabe en la GPU. En algunos casos, el compilador promueve el almacenamiento en caché de forma inteligente, lo que reduce el tamaño de lote más grande que cabe en la GPU. Tenga en cuenta que si desea cambiar el tamaño del lote, debe ajustar la tasa de entrenamiento de forma adecuada.

      Para obtener una referencia sobre los modelos batch_size probados para los más populares, consulte Modelos probados.

      Al ajustar el tamaño del lote, también hay que ajustar learning_rate adecuadamente. Para conocer las prácticas recomendadas para ajustar la tasa de entrenamiento junto con el cambio en el tamaño del lote, consulte Prácticas recomendadas y consideraciones sobre el Compilador de entrenamiento de SageMaker.

    3. Al ejecutar el método de clase estimator.fit(), SageMaker AI compila el modelo e inicia el trabajo de entrenamiento.

    Para obtener instrucciones acerca de cómo iniciar un trabajo de entrenamiento, consulte Habilitar Compilador de entrenamiento de SageMaker.

El Compilador de entrenamiento de Amazon SageMaker no altera el modelo entrenado final, al tiempo que le permite acelerar el trabajo de entrenamiento al utilizar de manera más eficiente la memoria de la GPU y ajustar un tamaño de lote mayor por iteración. El modelo de entrenamiento final del trabajo de entrenamiento acelerado por el compilador es idéntico al del trabajo de entrenamiento normal.

sugerencia

El Compilador de entrenamiento de SageMaker solo compila modelos DL para el entrenamiento en instancias de GPU compatibles administradas por SageMaker AI. Para compilar el modelo con fines de inferencia y desplegarlo para que se ejecute en cualquier lugar de la nube y en la periferia, utilice el Compilador de SageMaker Neo.