Incorpore SageMaker Autopilot en sus procesos de MLOps usando un Proyecto personalizado de SageMaker.

Incorpore SageMaker Autopilot en sus procesos de MLOps con un Proyecto personalizado de SageMaker.

Cada organización tiene su propio conjunto de estándares y prácticas que proporcionan seguridad y gobernanza para su entorno de AWS. Amazon SageMaker es un servicio completamente administrado para preparar datos, construir, entrenar e implementar modelos de aprendizaje automático (ML) para cualquier caso de uso con infraestructura, herramientas y flujos de trabajo completamente administrados. SageMaker proporciona un conjunto de plantillas para organizaciones que desean comenzar rápidamente con flujos de trabajo de ML y tuberías de integración y entrega continua (CI/CD) de DevOps.

La mayoría de los clientes empresariales ya tienen una práctica MLOps bien establecida con un entorno estandarizado en su lugar, por ejemplo, un repositorio estandarizado, infraestructura y protecciones de seguridad, y desean extender su proceso MLOps a herramientas AutoML sin código y con poco código también. También tienen muchos procesos a los que deben adherirse antes de promover un modelo a producción. Buscan una manera rápida y fácil de graduarse de la fase inicial a una fase operativa repetible, confiable y eventualmente escalable, como se describe en el siguiente diagrama. Para obtener más información, consulte la hoja de ruta básica de MLOps para empresas con Amazon SageMaker.

Aunque estas empresas tienen equipos robustos de ciencia de datos y MLOps para ayudarles a construir tuberías confiables y escalables, quieren que los usuarios de sus herramientas AutoML sin código y con poco código produzcan artefactos de código y modelos de una manera que se pueda integrar con sus prácticas estandarizadas, siguiendo su estructura de repositorio de código y con validaciones, pruebas, pasos y aprobaciones apropiados.

Buscan un mecanismo para que las herramientas de bajo código generen todo el código fuente para cada paso de las tareas de AutoML (preprocesamiento, entrenamiento y postprocesamiento) en una estructura de repositorio estandarizada que pueda proporcionar a sus expertos en ciencia de datos la capacidad de ver, validar y modificar el flujo de trabajo según sus necesidades y luego generar una plantilla de tubería personalizada que pueda integrarse en un entorno estandarizado (donde han definido su repositorio de código, herramientas de compilación de código y procesos).

Esta publicación muestra cómo tener un proceso repetible con herramientas de bajo código como Amazon SageMaker Autopilot para que se pueda integrar sin problemas en su entorno, para que no tenga que orquestar este flujo de trabajo de extremo a extremo por su cuenta. Demostramos cómo usar CI/CD el código de herramientas sin código / con poco código para integrarlo en su entorno MLOps, siguiendo las mejores prácticas de MLOps.

Descripción de la solución

Para demostrar el flujo de trabajo orquestado, utilizamos el conjunto de datos UCI Adult 1994 Census Income disponible públicamente para predecir si una persona tiene un ingreso anual superior a $50,000 al año. Este es un problema de clasificación binaria; las opciones para la variable objetivo de ingresos son mayores o menores de $50,000.

La siguiente tabla resume los componentes clave del conjunto de datos.

Características del conjunto de datos Multivariado Número de instancias 48842 Área Social
Características del atributo: Categórico, Entero Número de atributos: 14 Fecha donada 1996-05-01
Tareas asociadas: Clasificación ¿Valores perdidos? Número de visitas web 2749715

La siguiente tabla resume la información de los atributos.

Nombre de columna Descripción
Edad Continuo
Clase de trabajo Privado, Autónomo no incorporado, Autónomo incorporado, Gobierno federal, Gobierno local, Gobierno estatal, Sin pago, Nunca trabajado
fnlwgt continuo
Educación Licenciaturas, Algo de colegio, 11º, Graduado de escuela secundaria, Escuela profesional, Asociado-acdm, Asociado-vocacional, 9º, 7º-8º, 12º, Maestrías, 1º-4º, 10º, Doctorado, 5º-6º, Preescolar.
Número de educación Continuo
Estado civil Casado cívico, Divorciado, Nunca casado, Separado, Viudo, Cónyuge casado ausente, Cónyuge AF.
Ocupación Soporte técnico, Reparación artesanal, Otros servicios, Ventas, Ejecutivo-gerencial, Especialidad profesional, Manipuladores-limpiadores, Inspección de operación de la máquina, Adm-clerical, Agricultura-pesca, Transporte-movimiento, Servicio doméstico privado, Servicio de protección, Fuerzas armadas
Relación Esposa, Hijo propio, Esposo, No en familia, Otro pariente, Soltero.
Raza Blanco, Isleño del Pacífico asiático, Amerindio-Eskimo, Otro, Negro
Sexo Femenino, Masculino
Ganancia de capital Continuo
Pérdida de capital Continuo
Horas por semana Continuo
País de origen Estados Unidos, Camboya, Inglaterra, Puerto Rico, Canadá, Alemania, Estados Unidos (Guam-USVI-etc), India, Japón, Grecia, Sur, China, Cuba, Irán, Honduras, Filipinas, Italia, Polonia, Jamaica, Vietnam, México, Portugal, Irlanda, Francia, República Dominicana, Laos, Ecuador, Taiwán, Haití, Colombia, Hungría, Guatemala, Nicaragua, Escocia, Tailandia, Yugoslavia, El Salvador, Trinidad y Tobago, Perú, Hong, Holanda-Países Bajos.
clase Clase de ingresos, ya sea <=50 K o >=50 K

En esta publicación, mostramos cómo utilizar Amazon SageMaker Projects, una herramienta que ayuda a las organizaciones a configurar y estandarizar entornos para MLOps con herramientas de AutoML de bajo código como Autopilot y Amazon SageMaker Data Wrangler.

Autopilot elimina la carga pesada de construir modelos de ML. Simplemente proporcionas un conjunto de datos tabulares y seleccionas la columna objetivo a predecir, y Autopilot explorará automáticamente diferentes soluciones para encontrar el mejor modelo. Luego puedes implementar directamente el modelo en producción con solo un clic o iterar en las soluciones recomendadas para mejorar aún más la calidad del modelo.

Data Wrangler proporciona una solución de extremo a extremo para importar, preparar, transformar, caracterizar y analizar datos. Puedes integrar un flujo de preparación de datos de Data Wrangler en tus flujos de trabajo de ML para simplificar y optimizar la preprocesamiento de datos y la ingeniería de características utilizando poco o nada de código. También puedes agregar tus propios scripts y transformaciones de Python para personalizar los flujos de trabajo. Utilizamos Data Wrangler para realizar el preprocesamiento en el conjunto de datos antes de enviar los datos a Autopilot.

SageMaker Projects ayuda a las organizaciones a configurar y estandarizar entornos para automatizar diferentes pasos involucrados en el ciclo de vida de un ML. Aunque las notebooks son útiles para la construcción y experimentación de modelos, un equipo de científicos de datos e ingenieros de ML que comparten código necesitan una forma más escalable de mantener la consistencia del código y el control de versiones.

Para ayudarte a comenzar con los paradigmas comunes de construcción y implementación de modelos, SageMaker Projects ofrece un conjunto de plantillas de primera parte (plantillas 1P). Las plantillas 1P se centran generalmente en la creación de recursos para la construcción y el entrenamiento de modelos. Las plantillas incluyen proyectos que utilizan servicios nativos de AWS para CI/CD, como AWS CodeBuild y AWS CodePipeline. SageMaker Projects puede admitir ofertas de plantillas personalizadas, donde las organizaciones utilizan una plantilla de AWS CloudFormation para ejecutar una pila Terraform y crear los recursos necesarios para un flujo de trabajo de ML.

Las organizaciones pueden querer extender las plantillas 1P para admitir casos de uso más allá de simplemente entrenar y implementar modelos. Las plantillas de proyecto personalizadas son una forma de crear un flujo de trabajo estándar para proyectos de ML. Puedes crear varias plantillas y utilizar políticas de IAM para gestionar el acceso a esas plantillas en Amazon SageMaker Studio, asegurando que cada uno de tus usuarios acceda a proyectos dedicados para sus casos de uso.

Para obtener más información sobre SageMaker Projects y crear plantillas de proyectos personalizadas alineadas con las mejores prácticas, consulta Construir plantillas de proyecto personalizadas de SageMaker: mejores prácticas.

Estas plantillas personalizadas se crean como productos de AWS Service Catalog y se provisionan como plantillas de organización en la UI de Studio. Aquí es donde los científicos de datos pueden elegir una plantilla y tener su flujo de trabajo de ML arrancado y preconfigurado. Los proyectos se provisionan utilizando productos de AWS Service Catalog. Las plantillas de proyectos se utilizan por las organizaciones para provisionar proyectos para cada uno de sus equipos.

En esta publicación, mostramos cómo construir una plantilla de proyecto personalizada para tener un flujo de trabajo de MLOps de extremo a extremo utilizando proyectos de SageMaker, AWS Service Catalog y Amazon SageMaker Pipelines integrando Data Wrangler y Autopilot con humanos en el ciclo para facilitar los pasos de entrenamiento y despliegue del modelo. Los humanos en el ciclo son las diferentes personas involucradas en una práctica de MLOps que trabajan en colaboración para un proceso de construcción y despliegue de ML exitoso.

El siguiente diagrama ilustra el flujo de trabajo de automatización de bajo/no código de extremo a extremo.

El flujo de trabajo incluye los siguientes pasos:

  1. El equipo de Operaciones o el equipo de Plataforma lanza la plantilla CloudFormation para configurar los requisitos previos necesarios para aprovisionar la plantilla personalizada de SageMaker.
  2. Cuando la plantilla esté disponible en SageMaker, el líder de Ciencia de Datos utiliza la plantilla para crear un proyecto de SageMaker.
  3. La creación del proyecto de SageMaker lanzará un producto AWS Service Catalog que agregará dos códigos iniciales a los repositorios AWS CodeCommit:
    • El código inicial para el pipeline de construcción del modelo incluye un pipeline que preprocesa el conjunto de datos de aprendizaje automático UCI Adult usando Data Wrangler, crea automáticamente un modelo de ML con visibilidad completa utilizando Autopilot, evalúa el rendimiento de un modelo usando un paso de procesamiento, y registra el modelo en un registro de modelos basado en el rendimiento del modelo.
    • El código inicial para la implementación del modelo incluye un paso de CodeBuild para encontrar el modelo más reciente que ha sido aprobado en el registro de modelos y crear archivos de configuración para implementar las plantillas de CloudFormation como parte de los pipelines de CI/CD utilizando CodePipeline. La plantilla de CloudFormation implementa el modelo en entornos de puesta en escena y producción.
  4. El primer commit de código inicial inicia un pipeline de CI/CD utilizando CodePipeline que desencadena un pipeline SageMaker, que es una serie de pasos interconectados codificados utilizando un grafo acíclico dirigido (DAG). En este caso, los pasos involucrados son el procesamiento de datos utilizando un flujo Data Wrangler, el entrenamiento del modelo utilizando Autopilot, la creación del modelo, la evaluación del modelo y, si la evaluación se aprueba, el registro del modelo.

Para obtener más detalles sobre cómo crear pipelines de SageMaker utilizando Autopilot, consulte Lanzamiento de experimentos de Amazon SageMaker Autopilot directamente desde Amazon SageMaker Pipelines para automatizar fácilmente flujos de trabajo de MLOps.

  1. Después de que se registra el modelo, el aprobador del modelo puede aprobarlo o rechazarlo en Studio.
  2. Cuando se aprueba el modelo, se activa un pipeline de implementación de CodePipeline integrado con el segundo código seed.
  3. Este pipeline crea un endpoint escalable y sin servidor de SageMaker para el entorno de puesta en escena.
  4. Hay un paso de prueba automatizado en el pipeline de implementación que se probará en el endpoint de puesta en escena.
  5. Los resultados de la prueba se almacenan en Amazon Simple Storage Service (Amazon S3). El pipeline se detendrá para un aprobador de implementación de producción, que puede revisar todos los artefactos antes de aprobarlos.
  6. Una vez aprobado, el modelo se implementa en producción en forma de endpoint escalable y sin servidor. Las aplicaciones de producción pueden consumir el endpoint para inferencia.

Los pasos de implementación consisten en lo siguiente:

  1. Cree la plantilla de proyecto personalizada de SageMaker para Autopilot y otros recursos utilizando AWS CloudFormation. Esta es una tarea de configuración única.
  2. Cree el proyecto de SageMaker utilizando la plantilla personalizada.

En las siguientes secciones, procederemos con cada uno de estos pasos con más detalle y exploraremos la página de detalles del proyecto.

Prerrequisitos

Este tutorial incluye los siguientes prerrequisitos:

  • Una cuenta de AWS.
  • Una política de dominio de Studio adjunta al rol de ejecución de IAM. Para obtener instrucciones sobre cómo asignar permisos al rol, consulte Permisos de la API de Amazon SageMaker: Acciones, permisos y referencia de recursos. Para obtener más información, consulte Ejemplos de políticas basadas en identidad de Amazon SageMaker.
  • Para este post, se utiliza una plantilla de CloudFormation. Siga las instrucciones en Introducción a AWS CloudFormation para obtener más información.

Crear recursos de solución con AWS CloudFormation

Puede descargar y lanzar la plantilla de CloudFormation a través de la consola de AWS CloudFormation, la línea de comandos de AWS (AWS CLI), el SDK o simplemente eligiendo Lanzar pila:

La plantilla de CloudFormation también está disponible en el repositorio de código de GitHub de AWS Samples. El repositorio contiene lo siguiente:

  • Una plantilla de CloudFormation para configurar la plantilla personalizada de SageMaker de proyecto para Autopilot.
  • Código seed con el código de ML para configurar pipelines de SageMaker para automatizar los pasos de procesamiento de datos y entrenamiento.
  • Una carpeta de proyecto para la plantilla de CloudFormation utilizada por AWS Service Catalog mapeada a la plantilla personalizada de proyecto SageMaker que se creará.

La plantilla de CloudFormation toma varios parámetros como entrada.

Los siguientes son los parámetros de información del producto AWS Service Catalog:

  • Nombre del producto – El nombre del producto de AWS Service Catalog con el que se asociará la plantilla personalizada de MLOps de proyecto SageMaker.
  • Descripción del producto – La descripción del producto de AWS Service Catalog.
  • Propietario del producto – El propietario del producto de Service Catalog.
  • Distribuidor del producto – El distribuidor del producto de Service Catalog.

Los siguientes son los parámetros de información de soporte del producto AWS Service Catalog:

  • Descripción de soporte del producto – Una descripción de soporte para este producto.
  • Correo electrónico de soporte del producto – Una dirección de correo electrónico del equipo que soporta el producto de AWS Service Catalog.
  • URL de soporte del producto – Una URL de soporte para el producto de AWS Service Catalog.

Los siguientes son los parámetros de configuración del repositorio de código fuente:

  • URL a la versión comprimida de su repositorio de GitHub – Utilice los valores predeterminados si no está bifurcando el repositorio de AWS Samples.
  • Nombre y rama de su repositorio de GitHub – Estos deben coincidir con la carpeta raíz del archivo zip. Utilice los valores predeterminados si no está bifurcando el repositorio de AWS Samples.
  • StudioUserExecutionRole – Proporcione el ARN del rol IAM de ejecución del usuario de Studio.

Después de lanzar la pila de CloudFormation desde esta plantilla, puede supervisar su estado en la consola de AWS CloudFormation.

Cuando la pila esté completa, copie el valor de la clave CodeStagingBucketName en la pestaña Outputs de la pila de CloudFormation y guárdelo en un editor de texto para usarlo más tarde.

Crear el proyecto SageMaker utilizando la nueva plantilla personalizada

Para crear su proyecto SageMaker, complete los siguientes pasos:

  1. Inicie sesión en Studio. Para obtener más información, consulte Cómo empezar con el dominio Amazon SageMaker.
  2. En la barra lateral de Studio, elija el icono de inicio.
  3. Elija Implementaciones en el menú, luego elija Proyectos.
  4. Elija Crear proyecto.
  5. Elija Plantillas de organización para ver la nueva plantilla de MLOps personalizada.
  6. Elija Seleccionar plantilla de proyecto.

  1. Para Detalles del proyecto, ingrese un nombre y una descripción para su proyecto.
  2. Para MLOpsS3Bucket, ingrese el nombre del bucket S3 que guardó anteriormente.

  1. Elija Crear proyecto.

Aparecerá un mensaje indicando que SageMaker está aprovisionando y configurando los recursos.

Cuando el proyecto esté completo, recibirá un mensaje de éxito y su proyecto ahora aparecerá en la lista de Proyectos.

Explorar los detalles del proyecto

En la página de detalles del proyecto, puede ver varias pestañas asociadas con el proyecto. Sumergámonos en cada una de estas pestañas en detalle.

Repositorios

Esta pestaña lista los repositorios de código asociados con este proyecto. Puede elegir clonar repo en Ruta local para clonar los dos repositorios de código de semilla creados en CodeCommit por el proyecto SageMaker. Esta opción le proporciona acceso a Git a los repositorios de código desde el propio proyecto SageMaker.

Cuando se complete la clonación del repositorio, la ruta local aparecerá en la columna Ruta local. Puede elegir la ruta para abrir la carpeta local que contiene el código del repositorio en Studio.

La carpeta será accesible en el panel de navegación. Puede usar el icono del navegador de archivos para ocultar o mostrar la lista de carpetas. Puede hacer cambios de código aquí o elegir el icono de Git para preparar, confirmar y enviar los cambios.

Tuberías

Esta pestaña lista las tuberías de ML de SageMaker que definen los pasos para preparar datos, entrenar modelos e implementar modelos. Para obtener información sobre las tuberías de ML de SageMaker, consulte Crear y administrar tuberías de SageMaker.

Puede elegir la tubería que se está ejecutando actualmente para ver su estado más reciente. En el siguiente ejemplo, el paso de procesamiento de datos se realiza utilizando un flujo de datos de Data Wrangler.

Puede acceder al flujo de datos desde la ruta local del repositorio de código que clonamos anteriormente. Elija el icono del explorador de archivos para mostrar la ruta, que se encuentra en la carpeta tuberías del repositorio de construcción del modelo.

En la carpeta de tuberías, abra la carpeta de autopilot.

En la carpeta de autopilot, abra el archivo preprocess.flow.

Tomará un momento abrir el flujo de datos de Data Wrangler.

En este ejemplo, se realizan tres transformaciones de datos entre la fuente y el destino. Puede elegir cada transformación para ver más detalles.

Para obtener instrucciones sobre cómo incluir o eliminar transformaciones en Data Wrangler, consulte Transformar datos.

Para obtener más información, consulte Preparación de datos unificada y entrenamiento de modelos con Amazon SageMaker Data Wrangler y Amazon SageMaker Autopilot – Parte 1.

Cuando haya terminado de revisar, elija el icono de encendido y detenga los recursos de Data Wrangler en Aplicaciones en ejecución y Sesiones de kernel.

Experimentos

Esta pestaña lista los experimentos de Autopilot asociados con el proyecto. Para obtener más información sobre Autopilot, consulte Automatizar el desarrollo de modelos con Amazon SageMaker Autopilot.

Grupos de modelos

Esta pestaña lista grupos de versiones de modelos que fueron creados por ejecuciones de tuberías en el proyecto. Cuando se completa la ejecución de la tubería, el modelo creado a partir del último paso de la tubería estará accesible aquí.

Puede elegir el grupo de modelos para acceder a la última versión del modelo.

El estado de la versión del modelo en el siguiente ejemplo es Pendiente. Puede elegir la versión del modelo y elegir Actualizar estado para actualizar el estado.

Elija Aprobado y elija Actualizar estado para aprobar el modelo.

Después de que se apruebe el estado del modelo, se iniciará el pipeline de implementación de CI/CD del modelo dentro de CodePipeline.

Puede abrir el pipeline implementado para ver las diferentes etapas en el repositorio.

Como se muestra en la captura de pantalla anterior, este pipeline tiene cuatro etapas:

  • Fuente – En esta etapa, CodePipeline verifica el código del repositorio CodeCommit en el bucket S3.
  • Compilar – En esta etapa, se preparan las plantillas de CloudFormation para la implementación del código del modelo.
  • Implementar en Staging – Esta etapa consta de tres subetapas:
    • Implementar recursos en Staging – En la primera subetapa, se implementa la pila de CloudFormation para crear un endpoint de SageMaker sin servidor en el entorno de staging.
    • Prueba en Staging – En la segunda subetapa, se realiza una prueba automatizada en el endpoint utilizando CodeBuild para verificar si la inferencia se está realizando según lo esperado. Los resultados de la prueba estarán disponibles en el bucket S3 con el nombre sagemaker-project-<ID del proyecto del proyecto SageMaker>.

Puede obtener el ID del proyecto SageMaker en la pestaña Configuración del proyecto SageMaker. Dentro del bucket S3, elija la carpeta del nombre del proyecto (por ejemplo, sagemaker-MLOp-AutoP) y dentro de ella, abra la carpeta TestArtifa/. Elija el archivo de objeto en esta carpeta para ver los resultados de la prueba.

Puede acceder al script de prueba desde la ruta local del repositorio de código que clonamos anteriormente. Elija el icono del navegador de archivos para ver la ruta. Tenga en cuenta que este será el repositorio de implementación. En ese repositorio, abra la carpeta de pruebas y elija el archivo de código Python test.py.

Puede realizar cambios en este código de prueba según su caso de uso.

  • Aprobar la implementación – En la tercera subetapa, hay un proceso de aprobación adicional antes de la última etapa de implementación en producción. Puede elegir Revisar y aprobarlo para continuar.

  • DeployProd – En esta etapa, se implementa la pila de CloudFormation para crear un endpoint de SageMaker sin servidor para el entorno de producción.

Endpoints

Esta pestaña lista los endpoints de SageMaker que alojan modelos implementados para la inferencia. Cuando todas las etapas en el pipeline de implementación del modelo están completas, los modelos son implementados en los endpoints de SageMaker y son accesibles dentro del proyecto de SageMaker.

Configuración

Esta es la última pestaña en la página del proyecto y lista la configuración para el proyecto. Esto incluye el nombre y descripción del proyecto, información sobre la plantilla del proyecto y SourceModelPackageGroupName, y metadatos sobre el proyecto.

Limpieza

Para evitar costos adicionales de infraestructura asociados con el ejemplo en esta publicación, asegúrese de eliminar las pilas de CloudFormation. Además, asegúrese de eliminar los endpoints de SageMaker, cualquier notebook en ejecución y los buckets S3 que se crearon durante la configuración.

Conclusión

Esta publicación describió un enfoque de pipeline de ML fácil de usar para automatizar y estandarizar el entrenamiento e implementación de modelos de ML utilizando SageMaker Projects, Data Wrangler, Autopilot, Pipelines y Studio. Esta solución puede ayudarlo a realizar tareas de AutoML (preprocesamiento, entrenamiento y postprocesamiento) en una estructura de repositorio estandarizada que puede proporcionar a sus expertos en ciencia de datos la capacidad de ver, validar y modificar el flujo de trabajo según sus necesidades y luego generar una plantilla de pipeline personalizada que se puede integrar en un proyecto de SageMaker.

Puede modificar los pipelines con sus pasos de preprocesamiento y pipeline para su caso de uso y implementar nuestro flujo de trabajo de extremo a extremo. Háganos saber en los comentarios cómo funcionó la plantilla personalizada para su caso de uso respectivo.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Una guía completa para usar cadenas en Langchain

Introducción ¡Adéntrate en el mundo del procesamiento del lenguaje! En un ámbito en el que el lenguaje es un enlace e...

Inteligencia Artificial

ChatGPT ahora puede responder con palabras habladas

Una versión recién lanzada del chatbot ChatGPT de OpenAI puede interactuar con los usuarios de forma vocal, además de...

Inteligencia Artificial

Conoce DreamSync un nuevo marco de inteligencia artificial para mejorar la síntesis de texto a imagen (T2I) con comentarios de modelos de comprensión de imagen

Investigadores de la Universidad del Sur de California, la Universidad de Washington, la Universidad Bar-Ilan y Googl...

Inteligencia Artificial

Utilice un modelo de base de IA generativa para la síntesis y respuesta a preguntas utilizando sus propios datos

Los modelos de lenguaje grandes (LLMs) se pueden utilizar para analizar documentos complejos y proporcionar resúmenes...

Investigación

Investigadores de la Universidad de Surrey lanzan una herramienta revolucionaria de detección de objetos basada en bocetos en el aprendizaje automático.

Desde tiempos prehistóricos, las personas han utilizado bocetos para comunicación y documentación. Durante la última ...