Una referencia escaneable de patrones arquitectónicos que evalúa el examen MLA-C01. Lee de arriba a abajo o salta a una sección.
Preparación de Datos para ML
Seleccionar una herramienta visual de preparación de datos.
Centrada en ML, se integra con SageMaker Studio + flujo → Tarea de procesamiento → Pipeline → Exportación de Notebook → SageMaker Data Wrangler. Limpieza de datos genérica con recetas reutilizables, perfilado, sin dependencia de SageMaker → AWS Glue DataBrew. 50 TB+ Spark con código personalizado → Amazon EMR.
Por qué: Data Wrangler es la opción nativa de SageMaker (más de 300 transformaciones, extracción de fecha y hora, exportaciones a Pipeline/Processing). DataBrew se basa en recetas y es agnóstico a la fuente. EMR gestiona la escala y cualquier Spark.
50 TB de ingeniería de características con código PySpark existente, debe finalizar en 4 horas.
Amazon EMR con Spark. Tamaño de clúster ajustable, soporte para Spot, ejecuta el código existente sin cambios.
Por qué: Glue ETL también ejecuta Spark, pero EMR ofrece más control sobre la forma del clúster; SageMaker Processing es para trabajos de contenedor único a menor escala.
Etiquetar 100.000 imágenes de manera rentable: se desea etiquetado humano + automatizado.
Amazon SageMaker Ground Truth con etiquetado de datos automatizado habilitado. Después de un subconjunto inicial etiquetado por humanos, Ground Truth entrena un modelo y auto-etiqueta las muestras de alta confianza.
Por qué: El aprendizaje activo generalmente reduce el costo de etiquetado hasta en un 70%. A2I es para la revisión humana de predicciones de modelos, no para el etiquetado masivo.
Múltiples anotadores discrepan; se necesita un revisor sénior para verificar una muestra de etiquetas.
Flujo de trabajo de verificación de etiquetas (auditoría) de Ground Truth. Un subconjunto de etiquetas se enruta a una fuerza de trabajo de revisión que aprueba, rechaza o ajusta. Combinar con la consolidación de anotaciones para la votación por mayoría de varios trabajadores.
Las mismas características ingenierizadas necesarias en el entrenamiento (batch) y la inferencia (menos de 10 ms).
Amazon SageMaker Feature Store con almacenes online + offline habilitados en el grupo de características. El almacén online respalda GetRecord en tiempo real; el almacén offline (Parquet en S3) respalda el entrenamiento.
Por qué: Elimina la asimetría entre entrenamiento y servicio sin una sincronización personalizada DynamoDB ↔ S3.
Definir un grupo de características - qué es obligatorio.
Nombre del identificador de registro (clave única por registro) y nombre de la característica de tiempo del evento (marca de tiempo para consultas de punto en el tiempo).
Unir dos grupos de características para el entrenamiento sin filtrar valores futuros de características.
Unión de punto en el tiempo contra el almacén offline usando la columna de tiempo del evento. Cada fila de entrenamiento ve solo los valores de características que existían en su marca de tiempo de evento.
Por qué: Una JOIN simple sobre los valores más recientes provoca fuga de datos al exponer al modelo la deriva de características posterior al evento.
Elegir un modo de entrada de datos de entrenamiento de SageMaker para un conjunto de datos de 500 GB.
Modo Archivo → se descarga todo el conjunto de datos primero (inicio lento, costo de EBS). Modo Pipe → transmite desde S3, bajo inicio, bajo almacenamiento. Modo FastFile → streaming perezoso a nivel de archivo. Usar Pipe (o FastFile) para conjuntos de datos grandes para evitar la descarga.
Seleccionar un formato de almacenamiento y diseño para un data lake de ML en S3 con lecturas frecuentes de subconjuntos de columnas + filtros de partición.
Parquet (columnar, comprimido) particionado por la columna más filtrada (por ejemplo, fecha o región). Impulsa la poda de columnas + poda de particiones en Athena y SageMaker.
Glue ETL reprocesa archivos ya manejados en cada ejecución.
Habilitar marcadores de trabajos de Glue. Usar la opción PAUSE para que una ejecución fallida no avance el marcador; reiniciar solo cuando sea necesario.
Codificar características categóricas. Algunas están ordenadas (Básico/Estándar/Premium), otras no (estados de EE. UU.).
Ordenadas → codificación ordinal (conserva el rango). No ordenadas → codificación one-hot (evita la ordinalidad falsa). Evitar la codificación de etiquetas en características no ordenadas. La codificación de destino requiere una CV cuidadosa para evitar fugas.
Una columna numérica tiene valores faltantes que se correlacionan con otra característica (por ejemplo, ingresos faltantes dependen del tipo de empleo).
Imputación por mediana basada en grupos (mediana por tipo de empleo). Preserva la relación; la media es sensible a valores atípicos; eliminar pierde datos; cero agrega sesgo.
Clasificación binaria con 0.3% de clase positiva.
Sobremuestreo SMOTE solo en el fold de entrenamiento (después de la división). Combinar con evaluación PR-curve / F1, no con precisión.
Por qué: Aplicar sobremuestreo DESPUÉS de la división para evitar fugas. La precisión es engañosa en datos desequilibrados.
Una característica numérica sesgada a la derecha (por ejemplo, ingresos) perjudica el rendimiento del modelo lineal.
Transformación logarítmica. Comprime la cola derecha y produce una distribución más simétrica. La estandarización/min-max cambia la escala, no la forma.
50 características altamente correlacionadas; se desea menor dimensionalidad preservando la varianza.
PCA. Transforma características correlacionadas en componentes principales no correlacionados clasificados por varianza.
Elegir una división de entrenamiento/validación/prueba.
Clasificación desequilibrada → división estratificada (preserva la proporción de clases). Series de tiempo → división cronológica (entrenar en período temprano, probar en el más reciente); nunca mezclar aleatoriamente. Tabular IID → aleatorio.
Desarrollo de Modelos de ML
Elegir un algoritmo incorporado de SageMaker.
Clasificación/regresión tabular → XGBoost o Linear Learner. Clasificación de texto multiclase a escala → BlazingText (supervisado). Series de tiempo con series relacionadas y estacionalidad → DeepAR. Detección de anomalías no supervisada en datos numéricos → Random Cut Forest. Modelado de temas → Neural Topic Model. Traducción / Seq2Seq → Sequence-to-Sequence. Clases a nivel de píxel → Semantic Segmentation. Embeddings de entidades emparejadas (usuario/ítem) → Object2Vec.
Marco de entrenamiento personalizado / tokenizador propietario no incluido en los algoritmos incorporados.
BYOC (Bring Your Own Container - Trae tu propio contenedor): imagen de Docker con el código y las dependencias, subir a Amazon ECR, referenciar en el entrenamiento de SageMaker. Mantiene la infraestructura gestionada (Spot, distribuida, ciclo de vida) sin renunciar a la personalización.
Conjunto de datos de imágenes pequeño (~2.000) para clasificación médica.
Transferencia de aprendizaje de un modelo pre-entrenado en ImageNet (por ejemplo, ResNet). Ajustar las últimas capas. SageMaker Image Classification lo soporta directamente.
Por qué: Entrenar desde cero con datos pequeños causa sobreajuste. Las características pre-entrenadas (bordes, texturas) se transfieren limpiamente a imágenes médicas.
Ajustar rápidamente un modelo fundacional pre-entrenado sin escribir código de entrenamiento personalizado.
API de ajuste fino de SageMaker JumpStart: seleccionar ID de modelo, proporcionar conjunto de datos en el formato esperado (típicamente JSONL), iniciar una tarea de ajuste fino, desplegar en un endpoint desde JumpStart.
Adaptar un LLM a un dominio. Mucho conocimiento estático → elegir RAG vs ajuste fino vs solo prompt.
Conocimiento de dominio que cambia frecuentemente → RAG a través de Bedrock Knowledge Bases. Voz de marca / estilo consistente con ejemplos etiquetados → Personalización de modelos de Bedrock (ajuste fino, a menudo adaptadores eficientes en parámetros). Pequeña guía estática → ingeniería de prompt con few-shot.
Ajustar 8 hiperparámetros; cada trabajo de entrenamiento dura 30 minutos; computación limitada.
Ajuste Automático de Modelos de SageMaker con optimización bayesiana (por defecto). Construye un modelo probabilístico del objetivo y muestrea regiones prometedoras.
Por qué: La búsqueda en cuadrícula explota combinatoriamente; la búsqueda aleatoria desperdicia presupuesto. Especificar la métrica objetivo (por ejemplo, `validation:auc`) y el tipo (`Maximize`).
Nuevo trabajo de ajuste con inicio en caliente utilizando trabajos parentales como priors y rangos reducidos centrados en las configuraciones de mejor rendimiento.
Continuar entrenando el modelo existente con nuevas etiquetas mensuales - no empezar desde cero.
Entrenamiento incremental: pasar los artefactos del modelo anterior como entrada. Soportado por los algoritmos incorporados de Image Classification, Object Detection, Semantic Segmentation.
Elegir una estrategia de entrenamiento distribuido.
El modelo cabe en una GPU pero los datos son enormes → paralelismo de datos (replicar modelo, dividir batches, AllReduce gradients). El modelo no cabe en una GPU → paralelismo de modelos (dividir capas/tensores entre GPUs). Más de 10B de parámetros → biblioteca de paralelismo de modelos de SageMaker (paralelismo de tensores + pipeline).
Trabajos de entrenamiento largos que pueden tolerar interrupciones; se desea un gran ahorro de costos.
SageMaker Managed Spot Training (hasta un 90% de descuento). Configurar puntos de control en S3 para que SageMaker pueda reanudar después de la interrupción.
La pérdida de entrenamiento sigue disminuyendo, la pérdida de validación comienza a aumentar después de la época 50.
Sobreajuste. Aplicar detención temprana en el mínimo de la pérdida de validación, además de dropout / decaimiento de peso L2. Más capas lo empeora.
Elegir la métrica de clasificación correcta.
Desequilibrado + positivos raros importan → recall, F1, curva PR / Average Precision (NO ROC AUC, que se infla por muchos TNs). Multiclase con desequilibrio → F1 promedio macro. Ranking independiente del umbral → AUC. Calibración de probabilidad → log loss / Brier.
El modelo de regresión sobrepredice en el extremo superior y subpredice en el extremo inferior.
Graficar residuos vs valor predicho; usar Error Medio (con signo) para sesgo sistemático. RMSE / MAE / R² ocultan la dirección.
Cada entrada puede pertenecer a múltiples clases simultáneamente.
Activación sigmoide por neurona de salida con pérdida de entropía cruzada binaria (probabilidades independientes). Softmax + entropía cruzada categórica asume clases mutuamente excluyentes.
Apilar múltiples modelos base con un meta-learner.
Validación cruzada k-fold: cada modelo base produce predicciones fuera de fold en su fold retenido; recolectar a través de los folds y entrenar el meta-learner con ellos.
Por qué: Entrenar modelos base y predecir en el mismo conjunto de entrenamiento filtra información al meta-learner.
Rastrear y comparar muchas ejecuciones de entrenamiento (parámetros, métricas, artefactos).
SageMaker Experiments. Pasar `experiment_config` (experimento + prueba + componente de prueba) a la tarea de entrenamiento; SageMaker registra automáticamente hiperparámetros, configuración de entrada, métricas y artefactos.
Detectar patologías de entrenamiento (gradiente evanescente, pérdida que no disminuye, tensor explosivo) sin reescribir el script.
SageMaker Debugger con reglas incorporadas (`VanishingGradient`, `LossNotDecreasing`, `ExplodingTensor`, `Overfit`). Captura tensores a través de hooks; evalúa reglas sobre la marcha.
Implementación y Orquestación de Flujos de Trabajo de ML
Elegir un modo de inferencia de SageMaker.
Síncrono de baja latencia constante → endpoint en tiempo real. Tráfico irregular / inactivo, sin necesidad de GPU → inferencia serverless (configurar Provisioned Concurrency para eliminar arranques en frío). Larga duración por solicitud (>60 s) o grandes payloads → inferencia asíncrona. Puntuación offline masiva de registros de S3 → transformación por lotes.
El endpoint en tiempo real debe absorber picos de 1000 solicitudes/segundo pero escalar a casi cero por la noche.
Application Auto Scaling con seguimiento de objetivo en `InvocationsPerInstance`. Añade/elimina instancias detrás del endpoint a medida que cambia el tráfico.
Flujo de trabajo de ML nativo: entrenar → evaluar → registrar/desplegar condicionalmente.
SageMaker Pipelines con TrainingStep → ConditionStep (umbral de métrica) → RegisterModel → Paso Lambda (o CreateModel/Endpoint). Integración nativa de SageMaker, parametrización, almacenamiento en caché, linaje.
El pipeline debe coordinar Glue ETL + Lambda + entrenamiento de SageMaker + SNS / DynamoDB.
AWS Step Functions. Integraciones de servicios nativas en toda la pila; más rico que Pipelines para pasos que no son de SageMaker.
Por qué: Pipelines es la opción correcta para flujos de trabajo puramente de ML; Step Functions es la opción correcta cuando se necesitan integraciones de servicios de AWS más amplias.
Desplegar un modelo TensorFlow en dispositivos de borde ARM; se necesita que sea pequeño + rápido.
SageMaker Neo. Compila para el hardware de destino; hasta 25 veces más rápido, ~1/10 de la memoria. Desplegar a través del tiempo de ejecución DLR; combinar con IoT Greengrass para el borde offline.
Monitoreo, Mantenimiento y Seguridad de Soluciones de ML
Detectar que las distribuciones de características de entrada se han desviado de la línea base del tiempo de entrenamiento.
SageMaker Model Monitor - Calidad de Datos. Captura datos de inferencia, compara contra una línea base calculada a partir de datos de entrenamiento, emite una alarma sobre la deriva.
Por qué: El orden de configuración está bloqueado: (1) trabajo de línea base → (2) programa de monitoreo → (3) alarmas de CloudWatch sobre las métricas de violación de restricciones.
Detectar degradación de la calidad de predicción (precisión / F1 / RMSE) cuando la verdad fundamental llega con retraso.
SageMaker Model Monitor - Calidad del Modelo. Fusiona las predicciones capturadas con etiquetas de verdad fundamental retrasadas; emite alarmas cuando las métricas caen por debajo de la línea base.
La distribución de entrada parece inalterada pero la calidad de la predicción ha cambiado.
SageMaker Clarify Feature Attribution Drift Monitor (basado en SHAP). Detecta la deriva conceptual mediante el cambio de importancia de las características. Combinar con Model Quality Monitor cuando la verdad fundamental esté disponible.
La precisión disminuyó pero las distribuciones de características de entrada no han cambiado.
Deriva conceptual (la relación etiqueta/característica cambió). La deriva de datos fue descartada. Solución: reentrenar con datos etiquetados recientes.
Comprobar el conjunto de datos en busca de sesgos antes del entrenamiento.
Métricas de sesgo pre-entrenamiento de SageMaker Clarify. Desequilibrio de Clase (CI) para disparidad de tamaño de muestra; Diferencia en Proporciones Positivas de Etiquetas (DPL) para disparidad de tasa de etiquetas; divergencia KL/JS para brechas distribucionales.
Métricas de sesgo post-entrenamiento de SageMaker Clarify. Impacto Dispar (DI), Diferencia de Precisión (AD), Aceptación Condicional, Igualdad de Tratamiento. Ejecutar contra las predicciones del modelo.
Por qué: DPL pre-entrenamiento limpio pero DI post-entrenamiento sesgado = el modelo mismo amplifica una variable proxy. Investigar características (por ejemplo, código postal).
El cumplimiento requiere documentación estructurada de cada modelo de producción (uso previsto, datos de entrenamiento, evaluación, ética, limitaciones).
SageMaker Model Cards. Versionado; integrado con el Model Registry.
El notebook necesita leer datos de entrenamiento de un bucket S3 y escribir artefactos en otro.
Política IAM personalizada: `s3:GetObject` en el bucket/prefijo de entrenamiento y `s3:PutObject` en el bucket/prefijo de artefactos, adjunta al rol de ejecución de SageMaker. Evitar `AmazonS3FullAccess`.
Aislamiento por equipo a través de los recursos de SageMaker.
Control de acceso basado en atributos (ABAC) con la condición IAM `aws:ResourceTag/project`. Los recursos etiquetados `project=A` accesibles solo para roles cuyas políticas coincidan.
Cifrar datos de entrenamiento y artefactos de modelos con claves gestionadas por el cliente + rotación.
SSE-KMS con una clave gestionada por el cliente (CMK). Rotación de KMS, políticas de clave, auditoría de CloudTrail. Especificar la clave KMS en la configuración de la tarea de entrenamiento + endpoint (volumen + salida) para que SageMaker la utilice.
El contenedor no debe realizar llamadas de red salientes; los datos deben permanecer dentro de los canales de copia de SageMaker.
Establecer `EnableNetworkIsolation=true` en la tarea de entrenamiento/procesamiento o endpoint. SageMaker copia los canales de entrada de S3 antes de que se ejecute el contenedor; el contenedor no tiene salida.
El entrenamiento no debe tocar la internet pública.
Ejecutar SageMaker en una subred privada SIN NAT/Internet Gateway. Añadir VPC endpoints - endpoint de gateway para S3, endpoints de interfaz para SageMaker API + Runtime + ECR + STS + CloudWatch Logs.
Garantizar que todos los recursos de SageMaker utilicen VPC + KMS + tipos de instancia aprobados.
Preventivo → Productos de SageMaker Service Catalog (configuraciones preaprobadas) y claves de condición IAM (`sagemaker:VpcSecurityGroupIds`, `sagemaker:VolumeKmsKey`) que deniegan llamadas a la API no conformes. Detectivo → Reglas gestionadas/personalizadas de AWS Config.