Saltar al contenido
aprendeaws.dev

Módulo 16 · Inteligencia artificial en AWS/Lección 109

Costos y rendimiento de la IA generativa

Tokens, modelos escalonados, lotes, capacidad aprovisionada y caché: pagar menos y responder más rápido sin perder calidad.

Al terminar podrás

  • →Estimar el costo de una aplicación por tokens
  • →Reducir costo con modelos escalonados, lotes y caché
  • →Elegir entre bajo demanda, por lotes y capacidad aprovisionada
  • →Balancear latencia, costo y calidad

En IA generativa pagas por uso, y el uso se mide en tokens: pedazos de palabra que el modelo lee (entrada) y escribe (salida). Un prototipo con diez usuarios cuesta poco. El mismo diseño con cien mil usuarios, prompts largos y un agente que hace ocho llamadas por pregunta puede costar más que el resto de tu infraestructura. La buena noticia: casi todas las palancas de costo también bajan la latencia.

Qué mueve la factura

  • Tokens de entrada y de salida: en la mayoría de los modelos, un token de salida cuesta varias veces más que uno de entrada.
  • Tamaño del modelo: entre el modelo más chico y el más grande de una familia, el precio por token cambia varias veces, y entre familias la diferencia puede superar las diez veces.
  • Embeddings: se pagan al indexar y en cada consulta. Re-indexar todo con otro modelo de embeddings cuesta otra vez.
  • Almacén vectorial: un clúster siempre encendido cobra aunque nadie pregunte; S3 Vectors cobra sobre todo por lo guardado y lo consultado.
  • Funciones extra de RAG: fragmentación semántica, reranking y descomposición de consultas suman llamadas a modelos.
  • Horas de GPU: endpoints de SageMaker AI y capacidad reservada cobran por tiempo, se usen o no.
  • Agentes: cada paso del ciclo es una llamada que reenvía todo el contexto acumulado.
  • Guardrails: las políticas de Bedrock Guardrails evalúan la entrada y la salida, y se cobran aparte.

Estimar por tokens y recortar el contexto

Costo por conversación ≈ llamadas × (tokens_entrada × precio_entrada
                                    + tokens_salida  × precio_salida)

Una pregunta típica a un asistente RAG:
  instrucciones del sistema       1 500 tokens   ← se repiten en cada llamada
  5 fragmentos recuperados        1 500 tokens
  historial de la conversación    2 000 tokens   ← crece con cada turno
  pregunta del usuario              100 tokens
  ─────────────────────────────────────────────
  entrada                        ~5 100 tokens
  salida (respuesta)               ~400 tokens

El 98 % de la entrada no la escribió el usuario: ahí está el ahorro.

No adivines: la respuesta de la Converse API trae los tokens de entrada y de salida de cada llamada. Regístralos desde el primer día. Con esos números, recorta:

  • Instrucciones más cortas: quita ejemplos que no cambian el resultado. Se pagan en cada llamada.
  • Menos fragmentos, mejores: recupera 20, reordena con un reranker y envía 4 en vez de 10.
  • Resume el historial: después de unos turnos, reemplaza la conversación vieja por un resumen.
  • Limita la salida: fija maxTokens (ver parámetros de inferencia), pide respuestas concisas o un JSON con campos definidos.

El modelo justo para cada pedido

No todas las preguntas necesitan el modelo más capaz. En un esquema escalonado (cascading), un modelo pequeño responde primero y solo se escala al grande cuando la tarea es difícil o la confianza es baja. Una variante es clasificar la pregunta al inicio y elegir el modelo según la categoría.

Amazon Bedrock Intelligent Prompt Routing hace ese enrutamiento por ti: eliges dos modelos de la misma familia y Bedrock predice, por cada prompt, cuál dará la respuesta adecuada al menor costo. Está optimizado para prompts en inglés, así que mide el resultado con tus preguntas en español antes de confiar en él. Si un modelo grande hace bien una tarea acotada, la destilación puede trasladar esa habilidad a uno chico.

Cómo compras la inferencia

CriterioBajo demandaPor lotesProvisioned Throughput
Cómo pagasPor token usadoPor token, con descuento frente a bajo demandaPor hora y por unidad de modelo, con o sin compromiso de 1 o 6 meses
LatenciaInteractivaMinutos a horas; resultados en S3Interactiva y predecible
Encaja conTráfico variable, prototipos, la mayoría de las appsResúmenes nocturnos, clasificación masiva, evaluacionesVolumen alto y estable, o modelos personalizados que lo exigen
Cuidado conCuotas de tokens y solicitudes por minutoNo sirve para usuarios esperandoPagas aunque no lo uses

Dentro de bajo demanda, Bedrock ofrece niveles de servicio por solicitud con el parámetro service_tier: Standard (el predeterminado), Priority (respuesta más rápida con sobreprecio), Flex (más barato para trabajos que toleran esperar) y Reserved (capacidad reservada por 1 o 3 meses, que desborda a Standard si la superas).

Caché: no cocinar dos veces

Prompt caching guarda el prefijo de un prompt que se repite (instrucciones, definiciones de herramientas, un documento largo) para que las siguientes llamadas no lo procesen de nuevo. Los tokens leídos de la caché cuestan menos y la respuesta llega antes. Marcas puntos de caché (cachePoint) después del contenido estable; el prefijo tiene un mínimo de tokens que depende del modelo y la caché dura unos minutos desde el último uso, o una hora en los modelos que lo permiten. Escribir en la caché puede costar algo más que una entrada normal: compensa cuando el prefijo se reutiliza varias veces.

La caché semántica es otra cosa y la construyes tú: guardas pares pregunta-respuesta con su embedding en un almacén con búsqueda vectorial (MemoryDB u OpenSearch, por ejemplo) y, si llega una pregunta muy parecida, devuelves la respuesta guardada sin llamar al modelo. Ahorra mucho en preguntas frecuentes; exige un umbral de similitud estricto y caducidad para no servir respuestas viejas. Más sobre almacenes rápidos en caché y bases especializadas.

Latencia, cuotas y costo por cliente

  • Streaming: con ConverseStream el usuario ve las primeras palabras enseguida. No baja el costo, pero cambia la experiencia.
  • Inferencia optimizada para latencia: algunos modelos aceptan performanceConfig con latencia «optimized» para responder más rápido. Revisa en la guía qué modelos y regiones la soportan.
  • Llamadas en paralelo: recuperar documentos y clasificar la intención al mismo tiempo, no una después de la otra.
  • Precalcular: resúmenes, etiquetas y embeddings se generan por lotes de noche, no cuando el usuario espera.
  • Cuotas: Bedrock limita tokens y solicitudes por minuto por modelo y región. Ante ThrottlingException, reintenta con espera exponencial, usa inferencia entre regiones (cross-Region inference) para repartir la carga, pide aumento de cuota o reserva capacidad.

Para saber qué función o qué cliente gasta, crea perfiles de inferencia de aplicación con etiquetas de asignación de costos (uno por función o por cliente grande) y usa las métricas de tokens de CloudWatch por modelo. Registra en tus logs el cliente y los tokens de cada llamada para repartir el gasto de los clientes chicos. Con eso armas presupuestos y alertas como en controlar costos.

Si hospedas modelos propios en SageMaker AI, las palancas son otras: inferencia serverless para tráfico intermitente, asíncrona (que puede bajar a cero instancias) para cargas pesadas sin urgencia, y transformación por lotes para trabajos offline. Elige la instancia con datos (Inference Recommender ayuda), considera chips de AWS como Inferentia, configura auto scaling, comparte instancias entre modelos con componentes de inferencia o endpoints multimodelo, entrena con instancias Spot administradas y cubre el uso estable con Machine Learning Savings Plans (SageMaker Savings Plans) de 1 o 3 años.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Cada noche, una empresa clasifica 2 millones de reseñas con un modelo de Bedrock. Nadie espera los resultados en tiempo real. ¿Qué opción baja más el costo?

  2. 2.Un asistente envía en cada llamada las mismas instrucciones de 3 000 tokens y las definiciones de 15 herramientas. ¿Qué reduce costo y latencia sin cambiar el comportamiento?

  3. 3.El 80 % de las preguntas de un chat de soporte son simples y el 20 % requiere razonamiento complejo. Hoy todo va al modelo más grande. ¿Qué cambio conviene?

  4. 4.Una app recibe errores ThrottlingException en horas pico, aunque el resto del día va bien. ¿Qué medida es la más adecuada primero?

  5. 5.Una empresa SaaS quiere saber cuánto gasta en Bedrock cada una de sus tres funciones de IA. ¿Qué hace?