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.
Optimice los flujos de trabajo de aprendizaje automático desde el desarrollo local hasta los experimentos escalables mediante el uso de SageMaker IA e Hydra
Creado por David Sauerwein (AWS), Julian Ferdinand Grueber (AWS) y Marco Geiger (AWS)
Resumen
Este patrón proporciona un enfoque unificado para configurar y ejecutar algoritmos de aprendizaje automático (ML) desde las pruebas locales hasta la producción en Amazon SageMaker AI. Este patrón se centra en los algoritmos de aprendizaje automático, pero su enfoque se extiende a la ingeniería de características, la inferencia y todo el proceso de aprendizaje automático. Este patrón demuestra la transición del desarrollo de guiones locales a los trabajos de formación en SageMaker IA a través de un ejemplo de caso de uso.
Un flujo de trabajo de aprendizaje automático típico consiste en desarrollar y probar soluciones en una máquina local, ejecutar experimentos a gran escala (por ejemplo, con diferentes parámetros) en la nube e implementar la solución aprobada en la nube. A continuación, se debe supervisar y mantener la solución implementada. Sin un enfoque unificado de este flujo de trabajo, los desarrolladores a menudo necesitan refactorizar su código en cada etapa. Si la solución depende de una gran cantidad de parámetros que pueden cambiar en cualquier etapa de este flujo de trabajo, puede resultar cada vez más difícil mantener la organización y la coherencia.
Este patrón aborda estos desafíos. En primer lugar, elimina la necesidad de refactorizar el código entre entornos al proporcionar un flujo de trabajo unificado que mantiene la coherencia tanto si se ejecuta en máquinas locales, en contenedores o con IA. SageMaker En segundo lugar, simplifica la gestión de parámetros mediante el sistema de configuración de Hydra, en el que los parámetros se definen en archivos de configuración independientes que se pueden modificar y combinar fácilmente, con un registro automático de la configuración de cada ejecución. Para obtener más detalles sobre cómo este patrón aborda estos desafíos, consulte la información adicional.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS
Un rol de usuario AWS Identity and Access Management (IAM) para implementar e iniciar los trabajos de formación en SageMaker IA
AWS Command Line Interface (AWS CLI) versión 2.0 o posterior instalada y configurada
Poetry
tiene instalada la versión 1.8 o posterior, pero anterior a la 2.0 Python versión 3.10.x
Limitaciones
Actualmente, el código solo se dirige a los trabajos de formación en SageMaker IA. Extenderlo a los trabajos de procesamiento y a toda la cartera de SageMaker IA es sencillo.
Para una configuración de SageMaker IA totalmente productiva, es necesario contar con detalles adicionales. Algunos ejemplos podrían ser las claves personalizadas AWS Key Management Service (AWS KMS) para el procesamiento y el almacenamiento, o las configuraciones de red. También puede configurar estas opciones adicionales utilizando Hydra en una subcarpeta específica de la
config
carpeta.Algunas Servicios de AWS no están disponibles en todas. Regiones de AWS Para ver la disponibilidad regional, consulta AWS Servicios por región
. Para conocer puntos de enlace específicos, consulte Puntos de enlace y cuotas del servicio y elija el enlace para el servicio.
Arquitectura
El siguiente diagrama muestra la arquitectura de la solución.

En el diagrama, se muestra el siguiente flujo de trabajo:
El científico de datos puede iterar el algoritmo a pequeña escala en un entorno local, ajustar los parámetros y probar el guion de entrenamiento rápidamente sin necesidad de usar Docker o IA. SageMaker (Para obtener más información, consulta la tarea «Ejecutar localmente para realizar pruebas rápidas» en Epics).
Una vez satisfecho con el algoritmo, el científico de datos crea y envía la imagen de Docker al repositorio Amazon Elastic Container Registry (Amazon ECR) denominado.
hydra-sm-artifact
(Para obtener más información, consulta la sección «Ejecutar flujos de trabajo con SageMaker IA» en Epics).El científico de datos inicia trabajos de capacitación en SageMaker IA o trabajos de optimización de hiperparámetros (HPO) mediante scripts de Python. Para los trabajos de formación habituales, la configuración ajustada se escribe en el bucket de Amazon Simple Storage Service (Amazon S3) denominado.
hydra-sample-config
En el caso de los trabajos de HPO, se aplica el conjunto de configuraciones predeterminado que se encuentra en laconfig
carpeta.El trabajo de entrenamiento de SageMaker IA extrae la imagen de Docker, lee los datos de entrada del bucket
hydra-sample-data
de Amazon S3 y obtiene la configuración del bucket de Amazon S3hydra-sample-config
o utiliza la configuración predeterminada. Tras la formación, el trabajo guarda los datos de salida en el bucket de Amazon S3hydra-sample-data
.
Automatizar y escalar
Para la formación, el reentrenamiento o la inferencia automatizados, puedes integrar el AWS CLI código con servicios como AWS LambdaAWS CodePipeline, o Amazon. EventBridge
El escalamiento se puede lograr cambiando las configuraciones (por ejemplo, el tamaño de las instancias) o añadiendo configuraciones para la formación distribuida.
Herramientas
Servicios de AWS
AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el país Cuentas de AWS Regiones de AWS.
AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que te ayuda a interactuar Servicios de AWS mediante los comandos de tu consola de línea de comandos. Para este patrón, AWS CLI es útil tanto para la configuración inicial de los recursos como para las pruebas.
Amazon Elastic Container Registry (Amazon ECR) es un servicio de registro de imágenes de contenedor administrado que es seguro, escalable y fiable.
Amazon SageMaker AI es un servicio de aprendizaje automático (ML) gestionado que le ayuda a crear y entrenar modelos de aprendizaje automático y, a continuación, a implementarlos en un entorno hospedado listo para la producción. SageMaker AI Training es un servicio de aprendizaje automático totalmente gestionado dentro de la SageMaker IA que permite el entrenamiento de modelos de aprendizaje automático a escala. La herramienta puede gestionar las demandas computacionales de los modelos de entrenamiento de manera eficiente, haciendo uso de la escalabilidad incorporada y la integración con otros Servicios de AWS modelos. SageMaker AI Training también es compatible con algoritmos y contenedores personalizados, lo que la hace flexible para una amplia gama de flujos de trabajo de aprendizaje automático.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
Otras herramientas
Docker
es un conjunto de productos de plataforma como servicio (PaaS) que utiliza la virtualización a nivel del sistema operativo para entregar software en contenedores. Se utilizó en este patrón para garantizar entornos coherentes en varias etapas, desde el desarrollo hasta la implementación, y para empaquetar las dependencias y el código de forma fiable. La contenedorización de Docker permitía un fácil escalado y control de versiones en todo el flujo de trabajo. Hydra es una
herramienta de gestión de la configuración que proporciona flexibilidad para gestionar múltiples configuraciones y una gestión dinámica de los recursos. Es fundamental para administrar las configuraciones del entorno, ya que permite una implementación perfecta en diferentes entornos. Para obtener más información sobre Hydra, consulte Información adicional. Python
es un lenguaje de programación informático de uso general. Se usó Python para escribir el código ML y el flujo de trabajo de implementación. Poetry
es una herramienta para la gestión y el empaquetado de dependencias en Python.
Repositorio de código
El código de este patrón está disponible en el repositorio GitHub configuring-sagemaker-training-jobs-with-hydra
Prácticas recomendadas
Elija una función de IAM para implementar e iniciar los trabajos de formación en SageMaker IA que siga el principio de privilegios mínimos y conceda los permisos mínimos necesarios para realizar una tarea. Para obtener más información, consulte Otorgar privilegio mínimo y Prácticas recomendadas de seguridad en la documentación de IAM.
Utilice credenciales temporales para acceder a la función de IAM en la terminal.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree y active el entorno virtual. | Para crear y activar el entorno virtual, ejecute los siguientes comandos en la raíz del repositorio:
| AWS general |
Implemente la infraestructura. | Para implementar la infraestructura mediante CloudFormation, ejecute el siguiente comando:
| General AWS, DevOps ingeniero |
Descargue los datos de muestra. | Para descargar los datos de entrada de openml
| AWS general |
Ejecute localmente para realizar pruebas rápidas. | Para ejecutar el código de entrenamiento localmente para realizar las pruebas, ejecuta el siguiente comando:
Los registros de todas las ejecuciones se almacenan por tiempo de ejecución en una carpeta llamada También puede realizar varios entrenamientos en paralelo, con diferentes parámetros, mediante el uso de la | Científico de datos |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Configure las variables de entorno. | Para ejecutar tu trabajo con SageMaker IA, configura las siguientes variables de entorno, proporcionando tu ID Región de AWS y tu Cuenta de AWS ID:
| AWS general |
Crea y envía una imagen de Docker. | Para crear la imagen de Docker y enviarla al repositorio de Amazon ECR, ejecute el siguiente comando:
Esta tarea supone que tiene credenciales válidas en su entorno. La imagen de Docker se envía al repositorio de Amazon ECR especificado en la variable de entorno de la tarea anterior y se utiliza para activar el contenedor de SageMaker IA en el que se ejecutará el trabajo de formación. | Ingeniero de aprendizaje automático, AWS general |
Copie los datos de entrada a Amazon S3. | El trabajo de formación en SageMaker IA debe recoger los datos de entrada. Para copiar los datos de entrada al bucket de Amazon S3 para datos, ejecute el siguiente comando:
| Ingeniero de datos, AWS general |
Envíe trabajos de formación en SageMaker IA. | Para simplificar la ejecución de sus scripts, especifique los parámetros de configuración predeterminados en el
| Ingeniero general de AWS, ML, científico de datos |
Ejecute el ajuste de hiperparámetros de SageMaker IA. | Ejecutar el ajuste de los hiperparámetros de la SageMaker IA es similar a enviar un trabajo de entrenamiento SageMaker de IA. Sin embargo, el script de ejecución difiere en algunos aspectos importantes, como puede ver en el archivo start_sagemaker_hpo_job.py Para iniciar el trabajo de optimización de hiperparámetros (HPO), ejecute los siguientes comandos:
| Científico de datos |
Solución de problemas
Problema | Solución |
---|---|
Token vencido | Exporte credenciales nuevas AWS . |
Falta de permisos de IAM | Asegúrese de exportar las credenciales de un rol de IAM que tenga todos los permisos de IAM necesarios para implementar la CloudFormation plantilla e iniciar los trabajos de formación en SageMaker IA. |
Recursos relacionados
Entrena un modelo con Amazon SageMaker AI (AWS documentación)
Información adicional
Este patrón aborda los siguientes desafíos:
Coherencia desde el desarrollo local hasta la implementación a escala: con este patrón, los desarrolladores pueden usar el mismo flujo de trabajo, independientemente de si utilizan scripts de Python locales, ejecutan contenedores Docker locales, realizan grandes experimentos con SageMaker IA o despliegan en SageMaker producción con IA. Esta coherencia es importante por las siguientes razones:
Iteración más rápida: permite una experimentación local rápida sin necesidad de realizar ajustes importantes al escalar.
Sin refactorización: la transición a experimentos más grandes con SageMaker IA es sencilla y no requiere una revisión de la configuración existente.
Mejora continua: desarrollar nuevas funciones y mejorar continuamente el algoritmo es sencillo porque el código sigue siendo el mismo en todos los entornos.
Gestión de la configuración: este patrón utiliza Hydra, una
Los parámetros se definen en los archivos de configuración, separados del código.
Los diferentes conjuntos de parámetros se pueden intercambiar o combinar fácilmente.
El seguimiento de los experimentos se simplifica porque la configuración de cada ejecución se registra automáticamente.
Los experimentos en la nube pueden utilizar la misma estructura de configuración que las ejecuciones locales, lo que garantiza la coherencia.
Con Hydra, puede gestionar la configuración de forma eficaz, habilitando las siguientes funciones:
Divida las configuraciones: divida las configuraciones de su proyecto en partes más pequeñas y manejables que se puedan modificar de forma independiente. Este enfoque facilita la gestión de proyectos complejos.
Ajuste los valores predeterminados con facilidad: cambie rápidamente las configuraciones de referencia para que sea más fácil probar nuevas ideas.
Alinee las entradas CLI y los archivos de configuración: combine las entradas de la línea de comandos con sus archivos de configuración sin problemas. Este enfoque reduce el desorden y la confusión, lo que hace que su proyecto sea más manejable con el tiempo.