Simplifique ModelOps con proyectos de IA de Amazon SageMaker utilizando plantillas basadas en Amazon S3

La gestión de los flujos de trabajo de ModelOps puede resultar compleja y llevar mucho tiempo. Si ha tenido dificultades para configurar plantillas de proyectos para su equipo de ciencia de datos, sabe que el enfoque anterior que utilizaba AWS Service Catalog requería configurar carteras, productos y administrar permisos complejos, lo que agregaba una importante sobrecarga administrativa antes de que su equipo pudiera comenzar a crear canalizaciones de aprendizaje automático (ML).

Amazon SageMaker AI Projects ahora ofrece un camino más sencillo: plantillas basadas en Amazon S3. Con esta nueva capacidad, puede almacenar plantillas de AWS CloudFormation directamente en Amazon Simple Storage Service (Amazon S3) y administrar todo su ciclo de vida utilizando funciones familiares de S3, como control de versiones, políticas de ciclo de vida y replicación entre regiones de S3. Esto significa que puede proporcionar a su equipo de ciencia de datos plantillas de proyecto automatizadas, seguras y con control de versiones con una sobrecarga significativamente menor.

Esta publicación explora cómo puede usar plantillas basadas en Amazon S3 para simplificar los flujos de trabajo de ModelOps, analiza los beneficios clave en comparación con el uso de enfoques de catálogo de servicios y demuestra cómo crear una solución ModelOps personalizada que se integra con GitHub y GitHub Actions, brindando a su equipo el aprovisionamiento con un solo clic de un entorno de aprendizaje automático completamente funcional.

¿Qué son los proyectos de IA de Amazon SageMaker?

Los equipos pueden utilizar los proyectos de IA de Amazon SageMaker para crear, compartir y administrar proyectos ModelOps completamente configurados. Dentro de este entorno estructurado, puede organizar código, datos y experimentos, lo que facilita la colaboración y la reproducibilidad.

Cada proyecto puede incluir canales de integración y entrega continua (CI/CD), registros de modelos, configuraciones de implementación y otros componentes de ModelOps, todo administrado dentro de SageMaker AI. Las plantillas reutilizables ayudan a estandarizar las prácticas de ModelOps codificando las mejores prácticas para el procesamiento de datos, el desarrollo de modelos, la capacitación, la implementación y el monitoreo. Los siguientes son casos de uso populares que puede orquestar utilizando Proyectos de IA de SageMaker:

Automatice los flujos de trabajo de ML: configure flujos de trabajo de CI/CD que creen, prueben e implementen automáticamente modelos de ML. Haga cumplir la gobernanza y el cumplimiento: ayude a que sus proyectos sigan los estándares organizacionales de seguridad, redes y etiquetado de recursos. Las prácticas de etiquetado consistentes facilitan la asignación precisa de costos entre equipos y proyectos, al tiempo que optimizan las auditorías de seguridad. Acelere el tiempo de obtención de valor: proporcione entornos preconfigurados para que los científicos de datos se centren en los problemas de aprendizaje automático, no en la infraestructura. Mejore la colaboración: establezca estructuras de proyecto consistentes para compartir y reutilizar código más fácilmente.

El siguiente diagrama muestra cómo SageMaker AI Projects ofrece flujos de trabajo separados para administradores, ingenieros de ML y científicos de datos. Donde los administradores crean y administran las plantillas de casos de uso de ML y los ingenieros de ML y los científicos de datos consumen las plantillas aprobadas en forma de autoservicio.

Novedades: plantillas de proyectos basadas en Amazon SageMaker AI S3

La última actualización de SageMaker AI Projects presenta la capacidad para que los administradores almacenen y administren plantillas de proyectos de ML directamente en Amazon S3. Las plantillas basadas en S3 son una alternativa menos complicada y más flexible al catálogo de servicios requerido anteriormente. Con esta mejora, las plantillas de AWS CloudFormation se pueden versionar, proteger y compartir de manera eficiente entre equipos utilizando los controles de acceso completos, la administración del ciclo de vida y las funciones de replicación proporcionadas por S3. Ahora, los equipos de ciencia de datos pueden lanzar nuevos proyectos ModelOps desde estas plantillas respaldadas por S3 directamente en Amazon SageMaker Studio. Esto ayuda a las organizaciones a mantener la coherencia y el cumplimiento a escala de sus estándares internos.

Cuando almacena plantillas en Amazon S3, están disponibles en todas las regiones de AWS donde se admiten proyectos de IA de SageMaker. Para compartir plantillas entre cuentas de AWS, puede utilizar políticas de depósito S3 y controles de acceso entre cuentas. La capacidad de activar el control de versiones en S3 proporciona un historial completo de cambios de plantilla, lo que facilita auditorías y reversiones, al mismo tiempo que proporciona un registro inmutable de la evolución de la plantilla del proyecto a lo largo del tiempo. Si sus equipos utilizan actualmente plantillas basadas en Service Catalog, el enfoque basado en S3 proporciona una ruta de migración sencilla. Al migrar del Catálogo de servicios a S3, las consideraciones principales implican aprovisionar nuevas funciones de SageMaker para reemplazar las funciones específicas del Catálogo de servicios, actualizar las referencias de las plantillas en consecuencia, cargar plantillas en S3 con el etiquetado adecuado y configurar etiquetas a nivel de dominio para que apunten a la ubicación del depósito de plantillas. Para las organizaciones que utilizan repositorios de plantillas centralizados, se deben establecer políticas de depósitos S3 entre cuentas para permitir el descubrimiento de plantillas desde cuentas de consumidores, con el dominio SageMaker de cada cuenta de consumidor etiquetado para hacer referencia al depósito central. Tanto las plantillas basadas en S3 como las del catálogo de servicios se muestran en pestañas separadas dentro de la interfaz de creación de proyectos de IA de SageMaker, para que las organizaciones puedan introducir plantillas de S3 gradualmente sin interrumpir los flujos de trabajo existentes durante la migración.

Los proyectos ModelOps basados ​​en S3 admiten plantillas de CloudFormation personalizadas que usted crea para el caso de uso de ML de su organización. Las plantillas proporcionadas por AWS (como las plantillas de proyecto ModelOps integradas) siguen estando disponibles exclusivamente a través de Service Catalog. Sus plantillas personalizadas deben ser archivos CloudFormation válidos en formato YAML. Para comenzar a usar plantillas basadas en S3 con SageMaker AI Projects, su dominio de SageMaker (el espacio de trabajo colaborativo para sus equipos de ML) debe incluir la etiqueta sagemaker:projectS3TemplatesLocation con el valor s3:////. Cada archivo de plantilla cargado en S3 debe estar etiquetado con sagemaker:studio-visibility=true para aparecer en la consola de proyectos de SageMaker AI Studio. Deberá otorgar acceso de lectura a los roles de ejecución de SageMaker en la política del depósito de S3 y habilitar la configuración de CORS en el depósito de S3 para permitir que los proyectos de IA de SageMaker accedan a las plantillas de S3.

El siguiente diagrama ilustra cómo las plantillas basadas en S3 se integran con los proyectos de IA de SageMaker para permitir flujos de trabajo escalables de ModelOps. La configuración opera en dos flujos de trabajo separados: configuración única por parte de los administradores y lanzamiento del proyecto por parte de ingenieros de ML/científicos de datos. Cuando los ingenieros de ML/científicos de datos lanzan un nuevo proyecto ModelOps en SageMaker AI, SageMaker AI lanza una pila de AWS CloudFormation para aprovisionar los recursos definidos en la plantilla y, una vez que se completa el proceso, puede acceder a todos los recursos especificados y a las canalizaciones de CI/CD configuradas en su proyecto.

La gestión del ciclo de vida de los proyectos iniciados se puede lograr a través de la consola de SageMaker Studio, donde los usuarios pueden navegar a Plantillas de S3, seleccionar un proyecto y usar el menú desplegable Acciones para actualizar o eliminar proyectos. Las actualizaciones del proyecto se pueden utilizar para modificar los parámetros de la plantilla existente o la propia URL de la plantilla, lo que activa actualizaciones de la pila de CloudFormation que se validan antes de la ejecución, mientras que la eliminación del proyecto elimina todos los recursos y configuraciones de CloudFormation asociados. Estas operaciones del ciclo de vida también se pueden realizar mediante programación utilizando las API de SageMaker.

Para demostrar el poder de las plantillas basadas en S3, veamos un escenario del mundo real en el que un equipo de administración necesita proporcionar a los científicos de datos un flujo de trabajo ModelOps estandarizado que se integre con sus repositorios de GitHub existentes.

Caso de uso: plantilla MLOps integrada en GitHub para equipos empresariales

Muchas organizaciones usan GitHub como su sistema de control de fuente principal y desean usar GitHub Actions para CI/CD mientras usan SageMaker para cargas de trabajo de ML. Sin embargo, configurar esta integración requiere configurar múltiples servicios de AWS, establecer conexiones seguras e implementar flujos de trabajo de aprobación adecuados, una tarea compleja que puede llevar mucho tiempo si se realiza manualmente. Nuestra plantilla basada en S3 resuelve este desafío al proporcionar una canalización de ModelOps completa que incluye orquestación de CI/CD, componentes de SageMaker Pipelines y automatización impulsada por eventos. El siguiente diagrama ilustra el flujo de trabajo de un extremo a otro proporcionado por esta plantilla de ModelOps.

Este proyecto de ModelOps de muestra con plantillas basadas en S3 permite flujos de trabajo de ModelOps totalmente automatizados y gobernados. Cada proyecto de ModelOps incluye un repositorio de GitHub preconfigurado con flujos de trabajo de acciones y AWS CodeConnections seguras para una integración perfecta. Tras la confirmación del código, se activa una canalización de SageMaker para orquestar un proceso estandarizado que involucra preprocesamiento de datos, entrenamiento de modelos, evaluación y registro. Para la implementación, el sistema admite la puesta en escena automatizada en la aprobación del modelo, con controles de validación sólidos, una puerta de aprobación manual para promover los modelos a producción y una arquitectura segura basada en eventos que utiliza AWS Lambda y Amazon EventBridge. A lo largo del flujo de trabajo, la gobernanza cuenta con el respaldo de SageMaker Model Registry para realizar un seguimiento de las versiones y el linaje del modelo, pasos de aprobación bien definidos, administración segura de credenciales mediante AWS Secrets Manager y estándares consistentes de etiquetado y nomenclatura para todos los recursos.

Cuando los científicos de datos seleccionan esta plantilla de SageMaker Studio, proporcionan un entorno ModelOps completamente funcional a través de un proceso simplificado. Envían su código de aprendizaje automático a GitHub utilizando la funcionalidad Git incorporada dentro del entorno de desarrollo integrado (IDE) de Studio, y la canalización maneja automáticamente el entrenamiento, la evaluación y la implementación progresiva del modelo desde la etapa de producción hasta la producción, todo mientras se mantienen los requisitos de cumplimiento y seguridad empresarial. Las instrucciones de configuración completas junto con el código de esta plantilla ModelOps están disponibles en nuestro repositorio de GitHub.

Después de seguir las instrucciones en el repositorio, puede encontrar la plantilla mlops-github-actions en la sección Proyectos de AI de SageMaker en la consola de SageMaker AI Studio eligiendo Proyectos en el panel de navegación, seleccionando la pestaña Plantillas de organización y eligiendo Siguiente, como se muestra en la siguiente imagen.

Para iniciar el proyecto ModelOps, debe ingresar detalles específicos del proyecto, incluido el campo Role ARN. Este campo debe contener el ARN de AmazonSageMakerProjectsLaunchRole creado durante la configuración, como se muestra en la siguiente imagen.

Como práctica recomendada de seguridad, utilice el nombre de recurso de Amazon (ARN) de AmazonSageMakerProjectsLaunchRole, no su función de ejecución de SageMaker.

AmazonSageMakerProjectsLaunchRole es una función de aprovisionamiento que actúa como intermediario durante la creación del proyecto ModelOps. Este rol contiene todos los permisos necesarios para crear la infraestructura de su proyecto, incluidos los roles de AWS Identity and Access Management (IAM), depósitos de S3, AWS CodePipeline y otros recursos de AWS. Al utilizar esta función de lanzamiento dedicada, los ingenieros de ML y los científicos de datos pueden crear proyectos ModelOps sin requerir permisos más amplios en sus propias cuentas. Su función de ejecución personal de SageMaker sigue teniendo un alcance limitado: solo necesitan permiso para asumir la función de lanzamiento.

Esta separación de responsabilidades es importante para mantener la seguridad. Sin roles de lanzamiento, cada practicante de ML necesitaría amplios permisos de IAM para crear canalizaciones de código, proyectos de AWS CodeBuild, depósitos de S3 y otros recursos de AWS directamente. Con los roles de lanzamiento, solo necesitan permiso para asumir un rol preconfigurado que maneja el aprovisionamiento en su nombre, manteniendo sus permisos personales mínimos y seguros.

Ingrese los detalles de configuración del proyecto que desee y elija Siguiente. Luego, la plantilla creará dos flujos de trabajo automatizados de ModelOps (uno para la creación de modelos y otro para la implementación de modelos) que funcionan juntos para proporcionar CI/CD para sus modelos de aprendizaje automático. El ejemplo completo de ModelOps se puede encontrar en el repositorio mlops-github-actions.

Limpiar

Después de la implementación, incurrirá en costos por los recursos implementados. Si no tiene intención de continuar usando la configuración, elimine los recursos del proyecto ModelOps para evitar cargos innecesarios.

Para destruir el proyecto, abra SageMaker Studio, elija Más en el panel de navegación y seleccione Proyectos. Elija el proyecto que desea eliminar, elija los puntos suspensivos verticales sobre la esquina superior derecha de la lista de proyectos y elija Eliminar. Revise la información en el cuadro de diálogo Eliminar proyecto y seleccione Sí, eliminar el proyecto para confirmar. Después de la eliminación, verifique que su proyecto ya no aparezca en la lista de proyectos.

Además de eliminar un proyecto, lo que eliminará y desaprovisionará el proyecto de IA de SageMaker, también deberá eliminar manualmente los siguientes componentes si ya no son necesarios: repositorios de Git, canalizaciones, grupos de modelos y puntos finales.

Conclusión

El aprovisionamiento de plantillas basado en Amazon S3 para proyectos de IA de Amazon SageMaker transforma la forma en que las organizaciones estandarizan las operaciones de aprendizaje automático. Como se demuestra en esta publicación, una sola plantilla de AWS CloudFormation puede proporcionar un flujo de trabajo de CI/CD completo que integre su repositorio Git (GitHub, Bitbucket o GitLab), SageMaker Pipelines y SageMaker Model Registry, brindando a los equipos de ciencia de datos flujos de trabajo automatizados mientras se mantienen los controles de seguridad y gobernanza empresarial. Para obtener más información sobre los proyectos de IA de SageMaker y las plantillas basadas en S3, consulte Automatización de ModelOps con proyectos de SageMaker.

Al utilizar plantillas basadas en S3 en SageMaker AI Projects, los administradores pueden definir y gobernar la infraestructura de ML, mientras que los ingenieros de ML y los científicos de datos obtienen acceso a entornos de ML preconfigurados a través del aprovisionamiento de autoservicio. Explore el repositorio de ejemplos de GitHub para encontrar plantillas populares de ModelOps y comience hoy siguiendo las instrucciones proporcionadas. También puede crear plantillas personalizadas adaptadas a los requisitos específicos, las políticas de seguridad y los marcos de aprendizaje automático preferidos de su organización.

Sobre los autores

Christian Kamwangala es arquitecto de soluciones especializado en IA/ML e IA generativa en AWS, con sede en París, Francia. Se asocia con clientes empresariales para diseñar, optimizar e implementar soluciones de IA de nivel de producción aprovechando la pila integral de aprendizaje automático de AWS. Christian se especializa en técnicas de optimización de inferencias que equilibran los requisitos de rendimiento, costo y latencia para implementaciones a gran escala. En su tiempo libre, Christian disfruta explorar la naturaleza y pasar tiempo con familiares y amigos.

Sandeep Raveesh es arquitecto de soluciones especializado en IA generativa en AWS. Trabaja con el cliente a lo largo de su recorrido AIOps a través de la capacitación de modelos, aplicaciones de IA generativa como agentes y la ampliación de casos de uso de IA generativa. También se centra en estrategias de comercialización que ayudan a AWS a crear y alinear productos para resolver los desafíos de la industria en el espacio de la IA generativa. Puede conectarse con Sandeep en LinkedIn para conocer las soluciones de inteligencia artificial generativa.

Paolo Di Francesco es arquitecto senior de soluciones en Amazon Web Services (AWS). Es Doctor en Ingeniería de Telecomunicaciones y tiene experiencia en ingeniería de software. Le apasiona el aprendizaje automático y actualmente se centra en utilizar su experiencia para ayudar a los clientes a alcanzar sus objetivos en AWS, en debates sobre MLOps. Fuera del trabajo, le gusta jugar al fútbol y leer.