SageMaker : Cómo construir tus Machine Learning Pipelines

Bootcamp AI
3 min readApr 22, 2021

Background:

SageMaker es una excelente plataforma para el desarrollo de modelos, la formación y las actividades de alojamiento. Lo que es aún mejor es que puede elegir las actividades para las que desea aprovechar SageMaker. En otras palabras, no le obliga a usar su plataforma para las 3 fases. ¿Quiere traer su propio modelo (BYOM) y usar SageMaker solo para entrenamiento y hospedaje? No hay problema, eso lo admite. ¿Tiene sus propios in-house dev-training pipelines y solo desea descargar el alojamiento a SageMaker? ¡También puede hacer eso! Este artículo le muestra cómo puede aprovechar los servicios de la plataforma SageMaker y AWS para construir un pipeline de ML de un extremo a otro.

Resumen del problema:

Los flujos de trabajo de AA típicos enfrentan los siguientes desafíos:

  • Orquestación manual para conjuntos de datos y código fuente
  • Las entradas y salidas no están versionadas (es decir, el conjunto de datos y el código fuente)
  • Seguimiento y registro manual (es decir, cambios en el seguimiento de auditoría: ¿quién, cuándo y qué?)

El objetivo es crear una canalización de AA automatizada de un extremo a otro con los siguientes atributos:

  • Repetible
  • Auditable (es decir, registro y seguimiento)
  • Seguro
  • Flexible
  • Colaborativo.

Esta arquitectura presenta un pipeline mínimo viable (MVP) que admite los atributos anteriores y le ayuda a ponerse en marcha rápidamente. Esta arquitectura aprovecha los servicios de la plataforma AWS junto con la API de SageMaker.

Descripción general:

El pipeline se puede activar para los siguientes dos escenarios:

  1. El código está comprometido con el repositorio de github.
  2. El conjunto de datos de entrenamiento se actualiza en el bucket S3.

Pipeline tiene dos etapas lógicas distintas:

  1. Construir(Build) : compile y cree su código de aplicación fuente personalizado y genere una imagen de Docker
  2. Entrenamiento(Train) : ejecute en entrenamiento en la imagen de la ventana acoplable con la API de SageMaker y los artefactos del modelo de salida en el bucket de S3.

Pasos:

1 . El código está comprometido con el repositorio de código fuente por parte del ingeniero de datos / científico de datos O el conjunto de datos de entrada se actualiza con nuevos datos.

2. AWS Code Pipeline se activa cuando se envía un nuevo código a Github.

3. La función Lambda se activa cada vez que hay nuevos datos de entrenamiento en el bucket de entrenamiento. La función Lambda, a su vez, inicia AWS CodePipeline

4. AWS CodePipeline comienza la ejecución de la etapa de compilación. AWS CodeBuild extrae los datos del repositorio de origen de GitHub y compila el paquete de la aplicación.

5. El contenedor Docker se crea con el código compilado y se envía al servicio AWS ECR. Este contenedor Docker está disponible para su consumo durante la etapa de entrenamiento.

6. La función Lambda se activa para ejecutar un trabajo de entrenamiento mediante la API de SageMaker, haciendo referencia al contenedor de la ventana acoplable personalizado.

7. El trabajo de formación se crea en SageMaker. Cuando finaliza el trabajo de entrenamiento, guarda los artefactos del modelo en el bucket de S3.

8. La función Lambda se activa para almacenar metadatos como git hash, la versión del objeto de datos de entrada junto con el estado del trabajo / metadatos de SageMaker Training en la tabla de DynamoDB. DynamoDB se utiliza aquí como un almacén de metadatos. Lambda también se usa para enviar notificaciones por correo electrónico sobre el estado de capacitación laboral, etc.

Y ahí lo tienes. Una sencilla canalización de SageMaker ML de principio a fin que satisface los siguientes objetivos.

  • Flexible: altamente flexible para cualquier tipo de modelo de entrenamiento personalizado
  • Colaborativo: basado en el repositorio central de Github. Varios científicos de datos e ingenieros de datos pueden trabajar en él simultáneamente.
  • Repetible: las actividades de la canalización están automatizadas y se repiten constantemente
  • Registros de auditoría : los registros de auditoría se pueden guardar en DynamoDB, que se puede utilizar para el seguimiento y la auditoría.
  • Seguro: los datos se cifran en reposo y en vuelo.

Conoce más de Bootcamp AI

bootcampai.org

--

--