Amazon MLA-C01: MLOps y gestión del ciclo de vida del modelo — Guía de estudio

Forma parte de la AWS Machine Learning Engineer Associate MLA-C01 — Guía de estudio. Practica con respuestas verificadas en el centro de exámenes de Amazon, o realiza tests cronometrados en ExamRoll.io.

Concepto central

La gestión del ciclo de vida de los modelos en AWS se centra en tratar los modelos como artefactos versionados con linaje auditado, puertas de promoción automatizadas y canalizaciones reproducibles. Amazon SageMaker proporciona las primitivas: SageMaker Pipelines para la orquestación, SageMaker Model Registry (ModelPackage/ModelPackageGroup) para el versionado y el estado de aprobación, SageMaker Projects y CodePipeline para CI/CD, y Model Monitor/Clarify para las comprobaciones continuas de calidad y sesgo. Un ciclo de vida robusto comienza con entradas reproducibles: datos de entrenamiento inmutables en S3 con cifrado KMS del lado del servidor y políticas de bucket estrictas o controles de Lake Formation, código versionado en un repositorio de origen y el entorno de entrenamiento declarado en los URI de imagen de contenedor y los tipos de instancia pasados a CreateTrainingJob o al TrainingStep del SDK de sagemaker.

Los controles operativos incluyen el aislamiento de red mediante VpcConfig de CreateTrainingJob (Subnets y SecurityGroupIds) y EnableNetworkIsolation para evitar el egreso, y roles de IAM con el alcance de mínimo privilegio (SageMakerExecutionRole con s3:GetObject, kms:Decrypt para el bucket específico). Cuando un trabajo de entrenamiento finaliza, registre el artefacto en el Model Registry usando CreateModelPackage o la llamada del SDK register_model con un ModelPackageGroupName y establezca ModelApprovalStatus en “PendingManualApproval” para impulsar las puertas humanas. Los metadatos de linaje —hiperparámetros de entrenamiento, imagen de Docker, URI de S3 de los datos de entrada, commit de Git— deben adjuntarse como metadatos del paquete del modelo para que el CI/CD y las auditorías posteriores puedan rastrear desde el punto de conexión (endpoint) de producción hasta el código y el conjunto de datos.

El CI/CD para ML difiere del CI/CD tradicional porque los artefactos (modelos, líneas base, monitores) son grandes y tienen salidas no deterministas. Implemente CI/CD con plantillas de SageMaker Projects junto con AWS CodePipeline y CodeBuild. Use CodeBuild para ejecutar pruebas unitarias, pruebas de humo (smoke-tests) del entrenamiento del modelo (p. ej., épocas cortas o un subconjunto de datos) y pruebas de integración. Use CodePipeline para orquestar los pasos de origen → compilación → registro de modelo, e incorpore una acción de ManualApproval o una acción personalizada basada en Lambda para cambiar el ModelApprovalStatus de ModelPackage mediante UpdateModelPackage. Para la promoción automatizada, CodePipeline puede llamar a las API CreateEndpointConfig y CreateEndpoint de SageMaker, o usar pilas de CloudFormation generadas por SageMaker Projects para desplegar con infraestructura como código predecible.

Servicios y configuración clave

SageMaker Pipelines es la capa de orquestación: declare objetos de paso ProcessingStep, TrainingStep, ModelStep, TransformStep y RegisterModel en Python. Use CacheConfig en los pasos (CacheConfig(enable_caching=True, expire_after=timedelta(days=1))) para que los pasos reutilicen las salidas cuando las entradas y los parámetros no hayan cambiado; esto evita el aprovisionamiento innecesario de instancias. Para RegisterModel, use sagemaker.workflow.steps.RegisterModel con model_package_group_name y model_approval_status establecidos en “PendingManualApproval” para integrar las puertas de aprobación en el grafo de la canalización. Use la API pipeline.start() para iniciar ejecuciones y pipeline.get_steps() o la consola para inspeccionar el estado de la ejecución y el linaje.

El SageMaker Model Registry almacena paquetes de modelos bajo un ModelPackageGroupName y asigna identificadores ModelPackageVersion. Las API relevantes son CreateModelPackageGroup, CreateModelPackage, DescribeModelPackage y UpdateModelPackage para cambiar ModelApprovalStatus a “Approved” o “Rejected”. Los objetos ModelPackage deben incluir campos de metadatos como InferenceSpecification (Containers, SupportedContentTypes, SupportedResponseMIMETypes) y ModelApprovalStatus. Al desplegar, llame a CreateModel con ModelName y PrimaryContainer usando el ARN del paquete del modelo y luego a CreateEndpointConfig con DataCaptureConfig (EnableCapture=true, SamplingPercentage, DestinationS3Uri) para habilitar la captura de inferencias.

Para la monitorización y la detección de sesgos, use SageMaker Model Monitor y SageMaker Clarify. Model Monitor requiere una línea base creada mediante DefaultModelMonitor.suggest_baseline, que llama a CreateProcessingJob para obtener estadísticas y restricciones de la línea base; esas líneas base se almacenan en S3 y se referencian en CreateMonitoringSchedule. Los programas de monitorización se crean con CreateMonitoringSchedule y se pueden iniciar/detener mediante StartMonitoringSchedule/StopMonitoringSchedule. Para comprobaciones de sesgo ad hoc contra un punto de conexión (endpoint) en tiempo real, ejecute un trabajo de SageMaker Processing con el contenedor de Clarify (a través de sagemaker.processing.ScriptProcessor o ClarifyProcessor) usando los registros de inferencia capturados como entrada; Clarify admite comprobaciones de sesgo del modelo (Model Bias) y devuelve informes a S3.

Para agregar orígenes de datos heterogéneos de forma segura, use AWS Glue y Lake Formation para descubrir, catalogar y hacer ETL de datos desde S3, orígenes JDBC (MySQL on-premises a través del conector JDBC de AWS Glue y opcionalmente DataSync para el movimiento masivo) y orígenes de streaming. Los trabajos de AWS Glue (PySpark) pueden escribir conjuntos de datos curados en un lago de datos (data lake) de S3 cifrado con control de acceso de grano fino de Lake Formation. Para la detección automatizada de anomalías más la visualización, elija entre servicios gestionados: Amazon Lookout for Metrics realiza la detección automatizada de anomalías en series temporales, mientras que SageMaker Data Wrangler proporciona una rápida exploración visual y transformaciones, y puede exportar las canalizaciones de preprocesamiento de vuelta a SageMaker Processing o Pipelines. Para la detección continua de anomalías con paneles de visualización, combine Lookout for Metrics para la detección con Amazon QuickSight para la visualización y el análisis detallado (drill-down).

Patrones de diseño y contrapartidas

Un patrón común es priorizar la canalización (pipeline-first): crear una SageMaker Pipeline que incluya el preprocesamiento de datos (ProcessingStep), el entrenamiento (TrainingStep), la evaluación del modelo (ProcessingStep o ClarifyProcessor), el registro del modelo (RegisterModel) y el despliegue (ModelStep o una promoción manual). Usa el almacenamiento en caché de pasos (step caching) para minimizar el cómputo redundante y acelerar el desarrollo iterativo. Para una promoción segura, establece model_approval_status en “PendingManualApproval” e integra una acción ManualApproval de CodePipeline o una Lambda de aprobación que actualice el paquete del modelo. Este diseño proporciona una ruta auditable desde los datos y el código hasta la producción, al tiempo que permite una gobernanza con intervención humana (human-in-the-loop).

Para CI/CD, elige entre dos contrapartidas: la promoción totalmente automatizada basada en umbrales de métricas (metric gates) (rápida, menos pasos manuales) frente a los flujos de trabajo de aprobación manual (cumplimiento normativo). Implementa el control basado en métricas con CodeBuild ejecutando un pequeño script

undefined

que llame a SageMaker Runtime o cargue el paquete del modelo, calcule las métricas y emita un artefacto que CodePipeline consumirá para decidir si se aprueba o se rechaza (pass/fail). Si el cumplimiento normativo requiere una aprobación humana, inserta una ManualApprovalAction de AWS CodePipeline que active un correo electrónico a través de SNS y requiera que un aprobador designado proceda, o utiliza el estado del Model Registry como la fuente canónica de verdad y solo permite despliegues cuando ModelApprovalStatus sea igual a “Approved”.

Reducir la latencia de inicio de los trabajos de entrenamiento a menudo consiste en evitar el aprovisionamiento completo y repetido. Si muchas ejecuciones de la canalización reentrenan con entradas idénticas, habilita Pipeline CacheConfig para que el TrainingStep se omita cuando las entradas no hayan cambiado. Para iteraciones que deben entrenar en cada ejecución pero requieren baja latencia, usa tipos de instancia más pequeños para la creación rápida de prototipos en SageMaker Studio, o ejecuta múltiples experimentos en una instancia persistente de Amazon EC2 o en un orquestador de entrenamiento personalizado respaldado por EKS para evitar los arranques en frío de los contenedores (container cold starts), intercambiando la sobrecarga operativa por una menor latencia. Para una escalabilidad de nivel de producción, acepta cierto retraso en el inicio y, en su lugar, automatiza la reproducibilidad.

Errores comunes y criterios de decisión

Un error frecuente es depender únicamente de los registros del endpoint para la detección de deriva sin habilitar DataCaptureConfig en el momento del despliegue; sin la captura, Model Monitor y Clarify no pueden analizar las entradas de inferencia reales. Configure siempre CreateEndpointConfig con DataCaptureConfig (EnableCapture=true, DestinationS3Uri, CaptureOptions e InitialSamplingPercentage) y establezca un programa de monitoreo a través de CreateMonitoringSchedule que se vincule a las estadísticas de la línea base.

Otro error es la seguridad inadecuada de S3 y de la red. Los trabajos de entrenamiento que deben permanecer aislados deben usar VpcConfig en CreateTrainingJob y habilitar el cifrado de KMS para los objetos de S3. No dependa de los controles de acceso público; en su lugar, utilice políticas de bucket de S3, endpoints de VPC (com.amazonaws.region.s3) y un alcance de roles de IAM bien definido. Finalmente, evite un CI/CD frágil incorporando las métricas de evaluación y los metadatos de la tarjeta del modelo (model-card) en el paquete del modelo y utilizando un versionado inmutable (ModelPackageVersion) en lugar de sobrescribir los artefactos.

Problema práctico: Escenario de caso de uso

AcmePay: detección de fraude para flujos de transacciones. El desafío es construir un ciclo de vida seguro y auditable que agregue registros de transacciones de S3, perfiles de clientes y tablas MySQL locales (on-premises), entrene un clasificador de fraude XGBoost, mantenga un registro de modelos central con aprobación manual antes de la producción, detecte la deriva de datos y de sesgo bajo demanda, y minimice la sobrecarga operativa para el versionado y las ejecuciones iterativas.

  1. Centralizar los datos: use AWS Glue para rastrear los registros de transacciones de S3 y el MySQL local a través del conector JDBC de AWS Glue (con una transferencia segura de DataSync o emparejamiento de VPC (VPC peering) para el acceso a la red). Catalogue los conjuntos de datos en el Glue Data Catalog y fuerce el acceso a través de AWS Lake Formation. Almacene los conjuntos de entrenamiento curados en un prefijo de S3 cifrado (CMK de KMS) y utilice políticas de bucket junto con un VpcEndpoint para impedir el acceso público.

  2. Construir pipelines reproducibles: cree un SageMaker Pipeline con un ProcessingStep para la ingeniería de características (feature engineering) (exportación de Data Wrangler o Glue ETL), un TrainingStep que ejecute el contenedor XGBoost incorporado con hiperparámetros, y un paso RegisterModel que llame a RegisterModel con model_package_group_name=“acmepay-fraud-group” y model_approval_status=“PendingManualApproval”. Habilite CacheConfig en los pasos de preprocesamiento y entrenamiento para reutilizar las salidas cuando las entradas o el código no cambien, reduciendo el aprovisionamiento repetido de instancias.

  3. CI/CD y aprobación: cree un SageMaker Project que estructure un AWS CodePipeline. El pipeline ejecuta pruebas unitarias en CodeBuild, desencadena el SageMaker Pipeline y, después de RegisterModel, incluye una acción ManualApproval de CodePipeline. La acción de aprobación manual, cuando se aprueba, invoca una Lambda que llama a UpdateModelPackage para establecer ModelApprovalStatus=“Approved” y luego desencadena CreateEndpointConfig y CreateEndpoint para desplegar. Utilice los recursos de CloudFormation generados por SageMaker Projects para mantener la infraestructura reproducible.

  4. Asegurar el entrenamiento y el despliegue: envíe trabajos de entrenamiento con VpcConfig en CreateTrainingJob (SubnetIds, SecurityGroupIds) y EnableNetworkIsolation=true; asegúrese de que el rol de ejecución de SageMaker tenga el permiso kms:Decrypt sobre la clave KMS y s3:GetObject únicamente para el prefijo del conjunto de datos curado. Para los endpoints, cree un CreateEndpointConfig con DataCaptureConfig (EnableCapture=true, SamplingPercentage=100, DestinationS3Uri=s3://acmepay-prod/capture) para que los datos de inferencia se conserven para el monitoreo.

  5. Verificaciones de deriva y sesgo bajo demanda: utilice SageMaker Clarify en un ProcessingJob sobre la inferencia capturada y las etiquetas de verdad fundamental (ground truth) (si están disponibles) para ejecutar análisis de ModelBias y ModelExplainability bajo demanda; invóquelo a través de la API ClarifyProcessor.run() desde una Lambda o Step Functions cuando el equipo de ciencia de datos solicite una evaluación. Para alertas de deriva continuas, cree una línea base de Model Monitor a través de DefaultModelMonitor.suggest_baseline y un MonitoringSchedule; utilice CreateMonitoringSchedule para ejecutar verificaciones periódicas y configure notificaciones de SNS para las violaciones.

Justificación de AWS: Glue + Lake Formation centralizan y aseguran fuentes heterogéneas con un mínimo de código ETL personalizado, SageMaker Pipelines + CacheConfig minimizan la rotación (churn) de infraestructura para ejecuciones iterativas, el Model Registry proporciona versionado inmutable y metadatos (ModelPackageGroupName y ModelPackageVersion) y se integra de forma nativa con los flujos de trabajo de aprobación a través de ModelApprovalStatus, y SageMaker Clarify junto con Model Monitor proporcionan tanto evaluaciones de sesgo bajo demanda como detección de deriva programada. El uso de SageMaker Projects y CodePipeline estandariza el CI/CD y fuerza una promoción auditable y repetible de “PendingManualApproval” a “Approved” antes del despliegue en producción.


Despliegue e inferencia de modelos · Todos los dominios · Monitorización y observabilidad de modelos

Practica estas preguntas → · Práctica cronometrada en ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Aprueba tu examen →

Explorar Amazon →

Related guides

Acceso todo en uno

Una suscripción. Todos los exámenes.

Cada plan desbloquea la búsqueda ilimitada de respuestas, pruebas de práctica, explicaciones de AI y la biblioteca completa de recursos, en más de 20 idiomas.

Mensual
24.87
Just €0.83/day
Todo incluido:
  • Búsqueda ilimitada de respuestas
  • Pruebas de práctica ilimitadas
  • Explicaciones con tecnología AI
  • Biblioteca completa de recursos
  • Más de 20 idiomas
  • Actualizaciones semanales de contenido
  • Recompensas y referencias
  • Soporte prioritario
Iniciar prueba gratuita

No se requiere tarjeta de crédito*

Mejor valor
12 meses
179.87
Just €0.49/daySave 40%
Todo incluido:
  • Búsqueda ilimitada de respuestas
  • Pruebas de práctica ilimitadas
  • Explicaciones con tecnología AI
  • Biblioteca completa de recursos
  • Más de 20 idiomas
  • Actualizaciones semanales de contenido
  • Recompensas y referencias
  • Soporte prioritario
Iniciar prueba gratuita

No se requiere tarjeta de crédito*

✓ Plan gratuito incluido · ✓ Cancela en cualquier momento · ✓ Todos los planes desbloquean el producto completo