Amazon MLA-C01: Entrenamiento de modelos y optimización de hiperparámetros — 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 principal
El entrenamiento de modelos en Amazon SageMaker es un proceso orquestado que combina código de entrenamiento en contenedores, recursos de cómputo, almacenamiento persistente y, opcionalmente, infraestructuras de comunicación distribuida. Un trabajo de entrenamiento de SageMaker se define por una imagen de entrenamiento o un estimador de framework, una especificación de datos de entrada que apunta a ubicaciones de S3 y una configuración de recursos que incluye InstanceType, InstanceCount y VolumeSizeInGB. Para el entrenamiento con instancias spot administradas, se establece EnableManagedSpotTraining en true y se proporcionan MaxWaitTimeInSeconds y MaxRuntimeInSeconds para que SageMaker pueda pujar por capacidad sobrante y reanudar o detener trabajos dentro de la ventana de tiempo permitida. La creación de puntos de control (checkpointing) se configura a través de CheckpointConfig con S3Uri y LocalPath; al usar instancias spot administradas, se deben crear puntos de control con frecuencia y establecer MaxWaitTimeInSeconds significativamente mayor que MaxRuntimeInSeconds para que los trabajos interrumpidos puedan reintentarse.
El entrenamiento distribuido se implementa con estrategias de paralelismo de datos o de paralelismo de modelos. SageMaker soporta entrenamiento distribuido nativo con paralelismo de datos a través de PyTorch DistributedDataParallel u Horovod, y ofrece la biblioteca smdistributed con smdistributed.dataparallel para una comunicación NCCL optimizada. El paralelismo de modelos está disponible a través de smdistributed.modelparallel o mediante particionamiento específico del framework. La comunicación entre nodos de alto rendimiento requiere familias de instancias con soporte para NVLink y EFA (Elastic Fabric Adapter)—seleccione ml.p4d, ml.p3dn u otros tipos de instancia habilitados para EFA y establezca use_mpi o use_nccL según lo requiera su script de entrenamiento para obtener un all-reduce de gradientes eficiente. Para trabajos a gran escala, proporcione InstanceTypes con memoria de GPU y características de red adaptadas a los tamaños de los fragmentos (shards) de su modelo para equilibrar las proporciones de cómputo a comunicación.
La optimización de hiperparámetros es gestionada por el Ajuste Automático de Modelos (AMT) de SageMaker, que lanza múltiples trabajos de entrenamiento para buscar en un espacio de hiperparámetros y optimizar una métrica objetivo. La configuración HyperParameterTuningJobConfig incluye ParameterRanges, ResourceLimits con MaxNumberOfTrainingJobs y MaxParallelTrainingJobs, y una Strategy (Bayesiana por defecto; las alternativas incluyen Random o Grid para búsquedas exhaustivas o menos correlacionadas). Defina ObjectiveMetricName y MetricDefinitions para que AMT pueda analizar los registros (logs) de entrenamiento; si su objetivo es la puntuación F1, establezca ObjectiveType en Maximize y asegúrese de que la expresión regular (regex) de sus MetricDefinitions coincida con la métrica emitida. Para acelerar el ajuste y a la vez conservar el presupuesto, use WarmStartConfig para reutilizar resultados de trabajos de ajuste anteriores y habilite políticas de detención temprana (EarlyStoppingType: Auto) donde sea compatible para terminar trabajos de entrenamiento no prometedores.
Servicios y configuración clave
Al construir un flujo de trabajo de entrenamiento y ajuste de extremo a extremo, comúnmente utilizará varios servicios de AWS y capacidades de SageMaker en conjunto:
- Amazon SageMaker Training Jobs (API Estimator / CreateTrainingJob)
- SageMaker Automatic Model Tuning (CreateHyperParameterTuningJob)
- SageMaker Model Registry (ModelPackage y CreateModelPackageGroup)
- AWS Glue / AWS Lake Formation para la catalogación de datos centralizada y segura
- Amazon S3 para el almacenamiento duradero de puntos de control y artefactos
Dentro de la configuración de un trabajo de entrenamiento, especificará ResourceConfig, incluyendo InstanceType e InstanceCount, y pasará los hiperparámetros a través de HyperParameters. Para el entrenamiento con instancias spot administradas, incluya EnableManagedSpotTraining y establezca CheckpointConfig.S3Uri para que los trabajos interrumpidos guarden su estado. Al lanzar trabajos de ajuste mediante CreateHyperParameterTuningJob, complete HyperParameterTuningJobConfig.ParameterRanges con entradas de tipo IntegerParameterRange, ContinuousParameterRange y CategoricalParameterRange, y establezca ResourceLimits con MaxNumberOfTrainingJobs y MaxParallelTrainingJobs. Use WarmStartConfig con ParentHyperParameterTuningJobs y WarmStartType establecido en IDENTICAL_DATA_AND_ALGORITHM o TRANSFER_LEARNING para iniciar la búsqueda a partir de resultados anteriores.
Para el control operativo y de seguridad, centralice los artefactos del modelo registrando objetos ModelPackage en un ModelPackageGroup en el SageMaker Model Registry; establezca ModelApprovalStatus en PendingManualApproval para requerir un cambio manual a Approved antes del despliegue. Combine los eventos del Model Registry con AWS CodePipeline o AWS Step Functions para construir una acción de aprobación manual que actualice ModelPackage.ModelApprovalStatus a través de la API UpdateModelPackage. Para monitorear endpoints activos y detectar deriva (drift), habilite DataCaptureConfig en los endpoints y use SageMaker Model Monitor para establecer una línea base de estadísticas previas al despliegue con CreateMonitoringSchedule y, posteriormente, use la captura de datos de BatchTransform o RealTimeInference con S3 DestinationS3Uri para una evaluación continua.
Patrones de diseño y compensaciones
Elegir el entrenamiento distribuido con paralelismo de datos con muchos fragmentos más pequeños produce un escalado directo y suele ser el patrón más simple cuando tu modelo cabe en una sola GPU. Los enfoques de paralelismo de datos que usan PyTorch DDP o Horovod escalan bien si la estructura de red es de alto rendimiento y las instancias admiten EFA y NCCL. Cuando los pesos del modelo exceden la memoria de una sola GPU, se requiere paralelismo de modelo o paralelismo de canalización; smdistributed.modelparallel ayuda a particionar tensores entre las GPU, pero aumenta la complejidad en la depuración, la creación de puntos de control y el equilibrio entre cómputo y comunicación. Un patrón de diseño práctico es el híbrido: usar la fragmentación de modelo para capas muy grandes y el paralelismo de datos entre los grupos de trabajo.
Las compensaciones en el ajuste de hiperparámetros son principalmente tiempo versus costo. Una búsqueda amplia Aleatoria o de Cuadrícula es simple pero costosa; la optimización bayesiana (la estrategia predeterminada de AMT) utiliza resultados previos para enfocar la búsqueda y puede reducir el número de trabajos de entrenamiento necesarios para alcanzar una buena configuración. Usa WarmStartConfig para transferir el conocimiento de ajustes anteriores a nuevos experimentos cuando los cambios en el conjunto de datos o el modelo son incrementales. Paralelizar muchos trabajos de entrenamiento acelera la optimización en tiempo real, pero aumenta el costo instantáneo y puede alcanzar las cuotas de servicio; configura MaxParallelTrainingJobs de forma conservadora y usa instancias Spot para los trabajos de ajuste para reducir el gasto, pero configura siempre CheckpointConfig y MaxWaitTimeInSeconds para tolerar interrupciones.
La frecuencia de los puntos de control y la elección del almacenamiento afectan tanto a la resiliencia como al costo. Los puntos de control frecuentes reducen el cómputo perdido por interrupciones, pero añaden una sobrecarga de rendimiento y latencia de S3; usa la creación de puntos de control incrementales dentro del contenedor (LocalPath) y sincroniza de forma asíncrona con S3 para una recuperación duradera. Al entrenar en instancias spot administradas, establece un intervalo de puntos de control robusto y usa un menor número de instancias para trabajos de entrenamiento que puedan completarse dentro de las ventanas de interrupción típicas, o diseña el bucle de entrenamiento para tolerar la interrupción preferente usando los hooks SIGTERM proporcionados por SageMaker para delimitar puntos de control consistentes.
Errores comunes y criterios de decisión
Un error operativo común es depender de imágenes de contenedor personalizadas sin realizar pruebas de rendimiento; las imágenes proporcionadas por el framework (imágenes preconstruidas de SageMaker para PyTorch, TensorFlow, XGBoost) se inician más rápido, incluyen integración para la emisión automática de métricas y minimizan la latencia de arranque en frío. Otro error frecuente en la optimización de hiperparámetros (HPO) es una configuración incorrecta de MetricDefinitions u ObjectiveMetricName que impide que AMT encuentre y optimice la señal correcta; valide siempre la expresión regular (regex) utilizada para extraer métricas de los registros antes de escalar un trabajo de ajuste. No habilitar CheckpointConfig al usar el entrenamiento spot administrado provocará la pérdida del progreso del trabajo en caso de interrupción y puede llevar a un tiempo de ejecución acumulado más largo y a un costo mayor.
Las decisiones de seguridad y gobernanza deben centrarse en el principio de privilegio mínimo y en el control del ciclo de vida del modelo. Utilice SageMaker Model Registry junto con el flujo de trabajo de aprobación de ModelPackage y las políticas de IAM para garantizar que solo las versiones autorizadas de ModelPackage lleguen a producción. Proteja los datos de entrenamiento en S3 con cifrado (SSE-S3 o SSE-KMS) y controle el acceso mediante roles de IAM asumidos por el trabajo de entrenamiento (parámetro RoleArn en CreateTrainingJob) y Lake Formation donde se requieran políticas centrales de acceso a datos. Para la detección de desviaciones (drift) y el análisis de causa raíz, combine SageMaker Model Monitor con los artefactos de SageMaker Model Registry para rastrear qué versiones de artefactos se degradan y activar flujos de aprobación con intervención humana antes de un nuevo despliegue.
Problema práctico: Escenario de caso de uso
Empresa: FinGuard Inc. — Desafío: construir un modelo de detección de fraude entrenado con registros de transacciones almacenados en S3 y perfiles de clientes en una base de datos MySQL on-premises, minimizar costos, tolerar interrupciones de spot, ejecutar optimización automática de hiperparámetros, forzar la aprobación manual antes del despliegue en producción y detectar sesgos o desviaciones (drift) después del despliegue.
Agregación y preparación de datos: Ingeste los registros de transacciones de S3 directamente y utilice AWS Glue con una conexión JDBC a la base de datos MySQL on-premises para rastrear y catalogar las tablas de perfiles de clientes. Registre las características curadas en un FeatureGroup de SageMaker Feature Store para un acceso de baja latencia y para garantizar la consistencia del esquema; cifre el OfflineStore de S3 con SSE-KMS y controle el acceso mediante políticas de IAM y Lake Formation.
Entrenamiento y configuración distribuida: Utilice un Estimator de SageMaker con un contenedor XGBoost incorporado para el modelo inicial; configure ResourceConfig con InstanceType ml.m5.4xlarge como línea base y escale a ml.p3.2xlarge para experimentos acelerados por GPU. Para experimentos grandes, utilice smdistributed.dataparallel en instancias habilitadas para EFA (ml.p3dn.24xlarge o ml.p4d.24xlarge) y establezca CheckpointConfig.S3Uri en s3://finguard-checkpoints/{job-name} y LocalPath en /opt/ml/checkpoints. Habilite el entrenamiento spot administrado estableciendo EnableManagedSpotTraining en true y MaxWaitTimeInSeconds en al menos 2 veces MaxRuntimeInSeconds para permitir reintentos.
Optimización de hiperparámetros: Lance SageMaker Automatic Model Tuning con HyperParameterTuningJobConfig.ParameterRanges para eta, max_depth y scale_pos_weight (para abordar el desequilibrio de clases sin un preprocesamiento intensivo). Establezca ObjectiveMetricName en validation:F1 y proporcione una expresión regular (regex) en MetricDefinitions que extraiga el valor de F1. Utilice la estrategia (Strategy) Bayesian, ResourceLimits con MaxNumberOfTrainingJobs 50 y MaxParallelTrainingJobs 5, y WarmStartConfig si se está iterando a partir de resultados de ajuste anteriores. Ejecute los trabajos de ajuste en instancias spot administradas para reducir costos, asegurándose de que CheckpointConfig esté activo para cada trabajo de entrenamiento.
Gobernanza y despliegue del modelo: Registre los artefactos del mejor modelo en SageMaker Model Registry como un ModelPackage dentro de un ModelPackageGroup y establezca ModelApprovalStatus en PendingManualApproval. Implemente una canalización (pipeline) de AWS Step Functions que incluya un paso de aprobación humana (tarea manual) y, tras la aprobación, llame a UpdateModelPackage para establecer ModelApprovalStatus en Approved, y luego active CreateModel y CreateEndpointConfig/CreateEndpoint para el despliegue. Utilice DataCaptureConfig en el endpoint para capturar las solicitudes y respuestas de inferencia en s3://finguard-capture para Model Monitor.
Justificación de AWS: AWS Glue centraliza y cataloga fuentes de datos híbridas y se integra con SageMaker; SageMaker Feature Store estandariza las características y las asegura para el entrenamiento y la inferencia; el entrenamiento spot administrado junto con CheckpointConfig reduce el costo de cómputo mientras conserva el progreso a través de las interrupciones; SageMaker Automatic Model Tuning con MetricDefinitions y WarmStartConfig acelera la búsqueda de hiperparámetros robustos mientras controla el presupuesto; Model Registry con PendingManualApproval junto con Step Functions o CodePipeline impone la gobernanza y la promoción de modelos a producción con privilegio mínimo; SageMaker Model Monitor y DataCaptureConfig proporcionan detección automatizada de desviaciones (drift) y sesgos para realizar comprobaciones continuas del estado del modelo.
← Ingeniería de datos e ingeniería de características · Todos los dominios · Evaluación y selección 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 →