Amazon MLA-C01: Optimización de costos para cargas de trabajo de ML — 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: de dónde viene el costo y qué palancas puede usar
El costo de las cargas de trabajo de machine learning se origina en tres categorías fundamentales: cómputo para entrenamiento e inferencia, almacenamiento y transferencia de datos para datasets y checkpoints, y sobrecostos operativos por infraestructura subutilizada o mal aprovisionada. El entrenamiento suele ser la partida de gasto individual más grande cuando se entrenan modelos grandes o se ejecutan muchos experimentos. El costo de la inferencia predomina cuando se sirven modelos a escala o se requiere baja latencia para aplicaciones interactivas. Las palancas de optimización principales son la elección de la familia y el tamaño de la instancia, las opciones de compra (on-demand vs. Spot vs. Savings Plans), los patrones del ciclo de vida del modelo (batch vs. en tiempo real vs. serverless) y las optimizaciones en tiempo de ejecución como la compilación de modelos, el almacenamiento en caché y la consolidación de instancias.
Las técnicas operativas llevan esas palancas a la práctica. Utilice el entrenamiento Spot gestionado con checkpointing para reducir los costos de cómputo del entrenamiento hasta en un 70 % en comparación con on-demand, pero combínelo con checkpointing (parámetro
undefined
de
undefined
→
undefined
) y el flag
undefined
de
undefined
establecido en
undefined
para que los trabajos puedan reanudarse después de interrupciones. Dimensione correctamente las instancias (right-sizing) perfilando el uso real de CPU/GPU/IO (métricas de CloudWatch como
undefined
,
undefined
y trazas del profiler de SageMaker Debugger), y luego cambie a familias de cómputo que coincidan con las características de la carga de trabajo (
undefined
/
undefined
para CPU,
undefined
/
undefined
para GPU,
undefined
para uso intensivo de memoria). Para la inferencia, prefiera modelos con costos proporcionales: utilice la inferencia serverless (variante de producción de
undefined
con
undefined
→
undefined
y
undefined
) para cargas de trabajo con picos y de bajo rendimiento (throughput); utilice endpoints multimodelo o compilación de modelos (SageMaker Neo) para reducir los requisitos de instancia para muchos modelos pequeños; y mueva las cargas de trabajo grandes o insensibles a la latencia a transformaciones asíncronas o por lotes (batch) (
undefined
y Batch Transform).
Servicios y configuración clave
Amazon SageMaker expone controles explícitos para la gestión de costos. Para reducir los costos de entrenamiento, utilice el entrenamiento Spot gestionado: en la API
undefined
, establezca
undefined
, incluya
undefined
, y configure
undefined
undefined
para permitir la adquisición de capacidad Spot. En el SDK de Python para SageMaker, puede establecer
undefined
,
undefined
y
undefined
a la ubicación del checkpoint en S3. Para obtener una latencia baja y reproducible en trabajos de entrenamiento consecutivos, mantenga los contenedores “calientes” (warm) aprovechando SageMaker Processing o entrenando contenedores en una infraestructura aprovisionada persistente cuando la cadencia de experimentación lo requiera; de lo contrario, reduzca el arranque del contenedor utilizando imágenes de contenedor más pequeñas, contenedores preconstruidos de SageMaker o reutilizando una instancia de entrenamiento persistente en un entorno de desarrollo.
Para el control de costos de inferencia,
undefined
/
undefined
admiten múltiples estrategias. Utilice
undefined
en
undefined
para permitir que SageMaker gestione el escalado y facture por invocación y memoria en lugar de por horas de instancia completas;
undefined
requiere los valores
undefined
y
undefined
. Para cargas de trabajo estables y de alto rendimiento (throughput), utilice instancias aprovisionadas (Provisioned) y aplique políticas de seguimiento de destino (target tracking) de Application Auto Scaling al endpoint para evitar el sobreaprovisionamiento. Los endpoints multimodelo reducen el costo cuando se alojan muchos modelos de uso poco frecuente al compartir un único contenedor y cargar los artefactos del modelo desde S3 bajo demanda. Para obtener recomendaciones sobre el tamaño del modelo, llame a
undefined
en Inference Recommender, lo que proporciona orientación sobre el tipo de instancia, el tamaño del lote (batch size) y la latencia/rendimiento (throughput).
Los compromisos de facturación se gestionan mejor con SageMaker Savings Plans o AWS Compute Savings Plans. Adquiera un Savings Plan a través de la consola de AWS Billing para comprometerse a un gasto de $/hora durante un período de 1 o 3 años; esto aplica un descuento al cómputo on-demand de SageMaker (entrenamiento y alojamiento) en todas las familias de instancias. Tenga en cuenta que los Savings Plans se aplican al uso on-demand y no a Spot, así que combine estrategias: compre Savings Plans para el uso base constante y utilice Spot para el entrenamiento experimental o con picos de demanda (bursty).
Patrones de diseño y contrapartidas
El patrón de Spot administrado + checkpointing es la opción preferida para ejecuciones de entrenamiento distribuido largas o de gran tamaño. Requiere cambios mínimos en el código: habilitar EnableManagedSpotTraining, proporcionar CheckpointConfig.S3Uri y establecer un MaxWaitTimeInSeconds apropiado para tolerar la programación de Spot. La contrapartida es la complejidad del reinicio y un tiempo de reloj de pared (wall-clock time) ligeramente mayor si las interrupciones de Spot son frecuentes; la ganancia es una reducción drástica de los costos. Para la experimentación iterativa donde la latencia de inicio entre trabajos consecutivos es importante, mantén un entorno de desarrollo cálido (warm): utiliza instancias ml.m5 o ml.c5 aprovisionadas y más pequeñas con datos precargados en caché local/NVMe, o ejecuta muchos experimentos como trabajos de procesamiento local en la misma instancia utilizando SageMaker Processing o notebooks de Studio. Esto aumenta el costo base, pero reduce el tiempo total del ciclo.
Para la inferencia, elige entre endpoints sin servidor (serverless) y aprovisionados según la forma del tráfico. La inferencia sin servidor (ServerlessConfig) elimina la planificación de capacidad y es la de menor costo para tráfico intermitente e impredecible, ya que se paga por invocación y por asignación de memoria. La contrapartida es la latencia de arranque en frío (cold start) y los límites de tamaño; para SLAs estrictos de baja latencia, prefiere instancias aprovisionadas con autoescalado y considera la optimización del modelo con SageMaker Neo para reducir el número de instancias. Cuando se deben alojar muchos modelos pero el tráfico por modelo es bajo, los endpoints multimodelo consolidan el uso de disco y memoria y reducen el costo por modelo a expensas de una carga de arranque en frío ligeramente mayor para un modelo no cargado.
El dimensionamiento correcto (right-sizing) debe basarse primero en la observación, no en conjeturas. Usa el perfilado de SageMaker Debugger y CloudWatch para recopilar GPUUtilization y DiskReadOps; luego, ejecuta un trabajo de Inference Recommender (CreateInferenceRecommendationsJob) para validar la clase/tipo de instancia y el rendimiento. Si los requisitos de latencia del modelo son estrictos, considera la cuantificación del modelo (model quantization) o la compilación con SageMaker Neo, o el uso de aceleradores de Elastic Inference para adjuntar inferencia de GPU fraccionada a instancias de CPU; Elastic Inference te permite adjuntar un pequeño acelerador a una instancia de CPU, reduciendo el costo en comparación con las instancias de GPU completas para ciertos modelos.
Errores comunes y criterios de decisión
Un error frecuente es aplicar una única optimización de costos a todas las cargas de trabajo. Los Savings Plans son potentes para una utilización base constante, pero deben combinarse con Spot para cargas de trabajo experimentales y con serverless para inferencia con picos. No asuma que Spot es gratuito: requiere puntos de control (checkpointing) y una lógica de entrenamiento tolerante a fallos; configure
undefined
y
undefined
, y calcule un
undefined
que refleje cuánto tiempo aceptará un inicio retrasado. Otro error es descuidar la telemetría: sin el perfilado (SageMaker Debugger, CloudWatch e Inference Recommender) se arriesga a sobreaprovisionar o a elegir una familia de instancias con características de CPU, GPU y memoria desalineadas. Finalmente, la inferencia sin servidor (serverless) simplifica los costos pero puede introducir arranques en frío (cold starts) impredecibles; mida la latencia de extremo a extremo al usar ServerlessConfig y recurra a endpoints aprovisionados con autoescalado para SLAs estrictos.
Problema práctico: escenario de caso de uso
Empresa: FinSight Analytics. Desafío: FinSight debe construir un pipeline de detección de fraude que entrene frecuentemente con registros de transacciones y perfiles de clientes almacenados en S3, mantenga los datos aislados, soporte la gobernanza de versiones de modelos con aprobación manual antes del despliegue en producción, reduzca los costos de entrenamiento para el reentrenamiento nocturno, minimice la latencia de inicio por trabajo durante la experimentación rápida y sirva un endpoint de tiempo real de baja latencia con sensibilidad de costos al tráfico con picos.
- Registro de modelos y datos centralizado y seguro. Almacene los datos en un bucket de S3 protegido con cifrado por defecto y políticas de bucket que restrinjan el acceso al rol de ejecución de SageMaker. Registre los modelos en SageMaker Model Registry; use el paso RegisterModel de SageMaker Pipelines para crear paquetes de modelos con ModelApprovalStatus establecido por defecto en “PendingManualApproval”. Implemente el flujo de trabajo humano de aprobación manual creando un Pipeline de SageMaker que emita un paquete de modelo y un paso de aprobación manual; cuando los revisores autorizados terminen la validación, llaman a
undefined
para permitir el despliegue. Justificación: Model Registry proporciona control de versiones centralizado, y ModelApprovalStatus se integra directamente con las API de SageMaker para un mínimo de operaciones personalizadas.
Reentrenamiento nocturno rentable. Use el entrenamiento Spot gestionado creando trabajos de entrenamiento con EnableManagedSpotTraining=true, incluya CheckpointConfig.S3Uri para persistir el estado del optimizador, y establezca MaxRuntimeInSeconds y MaxWaitTimeInSeconds apropiadamente para que los trabajos puedan reanudarse tras interrupciones de Spot. Combine esto con la compra de un Savings Plan base dimensionado para cubrir las horas promedio de entrenamiento/inferencia bajo demanda para reducir los costos fijos, y use Spot para la experimentación donde las interrupciones son tolerables. Justificación: El Spot gestionado reduce el costo de cómputo con cambios mínimos en el código; los Savings Plans se aplican al uso base bajo demanda para reducir los gastos predecibles.
Reducir la latencia de inicio para la experimentación. Para ciclos de experimentación interactivos, mantenga un perfil de instancia de desarrollo persistente (una ml.c5 o ml.m5) en SageMaker Studio o una pequeña Notebook Instance dedicada con conjuntos de datos precargados en EBS/NVMe y reutilice ese entorno para muchas ejecuciones de entrenamiento rápidas. Para los trabajos nocturnos de producción, siga utilizando el Spot gestionado con puntos de control (checkpointing). Justificación: Un entorno persistente evita los arranques en frío de los contenedores y mejora la velocidad de iteración, al tiempo que preserva el ahorro de costos para las ejecuciones pesadas.
Servicio en tiempo real de baja latencia y sensible a los costos. Despliegue el modelo aprobado en un endpoint aprovisionado para una baja latencia base y adjunte una política de Application Auto Scaling al endpoint para reducir la escala durante las horas de menor actividad. Para picos de tráfico impredecibles, utilice una opción de inferencia Serverless para modelos de bajo volumen o use inferencia asíncrona (AsyncInferenceConfig con S3 OutputConfig) para tareas pesadas de puntuación por lotes que no son en tiempo real. Aplique la compilación de SageMaker Neo al modelo antes del despliegue para reducir su huella de CPU/GPU. Justificación: La combinación de aprovisionado + autoescalado proporciona una baja latencia constante y control de costos; los endpoints sin servidor (serverless) o asíncronos manejan las cargas de trabajo con picos o por lotes de manera más rentable, y Neo reduce los requisitos de la instancia.
Este enfoque combina EnableManagedSpotTraining con CheckpointConfig para la reducción de costos de entrenamiento, SageMaker Model Registry y UpdateModelPackage para las aprobaciones manuales, una instancia de desarrollo persistente para reducir la latencia de inicio, y una mezcla de modelos aprovisionados, sin servidor (serverless) y compilados para optimizar los costos de inferencia.
← IA generativa y modelos fundacionales · Todos los dominios · Visión por computadora →
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 →