Los clientes de AWS confían en Infraestructura como código (IaC) para diseñar, desarrollar y administrar su infraestructura en la nube. IaC garantiza que la infraestructura y los servicios del cliente sean consistentes, escalables y reproducibles, al tiempo que puede seguir las mejores prácticas en el área de operaciones de desarrollo (DevOps).
Un enfoque posible para administrar la infraestructura y los servicios de AWS con IaC es Terraform, que permite a los desarrolladores organizar su infraestructura en módulos de código reutilizables. Este aspecto está ganando cada vez más importancia en el área del aprendizaje automático (ML). El desarrollo y la administración de canalizaciones de ML, incluida la capacitación y la inferencia con Terraform como IaC, le permite escalar fácilmente para múltiples casos de uso de ML o regiones sin tener que desarrollar la infraestructura desde cero. Además, proporciona consistencia para la infraestructura (por ejemplo, tipo y tamaño de instancia) para el entrenamiento y la inferencia en diferentes implementaciones de la canalización de ML. Esto le permite enrutar las solicitudes y el tráfico entrante a diferentes Amazon SageMaker puntos finales.
En esta publicación, le mostramos cómo implementar y administrar canalizaciones de ML con Terraform y Amazon SageMaker.
Resumen de la solución
Esta publicación proporciona código y lo guía a través de los pasos necesarios para implementar la infraestructura de AWS para canalizaciones de aprendizaje automático con Terraform para el entrenamiento y la inferencia de modelos con Amazon SageMaker. La canalización de ML se administra a través de Funciones de paso de AWS para orquestar los diferentes pasos implementados en la canalización de ML, como se ilustra en la siguiente figura.
Step Functions inicia un AWS Lambda función, generando una identificación de trabajo única, que luego se usa al iniciar un trabajo de capacitación de SageMaker. Step Functions también crea un modelo, una configuración de punto final y un punto final utilizado para la inferencia. Los recursos adicionales incluyen lo siguiente:
- Gestión de identidades y accesos de AWS (IAM) roles y políticas adjuntos a los recursos para permitir la interacción con otros recursos
- Servicio de almacenamiento simple de Amazon (Amazon S3) cubos para datos de entrenamiento y resultados de modelos
- An Registro de contenedores elásticos de Amazon (Amazon ECR) repositorio para el Docker imagen que contiene la lógica de entrenamiento e inferencia
El código relacionado con ML para el entrenamiento y la inferencia con una imagen de Docker se basa principalmente en el trabajo existente en el siguiente Repositorio GitHub.
El siguiente diagrama ilustra la arquitectura de la solución:
Lo guiamos a través de los siguientes pasos de alto nivel:
- Implemente su infraestructura de AWS con Terraform.
- Envíe su imagen de Docker a Amazon ECR.
- Ejecute la canalización de ML.
- Invoque su punto final.
Estructura del repositorio
Puede encontrar el repositorio que contiene el código y los datos utilizados para esta publicación en el siguiente Repositorio GitHub.
El repositorio incluye los siguientes directorios:
/terraform
– Consta de las siguientes subcarpetas:./infrastructure
– Contiene el archivo main.tf que llama al módulo de canalización de ML, además de las declaraciones de variables que usamos para implementar la infraestructura../ml-pipeline-module
– Contiene el módulo de canalización de Terraform ML, que podemos reutilizar
/src
– Consta de las siguientes subcarpetas:./container
– Contiene código de ejemplo para entrenamiento e inferencia con las definiciones para la imagen de Docker./lambda_function
– Contiene el código de Python para las configuraciones de generación de funciones de Lambda, como una ID de trabajo única para el trabajo de entrenamiento de SageMaker.
/data
– Contiene el siguiente archivo:./iris.csv
– Contiene datos para entrenar el modelo ML
Requisitos previos
Para este tutorial, debe tener los siguientes requisitos previos:
- Una cuenta de AWS
- Terraform versión 0.13.5 o superior
- Interfaz de línea de comandos de AWS (CLI de AWS) v2
- Python 3.7 o mayor
- Docker
Implemente su infraestructura de AWS con Terraform
Para implementar la canalización de ML, debe ajustar algunas variables y nombres según sus necesidades. El código para este paso está en el /terraform
directorio.
Al inicializar por primera vez, abra el archivo terraform/infrastructure/terraform.tfvars
y ajustar la variable nombre del proyecto al nombre de tu proyecto, además de la variable región si desea implementar en otra región. También puede cambiar variables adicionales, como tipos de instancias para entrenamiento e inferencia.
Luego use los siguientes comandos para implementar la infraestructura con Terraform:
Verifique la salida y asegúrese de que los recursos planificados aparezcan correctamente, y confirme con sí en la etapa de aplicación si todo es correcto. Luego vaya a la consola de Amazon ECR (o verifique la salida de Terraform en la terminal) y obtenga la URL de su repositorio de ECR que creó a través de Terraform.
El resultado debe ser similar al siguiente resultado mostrado, incluida la URL del repositorio de ECR:
Envíe su imagen de Docker a Amazon ECR
Para que la canalización de ML y SageMaker entrenen y aprovisionen un punto de enlace de SageMaker para la inferencia, debe proporcionar una imagen de Docker y almacenarla en Amazon ECR. Puede encontrar un ejemplo en el directorio src/container
. Si ya aplicó la infraestructura de AWS del paso anterior, puede insertar la imagen de Docker como se describe. Después de desarrollar su imagen de Docker, puede realizar las siguientes acciones y enviarla a Amazon ECR (ajuste la URL de Amazon ECR según sus necesidades):
Si ya aplicó la infraestructura de AWS con Terraform, puede enviar los cambios de su código y la imagen de Docker directamente a Amazon ECR sin volver a implementar a través de Terraform.
Ejecute la canalización de ML
Para entrenar y ejecutar la canalización de ML, vaya a la consola de Step Functions e inicie la implementación. Puede comprobar el progreso de cada paso en la visualización de la máquina de estado. También puede verificar el progreso del trabajo de capacitación de SageMaker y el estado de su terminal de SageMaker.
Después de ejecutar correctamente la máquina de estado en Step Functions, puede ver que se ha creado el extremo de SageMaker. En la consola de SageMaker, elija Inferencia en el panel de navegación, luego Endpoints. Asegúrese de esperar a que el estado cambie a InService.
Invoque su punto final
Para invocar su punto final (en este ejemplo, para el conjunto de datos del iris), puede usar la siguiente secuencia de comandos de Python con el AWS SDK para Python (Boto3). Puede hacerlo desde un cuaderno de SageMaker o incrustar el siguiente fragmento de código en una función de Lambda:
Limpiar
Puede destruir la infraestructura creada por Terraform con el comando terraform destroy, pero primero debe eliminar los datos y archivos en los depósitos S3. Además, el punto final de SageMaker (o varios puntos finales de SageMaker si se ejecutan varias veces) se crea a través de Step Functions y no se administra a través de Terraform. Esto significa que la implementación ocurre cuando se ejecuta la canalización de ML con Step Functions. Por lo tanto, asegúrese de eliminar el punto final de SageMaker o los puntos finales creados a través de la canalización de aprendizaje automático de Step Functions para evitar costos innecesarios. Complete los siguientes pasos:
- En la consola de Amazon S3, elimine el conjunto de datos en el depósito de entrenamiento de S3.
- Elimine todos los modelos que entrenó a través de la canalización de ML en el depósito de modelos de S3, ya sea a través de la consola de Amazon S3 o de la AWS CLI.
- Destruye la infraestructura creada a través de Terraform:
- Elimine los puntos de enlace de SageMaker, la configuración de puntos de enlace y los modelos creados a través de Step Functions, ya sea en la consola de SageMaker o a través de la AWS CLI.
Conclusión
¡Felicidades! Implementó una canalización de aprendizaje automático mediante SageMaker con Terraform. Esta solución de ejemplo muestra cómo puede implementar fácilmente la infraestructura y los servicios de AWS para canalizaciones de aprendizaje automático de forma reutilizable. Esto le permite escalar para múltiples casos de uso o regiones, y permite entrenar e implementar modelos ML con un solo clic de manera consistente. Además, puede ejecutar la canalización de ML varias veces, por ejemplo, cuando hay nuevos datos disponibles o si desea cambiar el código del algoritmo. También puede optar por enrutar las solicitudes o el tráfico a diferentes terminales de SageMaker.
Lo animo a explorar la posibilidad de agregar funciones de seguridad y adoptar las mejores prácticas de seguridad de acuerdo con sus necesidades y los posibles estándares de la empresa. Además, incorporar esta solución en sus canalizaciones de CI/CD le brindará más capacidades para adoptar y establecer las mejores prácticas y estándares de DevOps de acuerdo con sus requisitos.
Sobre la autora
Oliver Zollikofer es científico de datos en Amazon Web Services. Permite a los clientes empresariales globales crear, entrenar e implementar modelos de aprendizaje automático, así como administrar el ciclo de vida del modelo ML con MLOps. Además, crea y diseña soluciones en la nube relacionadas.
- Coinsmart. El mejor intercambio de Bitcoin y criptografía de Europa.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. ACCESO LIBRE.
- CriptoHawk. Radar de altcoins. Prueba gratis.
- Fuente: https://aws.amazon.com/blogs/machine-learning/deploy-and-manage-machine-learning-pipelines-with-terraform-using-amazon-sagemaker/
- "
- 100
- 7
- de la máquina
- Conforme
- a través de
- acciones
- adición
- Adicionales
- algoritmo
- Todos
- ya haya utilizado
- Amazon
- Amazon Web Services
- Otra
- enfoque
- arquitectura
- Reservada
- Hoy Disponibles
- AWS
- "Ser"
- MEJOR
- y las mejores prácticas
- cuerpo
- frontera
- build
- construye
- capacidades
- cases
- CD
- el cambio
- Elige
- Soluciones
- infraestructura de nube
- código
- compañía
- Configuración
- Consola
- Envase
- contiene
- Precio
- creado
- crea
- cliente
- Clientes
- datos
- científico de datos
- desplegar
- desplegado
- Desplegando
- despliegue
- descrito
- Diseño
- destruir
- destruido
- desarrollar
- desarrollado
- desarrolladores
- el desarrollo
- Desarrollo
- una experiencia diferente
- directamente
- Docker
- pasan fácilmente
- habilitar
- fomentar
- Punto final
- Empresa
- todo
- ejemplo
- existente
- explorar
- Moda
- Caracteristicas
- Figura
- Nombre
- primer vez
- seguir
- siguiendo
- función
- promover
- la generación de
- Buscar
- es
- Cómo
- Como Hacer
- HTTPS
- Identidad
- imagen
- implementación
- implementado
- importancia
- incluir
- incluye
- Incluye
- cada vez más
- EN LA MINA
- Las opciones de entrada
- interacción
- IT
- Trabajos
- más reciente
- aprendizaje
- línea
- máquina
- máquina de aprendizaje
- gestionan
- gestionado
- administrar
- ML
- modelo
- modelos
- múltiples
- nombres
- Navegación
- necesario
- cuaderno
- habiertos
- Operaciones
- solicite
- Otro
- políticas
- posible
- posible
- proyecto
- proporcionar
- proporciona un
- repositorio
- solicita
- solicitudes
- Requisitos
- Recursos
- respuesta
- Ruta
- Ejecutar
- correr
- escalable
- Escala
- Científico
- Sdk
- EN LINEA
- Servicios
- similares
- sencillos
- Tamaño
- sólido
- a medida
- Soluciones
- Etapa
- estándares de salud
- comienzo
- comienza
- Estado
- Estado
- STORAGE
- tienda
- Con éxito
- terminal
- por lo tanto
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- tráfico
- Formación
- único
- utilizan el
- visualización
- esperar
- web
- servicios web
- mientras
- sin
- Actividades: