Utilice el intercambio de tarjetas de modelo de Amazon SageMaker para mejorar la gobernanza del modelo

Use Amazon SageMaker model card exchange to improve model governance.

A medida que las tecnologías de Inteligencia Artificial (IA) y Aprendizaje Automático (ML) se han vuelto populares, muchas empresas han tenido éxito en la construcción de aplicaciones empresariales críticas impulsadas por modelos de ML a gran escala en producción. Sin embargo, dado que estos modelos de ML toman decisiones empresariales críticas, es importante que las empresas agreguen salvaguardias adecuadas a lo largo de su ciclo de vida de ML. Las salvaguardias aseguran que la seguridad, la privacidad y la calidad del código, la configuración, los datos y la configuración del modelo utilizados en el ciclo de vida del modelo estén versionados y preservados.

La implementación de estas salvaguardias se está volviendo más difícil para las empresas porque los procesos y actividades de ML dentro de las empresas se están volviendo más complejos debido a la inclusión de procesos profundamente involucrados que requieren contribuciones de múltiples partes interesadas y personas. Además de los ingenieros de datos y los científicos de datos, se han incluido procesos operativos para automatizar y optimizar el ciclo de vida de ML. Además, el aumento de las partes interesadas comerciales y, en algunos casos, las revisiones legales y de cumplimiento necesitan capacidades para agregar transparencia para gestionar el control de acceso, el seguimiento de actividades y la generación de informes en todo el ciclo de vida de ML.

El marco que brinda visibilidad sistemática al desarrollo, validación y uso de modelos de ML se llama gobierno de ML. Durante AWS re:Invent 2022, AWS presentó nuevas herramientas de gobierno de ML para Amazon SageMaker que simplifican el control de acceso y mejoran la transparencia de sus proyectos de ML. Una de las herramientas disponibles como parte del gobierno de ML es Amazon SageMaker Model Cards, que tiene la capacidad de crear una única fuente de verdad para la información del modelo al centralizar y estandarizar la documentación a lo largo del ciclo de vida del modelo.

Las tarjetas de modelo de SageMaker le permiten estandarizar cómo se documentan los modelos, logrando así visibilidad en el ciclo de vida de un modelo, desde el diseño, la construcción, el entrenamiento y la evaluación. Las tarjetas de modelo están destinadas a ser una única fuente de verdad para los metadatos comerciales y técnicos sobre el modelo que se pueden utilizar de manera confiable para fines de auditoría y documentación. Proporcionan una hoja de datos del modelo que es importante para el gobierno del modelo.

A medida que escala sus modelos, proyectos y equipos, como mejor práctica, recomendamos que adopte una estrategia de varias cuentas que brinde aislamiento de proyectos y equipos para el desarrollo y implementación de modelos de ML. Para obtener más información sobre cómo mejorar el gobierno de sus modelos de ML, consulte Mejore el gobierno de sus modelos de aprendizaje automático con Amazon SageMaker.

Descripción general de la arquitectura

La arquitectura se implementa de la siguiente manera:

  • Cuenta de Ciencia de Datos: los científicos de datos realizan sus experimentos en SageMaker Studio y crean una configuración de MLOps para implementar modelos en entornos de preparación/producción utilizando SageMaker Projects.
  • Cuenta de Servicios Compartidos de ML: la configuración de MLOps de la cuenta de Ciencia de Datos activará tuberías de integración y entrega continua (CI/CD) utilizando AWS CodeCommit y AWS CodePipeline.
  • Cuenta de Desarrollo: las tuberías de CI/CD activarán aún más tuberías de ML en esta cuenta que cubren la preprocesamiento de datos, entrenamiento de modelos y procesamiento posterior como evaluación y registro de modelos. La salida de estas tuberías implementará el modelo en puntos finales de SageMaker para su consumo en inferencia. Dependiendo de sus requisitos de gobierno, las cuentas de Ciencia de Datos y Desarrollo pueden fusionarse en una sola cuenta de AWS.
  • Cuenta de Datos: las tuberías de ML que se ejecutan en la cuenta de Desarrollo extraerán datos de esta cuenta.
  • Cuentas de Prueba y Producción: las tuberías de CI/CD continuarán la implementación después de la cuenta de Desarrollo para configurar la configuración del punto final de SageMaker en estas cuentas.
  • Seguridad y Gobierno: se utilizarán servicios como AWS Identity and Access Management (IAM), AWS IAM Identity Center, AWS CloudTrail, AWS Key Management Service (AWS KMS), Amazon CloudWatch y AWS Security Hub en estas cuentas como parte de la seguridad y el gobierno.

El siguiente diagrama ilustra esta arquitectura.

Para obtener más información sobre cómo establecer una arquitectura de ML escalable de varias cuentas, consulte Fundamentos de MLOps para empresas con Amazon SageMaker.

Nuestros clientes necesitan la capacidad de compartir tarjetas de modelo entre cuentas para mejorar la visibilidad y el gobierno de sus modelos a través de la información compartida en la tarjeta de modelo. Ahora, con el intercambio de tarjetas de modelo entre cuentas, los clientes pueden disfrutar de los beneficios de una estrategia de múltiples cuentas al tener acceso a las tarjetas de modelo disponibles en su organización, lo que les permite acelerar la colaboración y garantizar el gobierno.

En esta publicación, mostramos cómo configurar y acceder a las tarjetas de modelo en cuentas de Ciclo de Vida del Desarrollo del Modelo (MDLC) utilizando la nueva función de intercambio de tarjetas de modelo entre cuentas. Primero, describiremos un escenario y una arquitectura para configurar la función de intercambio de tarjetas de modelo entre cuentas, y luego profundizaremos en cada componente de cómo configurar y acceder a las tarjetas de modelo compartidas entre cuentas para mejorar la visibilidad y el gobierno del modelo.

Resumen de la solución

Cuando se construyen modelos de ML, recomendamos configurar una arquitectura de varias cuentas para proporcionar aislamiento de carga de trabajo que mejore la seguridad, confiabilidad y escalabilidad. Para este post, asumiremos la construcción e implementación de un modelo para el caso de uso de Churn de Clientes. El diagrama de arquitectura que sigue muestra uno de los enfoques recomendados, una tarjeta de modelo centralizada, para gestionar una tarjeta de modelo en una arquitectura de ciclo de vida de desarrollo de modelos de aprendizaje automático (MDLC) de varias cuentas. Sin embargo, también se puede adoptar otro enfoque, una tarjeta de modelo centralizada en forma de hub y radios. En este post, nos centraremos solo en un enfoque de tarjeta de modelo centralizada, pero los mismos principios se pueden ampliar a un enfoque de hub y radios. La diferencia principal es que cada cuenta de radio mantendrá su propia versión de la tarjeta de modelo y tendrá procesos para agregar y copiar a una cuenta centralizada.

El siguiente diagrama ilustra esta arquitectura.

La arquitectura se implementa de la siguiente manera:

  1. Se notifica al Científico de Datos Líder para resolver el caso de uso de Churn de Clientes utilizando ML, y comienzan el proyecto de ML mediante la creación de una tarjeta de modelo para el modelo Customer Churn V1 en estado de Borrador en la Cuenta de Servicios Compartidos de ML
  2. A través de la automatización, esa tarjeta de modelo se comparte con la Cuenta de Desarrollo de ML
  3. El Científico de Datos construye el modelo y comienza a poblar información a través de APIs en la tarjeta de modelo basándose en los resultados de su experimentación y el estado de la tarjeta de modelo se establece en Revisión Pendiente
  4. A través de la automatización, esa tarjeta de modelo se comparte con la cuenta de Prueba de ML
  5. El Ingeniero de ML (MLE) ejecuta pruebas de integración y validación en la cuenta de Prueba de ML y el modelo en el registro central se marca como Aprobación Pendiente
  6. El Aprobador del Modelo revisa los resultados del modelo con la documentación de soporte proporcionada en la tarjeta de modelo central y aprueba la tarjeta de modelo para su implementación en producción.
  7. A través de la automatización, esa tarjeta de modelo se comparte con la cuenta de Producción de ML en modo de solo lectura.

Prerrequisitos

Antes de comenzar, asegúrese de tener los siguientes prerrequisitos:

  • Dos cuentas de AWS.
  • En ambas cuentas de AWS, un rol de federación de IAM con acceso de administrador para hacer lo siguiente:
    • Crear, editar, ver y eliminar tarjetas de modelo dentro de Amazon SageMaker.
    • Crear, editar, ver y eliminar recursos compartidos dentro de AWS RAM.

Para obtener más información, consulte Ejemplos de políticas de IAM para AWS RAM.

Configuración de la compartición de tarjetas de modelo

La cuenta donde se crean las tarjetas de modelo es la cuenta de tarjeta de modelo. Los usuarios en la cuenta de tarjeta de modelo las comparten con las cuentas compartidas donde pueden ser actualizadas. Los usuarios en la cuenta de tarjeta de modelo pueden compartir sus tarjetas de modelo a través de AWS Resource Access Manager (AWS RAM). AWS RAM te ayuda a compartir recursos entre cuentas de AWS.

En la siguiente sección, mostramos cómo compartir tarjetas de modelo.

Primero, cree una tarjeta de modelo para el caso de uso de Churn de Clientes como se describe anteriormente. En la consola de Amazon SageMaker, expanda la sección de Gobierno y elija Tarjetas de modelo.

Creamos la tarjeta de modelo en estado de Borrador con el nombre Customer-Churn-Model-Card. Para obtener más información, consulte Crear una tarjeta de modelo. En esta demostración, puedes dejar en blanco el resto de los campos y crear la tarjeta de modelo.

Alternativamente, puedes usar el siguiente comando de AWS CLI para crear la tarjeta de modelo:

aws sagemaker create-model-card --model-card-name Customer-Churn-Model-Card --content "{\"model_overview\": {\"model_owner\": \"model-owner\",\"problem_type\": \"Customer Churn Model\"}}" --model-card-status Draft

Ahora, crea el recurso compartido entre cuentas utilizando AWS RAM. En la consola de AWS RAM, selecciona Crear un recurso compartido.

Ingrese un nombre para la participación de recursos, por ejemplo “Customer-Churn-Model-Card-Share”. En la sección Recursos – opcional, seleccione el tipo de recurso como Tarjetas de modelo de SageMaker. La tarjeta de modelo que creamos en el paso anterior aparecerá en la lista.

Seleccione ese modelo y aparecerá en la sección Recursos seleccionados. Seleccione ese recurso nuevamente según se muestra en los siguientes pasos y elija Siguiente.

En la siguiente página, puede seleccionar los permisos administrados. Puede crear permisos personalizados o utilizar la opción predeterminada “AWSRAMPermissionSageMakerModelCards” y seleccione Siguiente. Para obtener más información, consulte la administración de permisos en AWS RAM.

En la siguiente página, puede seleccionar los Principales. En el tipo de principal seleccionado, elija Cuenta de AWS e ingrese la ID de la cuenta de la participación de la tarjeta de modelo. Seleccione Agregar y continúe a la siguiente página.

En la última página, revise la información y seleccione “Crear participación de recursos”. Alternativamente, puede utilizar el siguiente comando de AWS CLI para crear una participación de recursos:

aws ram create-resource-share --name <Nombre de la tarjeta de modelo>

aws ram associate-resource-share --resource-share-arn <ARN de la participación de recursos creada a partir del comando anterior> --resource-arns <ARN de la tarjeta de modelo>

En la consola de AWS RAM, verá los atributos de la participación de recursos. Asegúrese de que los recursos compartidos, los permisos administrados y los principales compartidos estén en el estado “Asociado“.

Después de utilizar AWS RAM para crear una participación de recursos, los principales especificados en la participación de recursos pueden tener acceso a los recursos compartidos.

  • Si activa el uso compartido de AWS RAM con Organizaciones de AWS y sus principales con los que comparte están en la misma organización que la cuenta que comparte, esos principales pueden recibir acceso tan pronto como su administrador de cuenta les otorgue permisos.
  • Si no activa el uso compartido de AWS RAM con Organizaciones, todavía puede compartir recursos con cuentas de AWS individuales que estén en su organización. El administrador de la cuenta receptora recibe una invitación para unirse a la participación de recursos y debe aceptar la invitación antes de que los principales especificados en la participación de recursos puedan acceder a los recursos compartidos.
  • También puede compartir con cuentas fuera de su organización si el tipo de recurso lo admite. El administrador de la cuenta receptora recibe una invitación para unirse a la participación de recursos y debe aceptar la invitación antes de que los principales especificados en la participación de recursos puedan acceder a los recursos compartidos.

Para obtener más información sobre AWS RAM, consulte los términos y conceptos para AWS RAM.

Acceso a tarjetas de modelo compartidas

Ahora podemos iniciar sesión en la cuenta de AWS compartida para acceder a la tarjeta de modelo. Asegúrese de que está accediendo a la consola de AWS utilizando permisos de IAM (rol de IAM) que permitan el acceso a AWS RAM.

Con AWS RAM, puede ver las participaciones de recursos a las que se le ha agregado, los recursos compartidos a los que puede acceder y las cuentas de AWS que han compartido recursos con usted. También puede abandonar una participación de recursos cuando ya no necesite acceso a sus recursos compartidos.

Para ver la tarjeta del modelo en la cuenta compartida de AWS:

  1. Navega hasta la página Compartido conmigo: Recursos compartidos en la consola de AWS RAM.
  2. Asegúrate de que estás operando en la misma región de AWS donde se creó el recurso compartido.
  3. El modelo compartido desde la cuenta del modelo estará disponible en la lista. Si hay una lista larga de recursos, puedes aplicar un filtro para encontrar recursos compartidos específicos. Puedes aplicar múltiples filtros para estrechar tu búsqueda.
  4. La siguiente información está disponible:
    1. ID del recurso – El ID del recurso. Este es el nombre de la tarjeta del modelo que creamos anteriormente en la cuenta de la tarjeta del modelo.
    2. Tipo de recurso – El tipo de recurso.
    3. Fecha de última compartición – La fecha en la que se compartió el recurso contigo.
    4. Comparticiones de recursos – El número de comparticiones de recursos en las que se incluye el recurso. Elige el valor para ver las comparticiones de recursos.
    5. ID del propietario – El ID del principal que es dueño del recurso.

También puedes acceder a la tarjeta del modelo utilizando la opción de AWS CLI. Para la política de IAM de AWS configurada con las credenciales correctas, asegúrate de tener permisos para crear, editar y eliminar tarjetas de modelo dentro de Amazon SageMaker. Para obtener más información, consulta Configurar la AWS CLI.

Puedes utilizar la siguiente política de permisos de IAM de AWS como plantilla:

{
     "Version": "2012-10-17",
     "Statement": [
        {
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DescribeModelCard",
                 "sagemaker:UpdateModelCard",
                 "sagemaker:CreateModelCardExportJob",
                 "sagemaker:ListModelCardVersions",
                 "sagemaker:DescribeModelCardExportJob"
             ],
             "Resource": [
                 "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-0",
                 "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-1/*"
             ]
        },
        { 
             "Effect": "Allow", 
             "Action": "s3:PutObject",
             "Resource": "arn:aws:s3:::Amazon-S3-bucket-storing-the-pdf-of-the-model-card/model-card-name/*"
        }
    ]
}

Puedes ejecutar el siguiente comando de AWS CLI para acceder a los detalles de la tarjeta del modelo compartida.

aws sagemaker describe-model-card --model-card-name <ARN de la tarjeta del modelo>

Ahora puedes realizar cambios en esta tarjeta del modelo desde esta cuenta.

aws sagemaker update-model-card --model-card-name <ARN de la Tarjeta del Modelo> --content "{\"model_overview\": {\"model_owner\": \"model-owner\",\"problem_type\": \"Customer Churn Model\"}}"

Después de hacer cambios, regresa a la cuenta de la tarjeta del modelo para ver los cambios que hicimos en esta cuenta compartida.

El tipo de problema se ha actualizado a “Modelo de Rotación de Clientes” que proporcionamos como parte de la entrada del comando AWS CLI.

Limpiar

Ahora puedes eliminar la tarjeta del modelo que creaste. Asegúrate de eliminar el recurso compartido de AWS RAM que creaste para compartir la tarjeta del modelo.

Conclusión

En esta publicación, proporcionamos una visión general de la arquitectura de múltiples cuentas para escalar y gobernar tus cargas de trabajo de ML de manera segura y confiable. Discutimos los patrones de arquitectura para configurar el intercambio de tarjetas de modelo y mostramos cómo funcionan los patrones centralizados de intercambio de tarjetas de modelo. Finalmente, configuramos el intercambio de tarjetas de modelo en varias cuentas para mejorar la visibilidad y gobernanza en el ciclo de desarrollo de tu modelo. Te animamos a probar la nueva función de intercambio de tarjetas de modelo y hacernos saber tus comentarios.