Prácticas recomendadas para Amazon SageMaker Training Managed Warm Pools

Amazon SageMaker Training Managed Warm Pools le brinda la flexibilidad de optar por reutilizar y mantener la infraestructura subyacente durante un período de tiempo definido por el usuario. Esto se hace mientras se mantiene el beneficio de pasar el trabajo pesado indiferenciado de administrar instancias informáticas a Capacitación de modelos de Amazon SageMaker. En esta publicación, describimos los beneficios clave y los puntos débiles abordados por SageMaker Training Managed Warm Pools, así como los puntos de referencia y las mejores prácticas.

Descripción general de SageMaker Training Managed Warm Pools

SageMaker Model Training es una capacidad completamente administrada que activa instancias para cada trabajo, entrena un modelo, ejecuta y luego desactiva instancias después del trabajo. Solo se le factura por la duración del trabajo hasta el segundo. Esta capacidad completamente administrada le brinda la libertad de concentrarse en su algoritmo de aprendizaje automático (ML) y no preocuparse por el trabajo pesado indiferenciado, como la administración de la infraestructura, mientras entrena sus modelos.

Este mecanismo requiere un tiempo de inicio finito para un trabajo de entrenamiento. Aunque este tiempo de inicio, también conocido como tiempo de arranque en frío, es bastante bajo, algunos de los casos de uso de nuestros clientes más exigentes requieren tiempos de inicio aún más bajos, como menos de 20 segundos. Hay dos casos de uso destacados que tienen estos requisitos:

  • El primero es la experimentación activa de ML por parte de científicos de datos que utilizan el Amazon SageMaker plataforma de entrenamiento, especialmente al entrenar modelos grandes, como GPT3, que requieren múltiples iteraciones para llegar a un estado listo para producción.
  • El segundo es el lanzamiento programático de una gran cantidad (del orden de varios cientos o miles) de trabajos consecutivos en el mismo tipo de instancias en una cadencia programada. Por ejemplo, búsqueda de parámetros o entrenamiento incremental.

Para tales casos de uso, cada segundo gastado en gastos generales, como el tiempo de inicio para un trabajo de capacitación, tiene un efecto acumulativo en todos estos trabajos.

Con SageMaker Training Managed Warm Pools, los científicos de datos y los ingenieros de ML tienen la capacidad de optar por mantener activas las instancias de entrenamiento o los clústeres de varias instancias de SageMaker durante un tiempo predeterminado y reconfigurable (keep_alive_period_in_seconds) después de que se complete cada trabajo de entrenamiento. Por lo tanto, aunque incurra en una penalización por inicio en frío para el primer trabajo de capacitación que se ejecuta en una instancia o clúster, para todos los trabajos de capacitación posteriores, las instancias ya están en funcionamiento. Como resultado, estos trabajos de entrenamiento posteriores que comienzan en una instancia antes de la keep_alive_period_in_seconds expira no incurre en la sobrecarga del tiempo de inicio de arranque en frío. Esto puede reducir los tiempos de inicio del trabajo de capacitación a aproximadamente menos de 20 segundos (P90).

Los científicos de datos y los ingenieros de ML pueden usar SageMaker Training Managed Warm Pools para mantener calientes una o varias instancias entre ejecuciones de entrenamiento para la experimentación o ejecutar varios trabajos de forma consecutiva en el mismo clúster de una o varias instancias. Solo pagas por la duración de los trabajos de formación y los reconfigurables keep_alive_period_in_seconds como en cualquier otro lugar que especifique para cada instancia.

En esencia, con SageMaker Training Managed Warm Pools, obtiene una combinación de utilización de instancias administradas de SageMaker con la capacidad de optar y aprovisionar capacidad y autoadministrar la utilización durante breves intervalos de tiempo. Estos intervalos son configurables antes de un trabajo, pero si durante el keep_alive_period_in_seconds intervalo, necesita reducirlo o aumentarlo, puede hacerlo. aumenta a keep_alive_period_in_seconds se puede realizar en intervalos de hasta 60 minutos, con un período máximo para una instancia o clúster de 7 días.

Para empezar con las piscinas de agua caliente, primero solicitar un aumento del límite de la cuota de la piscina templada, luego especifique el keep_alive_period_in_seconds parámetro al iniciar un trabajo de formación.

Los puntos de referencia

Realizamos pruebas comparativas para medir la latencia de inicio del trabajo con una imagen de TensorFlow de 1.34 GB, 2 GB de datos y diferentes modos de entrada de datos de entrenamiento (Amazon FSx, modo de archivo rápido, modo de archivo). Las pruebas se realizaron en una variedad de tipos de instancias de las familias m4, c4, m5 y c5 en la región us-east-2. La latencia de inicio se midió como el tiempo de creación del trabajo hasta el inicio del trabajo de capacitación real en las instancias. Los primeros trabajos que iniciaron el clúster y crearon el grupo tibio tenían una latencia de inicio de 2 a 3 minutos. Esta mayor latencia se debe al tiempo necesario para aprovisionar la infraestructura, descargar la imagen y descargar los datos. Los trabajos consiguientes que utilizaron el clúster de grupo tibio tenían una latencia de inicio de aproximadamente 20 segundos para el modo de archivo rápido (FFM) o Amazon FSx, y de 70 segundos para el modo de archivo (FM). Este delta es el resultado de que FM requiere que todo el conjunto de datos se descargue de Amazon S3 antes del inicio del trabajo.

Su elección de modo de entrada de datos de entrenamiento afecta el tiempo de inicio, incluso con Warm Pools. La guía sobre qué modo de entrada seleccionar se encuentra en la sección de mejores prácticas más adelante en esta publicación.

La siguiente tabla resume la latencia de inicio del trabajo P90 para diferentes modos de entrada de datos de entrenamiento.

Modo de entrada de datos Latencia de inicio P90 (segundos)
Primer trabajo Trabajos de Warm Pool (segundo trabajo en adelante)
FSx 136 19
Modo de archivo rápido 143 21
Modo de archivo 176 70

Las mejores prácticas para usar piscinas calientes

En la siguiente sección, compartimos algunas de las mejores prácticas al usar piscinas templadas.

¿Cuándo usar piscinas de agua caliente?

Las piscinas calientes se recomiendan en los siguientes escenarios:

  • Estás experimentando y ajustando tu guión de forma interactiva en una serie de trabajos cortos.
  • Está ejecutando su propia optimización de hiperparámetros a gran escala y personalizada (por ejemplo, Sintonía).
  • Tiene un proceso por lotes que ejecuta una gran cantidad (del orden de varios cientos o miles) de trabajos consecutivos en el mismo tipo de instancias con una cadencia diaria o semanal. Por ejemplo, entrenar un modelo de ML por ciudad.

No se recomiendan las piscinas templadas cuando es poco probable que alguien reutilice la piscina templada antes de que caduque. Por ejemplo, un solo trabajo extenso que se ejecuta a través de una canalización de ML automatizada.

Minimice la latencia de inicio del trabajo de entrenamiento de grupo tibio

Los trabajos de entrenamiento que reutilizan un grupo tibio comienzan más rápido que el primer trabajo que creó el grupo tibio. Esto se debe a que las instancias de ML se mantienen en ejecución entre trabajos con una imagen de Docker del contenedor de capacitación en caché para omitir la extracción del contenedor. Registro de contenedores elásticos de Amazon (Amazon ECR). Sin embargo, incluso cuando se reutiliza un grupo tibio, se producen ciertos pasos de inicialización para todos los trabajos. La optimización de estos pasos puede reducir el tiempo de inicio de su trabajo (tanto el primero como los posteriores). Considera lo siguiente:

  • El modo de entrada de datos de entrenamiento puede afectar el tiempo de inicio – Los canales de entrada de datos de capacitación administrados se recrean para cada trabajo de capacitación, lo que contribuye a la latencia de inicio del trabajo. Por lo tanto, hacer experimentos iniciales en un conjunto de datos más pequeño permitirá un tiempo de inicio más rápido (y un tiempo de entrenamiento más rápido). Para etapas posteriores de experimentación, cuando se necesita un gran conjunto de datos, considere usar un tipo de modo de entrada que tenga un tiempo de inicialización mínimo o fijo. Por ejemplo, el modo de entrada ARCHIVO copia todo el conjunto de datos de Servicio de almacenamiento simple de Amazon (Amazon S3) a la instancia de entrenamiento, lo que requiere mucho tiempo para grandes conjuntos de datos (incluso con grupos tibios). El modo de archivo rápido es más adecuado para una latencia de inicio más baja porque solo los metadatos de objetos de S3 deben leerse desde Amazon S3 antes de que pueda comenzar la carga de trabajo. Él Amazon FSx para Lustreo Sistema de archivos elástico de Amazon El modo de entrada del sistema de archivos (Amazon EFS) tiene un tiempo de inicialización fijo independientemente de la cantidad de archivos en el sistema de archivos, lo que es beneficioso cuando se trabaja con un gran conjunto de datos.
    Para obtener más información sobre cómo elegir un canal de entrada, consulte Elija la mejor fuente de datos para su trabajo de capacitación de Amazon SageMaker.
  • Reducir el tiempo de ejecución de la instalación de paquetes – Cualquier instalación de software que tenga lugar durante el inicio del contenedor, por ejemplo, pip de Python o apt-get del sistema operativo, aumentará la latencia del trabajo de entrenamiento. Minimizar esta latencia de inicio requiere hacer un compromiso entre la flexibilidad y la simplicidad de las instalaciones en tiempo de ejecución frente a la instalación en el momento de la construcción del contenedor. Si utiliza su propio contenedor Docker con SageMaker, consulte Adaptación de su propio contenedor Docker para trabajar con SageMaker. si confías en imágenes de contenedor de SageMaker prediseñadas, necesitará extender un contenedor prediseñado y gestionar explícitamente estos contenedores. Considere esto si sus instalaciones de tiempo de ejecución aumentan significativamente la latencia de inicio.
  • Evite actualizar su imagen de Docker con frecuencia – Si usa su propio contenedor Docker con SageMaker, intente evitar actualizarlo cada vez que se ejecuta el trabajo. Si la imagen de Docker cambia entre los envíos de trabajos, el grupo tibio se reutilizará, pero el proceso de inicio deberá volver a extraer la imagen del contenedor de Amazon ECR en lugar de reutilizar una imagen de contenedor almacenada en caché. Si se debe actualizar la imagen de Docker, limite las actualizaciones a la última capa de Docker para aprovechar el almacenamiento en caché de la capa de Docker. Idealmente, debe eliminar el contenido de Dockerfile que probablemente cambie con las iteraciones, como hiperparámetros, definiciones de conjuntos de datos y el propio código ML. Para iterar en el código ML sin tener que reconstruir las imágenes de Docker con cada cambio, puede adoptar el paradigma de contenedor de marco recomendado en el kit de herramientas de capacitación de SageMaker. Si desea desarrollar un contenedor de marco con su propio código, consulte este Tutorial de Amazon SageMaker.

Comparta piscinas calientes entre varios usuarios

Cuando se trabaja con un gran equipo de científicos de datos, se pueden compartir grupos tibios que tienen criterios de trabajo coincidentes, como el mismo Gestión de identidades y accesos de AWS (IAM) rol o imagen de contenedor.

Veamos una línea de tiempo de ejemplo. El usuario 1 inicia un trabajo de entrenamiento que se completa y da como resultado la creación de un nuevo grupo tibio. Cuando el usuario 2 inicia un trabajo de entrenamiento, el trabajo reutilizará el grupo tibio existente, lo que dará como resultado un inicio rápido del trabajo. Mientras el trabajo del usuario 2 se ejecuta con el grupo tibio en uso, si otro usuario inicia un trabajo de entrenamiento, se creará un segundo grupo tibio.

Este comportamiento de reutilización ayuda a reducir los costos al compartir grupos tibios entre usuarios que inician trabajos similares. Si desea evitar compartir pools tibios entre usuarios, los trabajos de los usuarios no deben tener criterios de trabajo coincidentes (por ejemplo, deben usar un rol de IAM diferente).

Notificar a los usuarios sobre la finalización del trabajo

Cuando utilice piscinas templadas para la experimentación, recomendamos notificar a los usuarios cuando su trabajo esté completo. Esto permite a los usuarios reanudar la experimentación antes de que caduque el grupo tibio o detener la piscina caliente si ya no la necesita. Tú también puedes activar automáticamente las notificaciones a Puente de eventos de Amazon.

Más herramientas para la experimentación rápida y la resolución de problemas de trabajos de formación

Con piscinas calientes, puede comenzar un trabajo en menos de 20 segundos. Algunos escenarios requieren experimentación y resolución de problemas interactivos y prácticos en tiempo real. el código abierto Biblioteca de SageMaker SSH Helper le permite instalarse en un contenedor de capacitación de SageMaker y realizar desarrollo y depuración remotos.

Conclusión

Con SageMaker Training Managed Warm Pools, puede mantener activas las instancias de hardware de entrenamiento de su modelo después de cada trabajo durante un período específico. Esto puede reducir la latencia de inicio para un trabajo de entrenamiento de modelos hasta 8 veces. Los grupos tibios administrados de capacitación de SageMaker están disponibles en todas las regiones públicas de AWS donde está disponible la capacitación de modelos de SageMaker.

Para empezar, consulte Entrenar usando SageMaker Managed Warm Pools.


Sobre los autores

Romi DattaDra. Romi Datta  es gerente sénior de administración de productos en el equipo de Amazon SageMaker responsable de la capacitación, el procesamiento y el almacenamiento de características. Ha estado en AWS durante más de 4 años, ocupando varios puestos de liderazgo en gestión de productos en SageMaker, S3 e IoT. Antes de AWS, trabajó en varios puestos de gestión de productos, ingeniería y liderazgo operativo en IBM, Texas Instruments y Nvidia. Tiene una maestría y un doctorado. en Ingeniería Eléctrica e Informática de la Universidad de Texas en Austin, y un MBA de la Escuela de Negocios Booth de la Universidad de Chicago.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Arun Nagarajan es ingeniero principal del equipo de Amazon SageMaker y se enfoca en las áreas de capacitación y MLOps. Ha estado con el equipo de SageMaker desde el año del lanzamiento, disfrutó contribuyendo en diferentes áreas de SageMaker, incluida la inferencia en tiempo real y los productos Model Monitor. Le gusta explorar el aire libre en el área del noroeste del Pacífico y escalar montañas.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.amy tu es gerente de desarrollo de software en AWS SageMaker. Se enfoca en reunir a un equipo de ingenieros de software para construir, mantener y desarrollar nuevas capacidades de la plataforma de capacitación SageMaker que ayuda a los clientes a capacitar sus modelos ML de manera más eficiente y sencilla. Tiene una pasión por la tecnología ML y AI, especialmente relacionada con la imagen y la visión de sus estudios de posgrado. En su tiempo libre, le encanta trabajar en música y arte con su familia.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai. sifei li es ingeniera de software en Amazon AI, donde trabaja en la creación de plataformas de aprendizaje automático de Amazon y formó parte del equipo de lanzamiento de Amazon SageMaker. En su tiempo libre le gusta tocar música y leer.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.jenna zhao es ingeniero de desarrollo de software en AWS SageMaker. Le apasiona la tecnología ML/AI y se ha centrado en crear la plataforma de capacitación SageMaker que permite a los clientes entrenar modelos de aprendizaje automático de manera rápida y sencilla. Fuera del trabajo, le gusta viajar y pasar tiempo con su familia.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Paras Mehra es gerente sénior de productos en AWS. Está centrado en ayudar a crear Amazon SageMaker Training and Processing. En su tiempo libre, Paras disfruta pasar tiempo con su familia y andar en bicicleta por el Área de la Bahía. Puedes encontrarlo en Etiqueta LinkedIn.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.gili nachum es un arquitecto sénior de soluciones especializado en inteligencia artificial y aprendizaje automático que trabaja como parte del equipo de Amazon Machine Learning de EMEA. A Gili le apasionan los desafíos de entrenar modelos de aprendizaje profundo y cómo el aprendizaje automático está cambiando el mundo tal como lo conocemos. En su tiempo libre, a Gili le gusta jugar al tenis de mesa.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.olivier cruchant es un arquitecto de soluciones especialista en aprendizaje automático en AWS, con sede en Francia. Olivier ayuda a los clientes de AWS, desde pequeñas empresas emergentes hasta grandes empresas, a desarrollar e implementar aplicaciones de aprendizaje automático de nivel de producción. En su tiempo libre, disfruta leer trabajos de investigación y explorar la naturaleza con amigos y familiares.

Mejores prácticas para Amazon SageMaker Training Managed Warm Pools PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.emilio webber se unió a AWS justo después del lanzamiento de SageMaker y ha estado tratando de contárselo al mundo desde entonces. Además de crear nuevas experiencias de aprendizaje automático para los clientes, a Emily le gusta meditar y estudiar el budismo tibetano.

Sello de tiempo:

Mas de Aprendizaje automático de AWS