Amazon MLA-C01: Ingeniería de datos e ingeniería de características — 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
La ingeniería de datos para ML consiste en producir entradas reproducibles y auditables para el entrenamiento y la inferencia de modelos, minimizando al mismo tiempo la fuga de datos y la carga operativa. En su núcleo se encuentran una semántica de ingesta consistente (tiempo del evento, identificador de registro, esquema), un catálogo de metadatos canónico y transformaciones bien definidas que pueden ejecutarse tanto offline para el entrenamiento de modelos como online para la inferencia en tiempo real. Diseñe sus pipelines de modo que el mismo código de transformación (o las mismas definiciones de registro de Feature Store) respalde los conjuntos de datos de entrenamiento y las características online devueltas en el momento de la inferencia; esto evita el sesgo entre entrenamiento y servicio (train/serve skew). Para problemas temporales, conserve el tiempo del evento para cada registro y aplique uniones y divisiones conscientes del tiempo para evitar la fuga de etiquetas; al usar SageMaker Feature Store, establezca un RecordIdentifierFeatureName y un EventTimeFeatureName en CreateFeatureGroup para que el entrenamiento y la inferencia posteriores utilicen claves idénticas.
La ingeniería de características se divide en transformaciones determinísticas y repetibles, y transformaciones exploratorias. Las transformaciones determinísticas incluyen la imputación, el escalado, la codificación categórica y las agregaciones derivadas (conteos móviles, características de ventana de tiempo). Ejecute estas como código que pueda correr en Glue ETL, SageMaker Processing o SageMaker Data Wrangler y que pueda guardarse como punto de control (checkpointed) en un almacén offline. Para características categóricas de alta cardinalidad, prefiera la codificación de destino (target encoding) con pliegues de validación cruzada o representaciones basadas en frecuencia o embeddings, en lugar de la codificación one-hot ingenua para evitar la explosión combinatoria. Para características numéricas, prefiera la estandarización compatible con pipelines (media/varianza) o las transformaciones de cuantiles almacenadas como parámetros en un artefacto del modelo, para que la normalización en producción coincida con la del entrenamiento.
Servicios y configuración clave
AWS Glue proporciona la capa canónica de ETL y metadatos para muchos pipelines de ML. Use Glue Crawlers para poblar el Glue Data Catalog para fuentes S3 y JDBC, y luego cree trabajos de ETL de Glue basados en Spark o trabajos visuales de Glue Studio para limpiar y transformar los datos. Configure los trabajos de Glue con GlueVersion (por ejemplo, 3.0), WorkerType (G.1X, G.2X), NumberOfWorkers, JobBookmarks para el procesamiento incremental y DefaultArguments como “–additional-python-modules” para incluir bibliotecas como awswrangler o pydeequ. Para la ingesta desde un MySQL on-premise, establezca una conexión de Glue con una URL JDBC y utilice trabajos de Glue o AWS DMS para capturar el CDC en una zona de aterrizaje (landing zone) de S3; al usar DMS, seleccione carga completa y luego CDC (full-load then CDC) y apunte a Parquet en S3 para obtener características offline eficientes.
SageMaker Feature Store es la opción central de gestión de características para una baja sobrecarga operativa a escala. CreateFeatureGroup requiere FeatureDefinitions, RecordIdentifierFeatureName, EventTimeFeatureName, OnlineStoreConfig (con EnableOnlineStore=True para habilitar un almacén de baja latencia respaldado por DynamoDB) y OfflineStoreConfig con S3Uri y DataCatalogConfig para exponer las características offline a través de Athena/Glue. Ingeste con BatchPutRecord o PutRecord dependiendo del throughput; incluya el FeatureGroupArn y el RoleArn que otorga al servicio los permisos de PutRecord. El almacén offline persiste archivos Parquet en S3 y se integra automáticamente con el Glue Data Catalog, permitiendo consultas de entrenamiento reproducibles. Para características en tiempo real, use GetRecord contra el almacén online; para uniones de entrenamiento masivas (bulk), prefiera la ruta de Parquet en S3 del almacén offline.
Para la gobernanza de modelos y los flujos de trabajo de despliegue, utilice SageMaker Model Registry y SageMaker Pipelines. Registre los modelos entrenados con CreateModelPackage o el paso RegisterModel de Pipelines y establezca ModelApprovalStatus en “PendingManualApproval” para forzar una puerta de aprobación manual. Integre Pipelines con AWS CodePipeline o añada una Lambda personalizada que transicione las versiones de model_package a través de UpdateModelPackage al estado “Approved” cuando se autorice. Para la monitorización de deriva (drift) y sesgo (bias), combine SageMaker Clarify para el análisis de sesgo/línea base y SageMaker Model Monitor para la detección continua de deriva de datos/etiquetas. Use ClarifyProcessor (sagemaker.processing.ProcessingJob) para la evaluación de sesgo bajo demanda, apuntándolo a los artefactos Parquet del almacén offline o a las muestras de streaming recopiladas por Model Monitor.
Patrones de diseño y contrapartidas
Elige arquitecturas offline-first cuando el rendimiento del entrenamiento y las uniones complejas importen: agrega y persiste características de ventana (windowed features) grandes en S3 Parquet (trabajos de Glue/EMR/Glue Spark), catalógalas en Glue Data Catalog y versiona los conjuntos de datos con prefijos de S3 y el versionado de objetos. Este enfoque favorece la reproducibilidad y el almacenamiento rentable, pero aumenta la latencia para servir características recientes. Cuando se requieren características de baja latencia, replica un subconjunto en Feature Store Online (DynamoDB) o en una capa de caché; la contrapartida es la sobrecarga operativa para mantener consistentes los almacenes en línea y fuera de línea. Usa las canalizaciones (pipelines) integradas de BatchPutRecord de Feature Store o la ingesta de flujos (stream ingestion) a través de Kinesis Data Streams + Lambda que escribe en Feature Store para lograr actualizaciones casi en tiempo real, manteniendo al mismo tiempo una vista canónica fuera de línea.
Para la experimentación iterativa frente al rendimiento en producción, SageMaker Pipelines con caché proporciona una ventaja notable: habilita CacheConfig en los pasos del pipeline para que las transformaciones de cómputo intensivo e incluso los pasos de entrenamiento se omitan cuando sus entradas (parámetros, sumas de comprobación de datos) no hayan cambiado. Esto reduce la latencia de inicio para ejecuciones consecutivas en comparación con el aprovisionamiento repetido de cómputo idéntico. Para la inferencia de latencia extremadamente baja, tendrás que hacer una compensación entre costo y complejidad: los endpoints de múltiples modelos o la concurrencia aprovisionada reducen la variabilidad del arranque en frío (cold-start) pero aumentan el costo; usar Feature Store en línea más un contenedor de modelo ligero minimiza la orquestación por solicitud.
Las elecciones de algoritmos y preprocesamiento presentan contrapartidas: el XGBoost integrado sobresale en tareas de fraude tabular y proporciona scale_pos_weight para abordar el desequilibrio de clases sin remuestreo, lo que es operativamente ligero. Sin embargo, los modelos profundos con embeddings manejan las variables categóricas de alta cardinalidad con más elegancia, pero requieren más infraestructura y pipelines de características. Usa transformaciones automatizadas siempre que sea posible: SageMaker Data Wrangler y Glue DataBrew proporcionan transformaciones visuales y repetibles (imputación, normalización, remuestreo) y pueden exportar flujos a scripts o a Feature Store, reduciendo el tiempo de ingeniería.
Errores comunes y criterios de decisión
Un error frecuente es no alinear las transformaciones de entrenamiento y de servicio. Almacene los parámetros de transformación (escaladores, codificadores) con el modelo o en Feature Store para que el preprocesamiento en línea sea idéntico al del entrenamiento. Otro error es la codificación one-hot de categorías de alta cardinalidad, que causa una dimensionalidad de características excesiva; prefiera embeddings, hashing o codificaciones de frecuencia de destino y valídelas mediante procedimientos de validación cruzada a prueba de fugas de datos (leakage-safe). Los errores de seguridad también son comunes: cuando entrene con datos sensibles de S3, aplique SSE-KMS (KmsKeyId), restrinja el acceso con políticas de bucket de S3 y roles de IAM (principal sagemaker.amazonaws.com) y coloque los trabajos de entrenamiento en una VPC con endpoints de puerta de enlace de S3 para que los datos no atraviesen la red pública de internet.
Decida entre un ETL impulsado por trabajos de Glue y SageMaker Processing/Data Wrangler evaluando la frecuencia y la complejidad: Glue está optimizado para ETL de Spark programados y escalables a través de muchas fuentes y se integra con Glue Data Catalog; Data Wrangler y SageMaker Processing son adecuados para la experimentación rápida y la exportación directa a Feature Store o a trabajos de entrenamiento. Para la detección de anomalías, utilice Amazon Lookout for Metrics para la detección automática de anomalías estadísticas en series temporales sin operaciones de ML pesadas, pero seleccione Deequ ejecutándose en Glue para comprobaciones de calidad de datos personalizables y conscientes del linaje que pueden alimentar métricas a los paneles de control.
Problema práctico: Escenario de caso de uso
Nombre de la empresa: FinEdge
FinEdge está construyendo un servicio de detección de fraude que debe entrenar modelos a partir de registros de transacciones por lotes diarios en Amazon S3, además de perfiles de clientes almacenados en una base de datos MySQL on-prem. Los datos deben permanecer cifrados y aislados; las versiones del modelo requieren aprobación manual antes del despliegue en producción; los modelos deben tener evaluación de sesgo y deriva bajo demanda; la inferencia necesita una búsqueda de características de baja latencia.
Ingesta y centralización: Use AWS DMS para realizar una carga completa inicial y una replicación CDC desde el MySQL on-prem a una zona de aterrizaje (landing zone) en S3 como archivos Parquet. Configure DMS con ajustes de destino de S3 y asegure SSL para la fuente JDBC. Use un Glue Crawler para registrar tanto los registros de transacciones de S3 como los perfiles de cliente en formato Parquet de DMS en el Glue Data Catalog. Establezca los parámetros del trabajo de Glue: GlueVersion 3.0, WorkerType G.2X, NumberOfWorkers adecuado al volumen diario, y habilite JobBookmarks para ejecuciones incrementales.
Ingeniería y almacenamiento de características: Cree transformaciones de Spark en Glue o use SageMaker Data Wrangler para iteraciones interactivas de características y exportación. Persista las características agregadas deterministas en S3 como Parquet y cree un FeatureGroup de SageMaker Feature Store con CreateFeatureGroup especificando FeatureDefinitions, RecordIdentifierFeatureName=“transaction_id”, EventTimeFeatureName=“event_time”, OnlineStoreConfig con EnableOnlineStore=True, y OfflineStoreConfig S3Uri apuntando al lago de datos canónico y DataCatalogConfig para vincular la tabla de Glue. Realice la ingesta mediante BatchPutRecord para cargas masivas y PutRecord para actualizaciones transaccionales.
Entrenamiento y registro de modelos: Use SageMaker Pipelines para el preprocesamiento, el entrenamiento y el registro. Incluya un paso RegisterModel que registre el modelo en un ModelPackageGroupName y establezca ModelApprovalStatus=“PendingManualApproval”. Conecte una acción de aprobación manual de AWS CodePipeline o use la API de SageMaker UpdateModelPackage para mover los paquetes aprobados a “Approved”. Para el desequilibrio de clases, establezca el hiperparámetro de XGBoost “scale_pos_weight” basándose en la proporción de clases calculada en las estadísticas de línea base para evitar la complejidad del remuestreo.
Gobernanza, monitoreo y comprobaciones bajo demanda: Cree líneas base con SageMaker Clarify usando un ClarifyProcessor para calcular métricas de sesgo y guardar las líneas base en S3/FeatureStore sin conexión. Despliegue Model Monitor con CreateMonitoringSchedule para la deriva de datos/características; para la evaluación de sesgo o deriva bajo demanda, ejecute un ClarifyProcessor o StartMonitoringSchedule programáticamente para analizar el tráfico capturado recientemente o la instantánea del almacén en línea. Almacene los resultados del monitoreo en S3 y muestre las anomalías a través de paneles de QuickSight. Asegure S3 usando SSE-KMS, restrinja el acceso mediante roles de IAM con el mínimo privilegio y coloque el entrenamiento y la inferencia en una VPC con un endpoint de VPC de S3.
Justificación de AWS: Este enfoque utiliza Glue y DMS para una ingesta escalable y auditable y metadatos a través de Glue Data Catalog; SageMaker Feature Store para características consistentes en línea/fuera de línea y búsquedas de baja latencia; SageMaker Pipelines y Model Registry para controlar el ciclo de vida del modelo con una sobrecarga operativa mínima y soporte integrado para la aprobación manual; Clarify y Model Monitor para proporcionar análisis de sesgo/deriva continuos y bajo demanda. La combinación preserva el aislamiento cifrado (SSE-KMS, endpoints de VPC), reduce el trabajo de ingeniería al utilizar servicios gestionados para la ingesta y la gestión de características, y garantiza artefactos de ML reproducibles y auditables.
Todos los dominios · Entrenamiento de modelos y optimización de hiperparámetros →
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 →