Read in English · Lire en français · Auf Deutsch lesen
Sección 12.7 de 12.8 · Avanzado · 26 min de lectura
Costo, latencia y LLMOps
Videolección
5 min · narrado en inglés, con subtítulosSolo escuchar (audio)
Leer la transcripción
Una función que funciona en una demo puede seguir siendo demasiado lenta o demasiado cara en producción. Esta lección trata qué determina el costo y la latencia de las llamadas a modelos, y cómo operarlas.
Usar un modelo alojado es como contratar a un intérprete que cobra por palabra. Pagas una pequeña tarifa por cada palabra que le lees. Y una tarifa mayor por cada palabra que te devuelve. Si repites toda la conversación cada vez que hablas, la factura sube rápidamente. Y la espera tiene dos partes: cuánto tarda el intérprete en empezar a hablar y lo rápido que habla una vez que empieza.
Los modelos alojados cobran por token. Los tokens de entrada son todo lo que se envía: el prompt del sistema, las definiciones de herramientas, los documentos recuperados, el historial y el mensaje nuevo. Los tokens de salida suelen costar varias veces más, porque se generan de uno en uno. Los modelos de razonamiento también facturan como salida su razonamiento oculto. En un chat, todo el historial se vuelve a enviar en cada turno, así que la entrada total crece aproximadamente con el cuadrado de la longitud de la conversación. En la mayoría de los asistentes, la entrada domina la factura. Así que expresa el costo por unidad de valor de negocio, por ejemplo por ticket resuelto, y compáralo con la alternativa, como el costo de gestión de un agente humano.
¿Adónde va el tiempo? Primero, tu propio trabajo, como los guardrails y la recuperación: aquí, unos cero punto cuatro segundos. Después, la espera en cola en el proveedor y el prefill, unos cero punto seis. Juntos forman el tiempo hasta el primer token: alrededor de un segundo. Luego viene el decode: doscientos cincuenta tokens de salida a ochenta por segundo, unos tres punto uno segundos. La longitud de la salida suele ser la mayor palanca sobre la latencia. El streaming no hace que termine antes. Pero las primeras palabras aparecen tras un segundo aproximadamente, en lugar de la respuesta completa tras unos cuatro, y los usuarios juzgan la velocidad sobre todo por cuándo empieza a ocurrir algo. Y cada llamada a una herramienta repite el ciclo, con otro prefill y otro decode.
La caché de prompts reutiliza el trabajo del proveedor sobre un prefijo de prompt idéntico. La entrada en caché se factura con un fuerte descuento, y su prefill se omite. Es la optimización de costos más eficaz para asistentes con instrucciones largas y estables. Pero el prefijo debe ser idéntico, byte a byte. Así que pon primero el prompt del sistema y las definiciones de herramientas, y al final el contenido de cada solicitud. Una marca de tiempo al principio anula la caché sin que nadie lo note. La caché semántica reutiliza respuestas completas para preguntas con un significado similar. Conviene para preguntas repetitivas, como el horario de reparto. Pero preguntas similares pueden necesitar respuestas distintas. Y nada personal debe servirse nunca desde una caché compartida.
Calculemos el costo del asistente de soporte. Una conversación típica tiene cuatro turnos. Cada llamada envía un prefijo estático de tres mil tokens, el contexto recuperado y el historial, que va creciendo: diecinueve mil setecientos tokens de entrada en total, y ochocientos de salida. En un modelo grande sin caché, con los precios ilustrativos de la sección, eso son siete punto uno centavos por conversación. Con uno punto dos millones de conversaciones al mes, unos ochenta y cinco mil trescientos dólares. El prefijo estático es idéntico en todas las llamadas, así que la caché de prompts acierta casi siempre. El costo baja a tres punto nueve centavos, un cuarenta y seis por ciento menos. Añade una cascada: el setenta por ciento de las conversaciones se quedan en un modelo pequeño, y el treinta por ciento escalan. El costo esperado es de alrededor de uno punto cuatro centavos, un ochenta y uno por ciento por debajo de la referencia. Pero el primer turno de una conversación escalada paga ambos intentos: unos cinco punto seis segundos, más lento que la referencia. La media mejora, mientras que el percentil noventa y cinco puede empeorar. Y el ahorro solo se mantiene si el modelo pequeño supera las evaluaciones y el escalado se mantiene cerca del treinta por ciento. Con un sesenta por ciento, el costo sube a unos dos punto cinco centavos.
LLMOps es la práctica de construir y operar aplicaciones sobre modelos de lenguaje grandes, o LLM. Su primera regla: todo lo que da forma al comportamiento se versiona, incluidos los prompts, los modelos fijados a versiones con fecha, la configuración de recuperación y los conjuntos de evaluación. Segundo, traza cada llamada al modelo, con el modelo, la versión del prompt, los tokens, la latencia y el costo, para que una respuesta lenta o errónea pueda seguirse paso a paso. Registrar el texto de los prompts y de las respuestas captura datos personales, así que necesita controles de conservación y de acceso. Tercero, monitoriza el costo como la latencia. Fija presupuestos y alertas sobre el costo por conversación, y vigila las señales de alarma, como un cambio de prompt que duplicó los tokens de entrada o un agente atascado en un bucle de herramientas.
La sección completa también trata el streaming, el procesamiento por lotes, las escaleras de alternativas y un ejemplo de trazado. A continuación, en la Sección doce punto ocho, veremos la gobernanza de datos, la IA responsable y el Reglamento de IA de la UE. Nos vemos allí.
Lo que necesitas saber
- Las llamadas a modelos se facturan por token de entrada y por token de salida (más caro); el historial del chat, las definiciones de herramientas, la recuperación y los bucles de agentes impulsan el volumen de entrada, por lo que el costo por conversación crece más deprisa que el número de turnos.
- La latencia es el tiempo hasta el primer token (preprocesamiento, encolamiento, prefill) más los tokens de salida divididos entre la velocidad de generación; la longitud de la salida y los viajes de ida y vuelta de las llamadas a herramientas son las palancas más grandes, y los percentiles importan más que las medias.
- El streaming mejora la latencia percibida, pero complica los proxies, los guardrails de salida, las salidas estructuradas y la facturación.
- La caché de prompts abarata y acelera los prefijos idénticos repetidos, así que pon primero el contenido estático; la caché semántica reutiliza respuestas a preguntas similares y no es segura para respuestas personales o que dependen de las políticas.
- Las interfaces por lotes (batch) sacrifican latencia a cambio de grandes descuentos en el trabajo que puede esperar; las cascadas y el enrutamiento envían la mayoría de las solicitudes a modelos pequeños, pero pueden empeorar la latencia de cola.
- Las cuotas, los límites de tasa, los timeouts, el backoff y las escaleras de alternativas evaluadas, con un presupuesto de tiempo total, mantienen las funciones de IA disponibles y asequibles.
- LLMOps versiona conjuntamente los prompts, los modelos, las herramientas, la configuración de recuperación y los conjuntos de evaluación, traza cada llamada (con las convenciones de IA generativa de OpenTelemetry, todavía en estado Development en octubre de 2026) y monitoriza el costo por unidad de trabajo.
Economía de los tokens
Los modelos alojados se cobran por token, normalmente con precios por millón de tokens y con precios distintos para los tokens de entrada (todo lo que se envía: el prompt del sistema, las definiciones de herramientas, los documentos recuperados, el historial de la conversación y el mensaje del usuario) y los tokens de salida (todo lo que se genera). Los tokens de salida suelen costar varias veces más que los de entrada, porque la entrada se procesa en paralelo en una sola pasada (el prefill), mientras que la salida se genera token a token, y cada uno necesita su propia pasada por el modelo (el decode). Los modelos de razonamiento (sección 12.1) también facturan como salida sus tokens internos de razonamiento, aunque no se muestren, de modo que la misma pregunta puede costar cantidades muy distintas según cuánto tiempo piense el modelo.
El costo de una llamada es simplemente tokens de entrada × precio de entrada + tokens de salida × precio de salida. Las sorpresas arquitectónicas están en lo que determina el número de tokens. En un chat, normalmente se vuelve a enviar todo el historial en cada turno, así que la entrada crece con cada turno y el total de una conversación crece aproximadamente con el cuadrado de su longitud. Las definiciones de herramientas y un prompt del sistema largo se pagan en cada llamada. La recuperación añade miles de tokens por pregunta, y los agentes que recorren herramientas en bucle (sección 12.4) hacen varias llamadas por cada solicitud del usuario. En la mayoría de los asistentes en producción, los tokens de entrada dominan la factura aunque cada uno sea más barato.
Autoalojar un modelo de pesos abiertos cambia la forma del costo en lugar de eliminarlo: pagas el tiempo de GPU tanto si se usa como si no, así que el costo por token depende de la utilización y de cuántas solicitudes puede procesar el servidor a la vez. Los hábitos de FinOps de la sección 10.8 se aplican directamente: expresa el costo por unidad de valor de negocio (por conversación, por ticket resuelto, por documento procesado), compáralo con la alternativa (el costo de gestión de un agente humano) y asígnalo a funciones y equipos. Los precios de esta sección son cifras ilustrativas elegidas para facilitar la aritmética, no precios de lista actuales; los precios reales varían entre proveedores y han bajado mucho con el tiempo.
Niveles de precios ilustrativos usados en esta sección
| Nivel (ilustrativo) | Entrada, por millón de tokens | Entrada en caché, por millón | Salida, por millón de tokens | Uso típico |
|---|---|---|---|---|
| Modelo pequeño | $0.20 | $0.02 | $0.80 | Enrutamiento, clasificación, extracción, respuestas sencillas |
| Modelo mediano | $1.00 | $0.10 | $4.00 | La mayoría de los turnos del asistente; generación en las evaluaciones |
| Modelo grande | $3.00 | $0.30 | $15.00 | Razonamiento difícil, escalados, actuar como juez |
Latencia: tiempo hasta el primer token y velocidad de generación
La latencia de una respuesta del modelo tiene dos partes principales. El tiempo hasta el primer token (TTFT) abarca todo lo que ocurre antes de que llegue el primer token de salida: tu propio preprocesamiento (guardrails de entrada, recuperación, re-ranking), la red, la espera en cola en el proveedor y el prefill, que crece con el número de tokens de entrada. Después, la salida llega a la velocidad de generación del modelo, medida en tokens de salida por segundo, así que el tiempo total es aproximadamente TTFT + tokens de salida ÷ tokens por segundo. Los modelos de razonamiento añaden una fase de pensamiento antes del primer token visible, que puede durar segundos o minutos.
De ello se derivan dos consecuencias. Primero, la longitud de la salida suele ser la mayor palanca sobre la latencia: reducir a la mitad una respuesta de 400 tokens ahorra más tiempo que cualquier optimización de red. Pedir respuestas concisas, fijar una longitud máxima de salida y usar salidas estructuradas en lugar de prosa ayudan. Segundo, cada llamada a una herramienta es un viaje de ida y vuelta adicional completo, con su propio prefill y su propio decode, así que un agente que hace cuatro llamadas a herramientas antes de responder es cuatro veces más lento que una sola llamada, sea cual sea la velocidad del modelo. Especifica y monitoriza la latencia como percentiles, no como medias (sección 2.4): el TTFT p95 y el tiempo total p95 por turno, porque la espera en cola de los proveedores de modelos hace que la cola de la distribución sea mucho más larga que la mediana en los momentos de mucha carga.
Adónde va el tiempo
Streaming
El streaming envía los tokens al cliente a medida que se generan, normalmente como server-sent events sobre HTTP. No hace que la respuesta termine antes, pero los usuarios juzgan la capacidad de respuesta sobre todo por el momento en que algo empieza a ocurrir, así que una respuesta de 4 segundos que empieza tras 1 segundo parece mucho más rápida que una que aparece de golpe. El streaming tiene costos arquitectónicos. Cada proxy, gateway y balanceador de carga del camino debe dejar pasar el flujo sin almacenarlo en búfer y mantener abiertas conexiones de larga duración. Los guardrails de salida (sección 12.6) ya no pueden inspeccionar la respuesta completa antes de que el usuario la vea, así que o bien comprueban los fragmentos a medida que pasan (y puede que tengan que retirar texto ya mostrado), o bien retienen el flujo una frase aproximadamente. Las salidas estructuradas que desencadenan acciones no pueden ejecutarse hasta que estén completas y validadas, así que envía la prosa al usuario en streaming y deja las acciones para el final. La facturación, el logging y el trazado deben poder gestionar flujos que el cliente abandona a medias.
Caché de prompts y caché semántica
La caché de prompts (prompt caching, también llamada prefix caching o context caching) reutiliza el estado interno calculado por el proveedor para un prefijo de prompt idéntico que se procesó recientemente. Los tokens de entrada en caché se facturan con un fuerte descuento (algunos proveedores cobran alrededor de una décima parte del precio normal de entrada, otros aplican un descuento menor, y algunos cobran un recargo por escribir en la caché) y se omite el prefill de esa parte, lo que también reduce el TTFT. Es la optimización de costos más eficaz para asistentes con instrucciones largas y estables. Solo funciona si el prefijo es idéntico byte a byte, así que la disposición del prompt se convierte en una inquietud arquitectónica: pon primero el contenido estático (prompt del sistema, definiciones de herramientas, políticas, ejemplos few-shot), después el contenido que cambia lentamente (el historial de la conversación) y al final el contenido de cada solicitud (los documentos recuperados, el mensaje nuevo). Una marca de tiempo o el nombre del usuario al principio del prompt del sistema anula la caché sin que nadie lo note. Los servidores de inferencia autoalojados, como vLLM, ofrecen la misma técnica, conocida como automatic prefix caching (caché automática de prefijos).
La caché semántica es diferente: almacena respuestas completas indexadas por el significado de la pregunta, mediante embeddings, y devuelve una respuesta almacenada cuando una pregunta nueva es lo bastante similar, sin llegar a llamar al modelo. Puede ahorrar mucho en preguntas repetitivas y no personales (¿cuál es su horario de reparto?
), pero es más arriesgada de lo que parece. Preguntas similares pueden necesitar respuestas distintas (¿puedo cancelar mi pedido?
y cancela mi pedido
), el umbral de similitud equilibra la tasa de aciertos frente a las respuestas erróneas, y las reglas de la sección 7.6 siguen aplicándose: la clave debe incluir todo lo que cambia la respuesta, las respuestas en caché quedan obsoletas cuando cambian las políticas y nada personal debe servirse nunca desde una caché compartida. Mide la tasa de falsos aciertos en una muestra etiquetada antes de confiar en ella. Una simple caché de coincidencia exacta para llamadas deterministas, como la clasificación a temperatura 0, es más sencilla y segura.
Procesamiento por lotes
No todas las llamadas a modelos necesitan una respuesta en segundos. El resumen nocturno, el etiquetado de una acumulación de tickets pendientes, la generación de embeddings para una reindexación y la ejecución de baterías de evaluación pueden esperar. La mayoría de los grandes proveedores ofrecen interfaces por lotes (batch) que aceptan un archivo de solicitudes y devuelven los resultados de forma asíncrona dentro de un plazo indicado (normalmente de hasta 24 horas) con un descuento considerable, a menudo de alrededor de la mitad del precio normal, y con límites de tasa separados y más amplios. Desde el punto de vista arquitectónico, se trata del procesamiento asíncrono basado en colas de la sección 9.3: diseña el trabajo para que sea idempotente, haz el seguimiento del estado de cada solicitud y gestiona los fallos parciales.
En los modelos autoalojados, el procesamiento por lotes ocurre dentro del servidor de inferencia: el batching continuo (continuous batching) intercala los pasos de decode de muchas solicitudes concurrentes en una sola GPU, lo que multiplica el rendimiento (throughput). El compromiso es el conocido entre throughput y latencia: lotes más grandes significan tokens más baratos pero respuestas individuales más lentas, así que el tráfico interactivo y el offline suelen servirse desde grupos (pools) separados con configuraciones distintas.
Selección de modelos y cascadas para reducir costos
La mayor decisión de costos es qué modelo gestiona cada tarea, y la respuesta suele ser el más pequeño que supera la batería de evaluación de esa tarea
(sección 12.5). Los precios de los modelos pequeños y grandes suelen diferir en un factor de diez o más, mientras que muchas tareas (clasificar la intención, extraer un número de pedido, responder una pregunta sobre el estado a partir de datos estructurados) no necesitan un modelo grande. El enrutamiento envía cada solicitud a un modelo adecuado según una clasificación barata; una cascada de modelos prueba primero con un modelo pequeño y escala a uno más grande cuando la salida no supera la validación o el modelo pequeño indica poca confianza (sección 12.2). FrugalGPT (Chen, Zaharia y Zou, 2023) mostró cascadas que igualaban la calidad del modelo más potente por una fracción del costo en sus benchmarks.
El costo esperado de una cascada de dos pasos es el costo del modelo pequeño más la tasa de escalado multiplicada por el costo del modelo grande. Por tanto, las cascadas solo compensan cuando la mayoría de las solicitudes se quedan en el modelo pequeño, y tienen una trampa de latencia: las solicitudes escaladas pagan ambos intentos, así que la cola se vuelve más lenta aunque la media mejore. El enrutamiento previo evita el doble intento, pero depende de la precisión del enrutador. Otras reducciones de tokens suelen ser aún más baratas: recorta el prompt del sistema, recupera menos fragmentos pero mejores, resume los turnos más antiguos de la conversación, limita la longitud de la salida, reduce el esfuerzo de razonamiento de los modelos de razonamiento en las tareas fáciles y, para una única tarea de muy alto volumen, considera hacer fine-tuning o destilar un modelo pequeño.
Cuotas, límites de tasa y escaleras de alternativas
Los proveedores de modelos imponen límites de tasa: solicitudes por minuto, tokens de entrada y de salida por minuto, solicitudes concurrentes y, a veces, topes diarios, señalados mediante respuestas HTTP 429, normalmente con una cabecera Retry-After. Tu propio gateway también debe imponer cuotas, por usuario, por inquilino (tenant) y por función, tanto para repartir la capacidad de forma justa como para defenderse del riesgo de consumo ilimitado de la sección 12.6. Los patrones de resiliencia de la sección 9.4 siguen siendo válidos: timeouts en cada llamada, reintentos con backoff exponencial y jitter solo para los errores reintentables, circuit breakers, bulkheads que impiden que una función ruidosa agote la cuota compartida, y degradación elegante (una respuesta predefinida y un enlace al soporte humano son mejores que un indicador de carga girando sin fin).
Una escalera de alternativas (fallback ladder) enumera modelos y proveedores alternativos que se prueban en orden cuando la primera opción falla, alcanza su límite de tasa o devuelve un resultado no válido. Las buenas escaleras tienen un presupuesto de tiempo total para que el usuario no tenga que esperar a que se recorran todos los peldaños, dejan enfriar un peldaño durante el tiempo que pida el proveedor tras un 429 en lugar de bombardearlo, tratan una respuesta imposible de analizar o que no cumple el esquema como un fallo que pasa al siguiente peldaño, y mantienen los prompts portables entre modelos. Cada peldaño debe superar la batería de evaluación: un modelo alternativo sin probar es una caída silenciosa de la calidad justo cuando el sistema está bajo presión. Las propias funciones de IA de este curso funcionan así. ArchitectBot y el corrector de las pruebas recorren una escalera de modelos de pesos abiertos alojados, con un timeout por modelo y un presupuesto de tiempo global, pausan un modelo tras una respuesta de límite de tasa durante el tiempo que pida el proveedor y, como último recurso, recurren a un segundo proveedor; las búsquedas web tienen topes diarios y mensuales, y los visitantes tienen límites de tasa.
LLMOps: versionado, trazado y monitorización de costos
LLMOps es el conjunto de prácticas para construir, lanzar y operar aplicaciones basadas en modelos de lenguaje grandes, que adapta MLOps y DevOps a componentes cuyo comportamiento lo definen los prompts, los modelos y los datos tanto como el código. Su primera regla es que todo lo que da forma al comportamiento es un artefacto versionado: las plantillas de prompts (guardadas en el repositorio o en un registro de prompts con identificadores de versión inmutables), los identificadores de modelo fijados a versiones con fecha en lugar de alias flotantes, los esquemas de las herramientas, la configuración de recuperación, el modelo de embeddings y la versión del índice (cambiar el modelo de embeddings significa volver a calcular los embeddings de todo el corpus), las reglas de los guardrails y los conjuntos de datos de evaluación. Una versión es una combinación concreta de todo esto, desplegada mediante el mismo pipeline, las mismas feature flags y los mismos canarios que el código (sección 10.5), con sus resultados de evaluación adjuntos.
La segunda regla es que se traza cada llamada al modelo. Cada llamada se convierte en un span de la traza distribuida de la solicitud del usuario (sección 9.6) que registra el modelo, la versión del prompt, el número de tokens de entrada y de salida, la latencia, el TTFT, el costo y el resultado, con spans hijos para la recuperación y las llamadas a herramientas, de modo que una respuesta lenta o errónea pueda seguirse paso a paso. Las convenciones semánticas de OpenTelemetry para IA generativa estandarizan los nombres, como gen_ai.operation.name, gen_ai.provider.name, gen_ai.request.model y gen_ai.usage.input_tokens, junto con métricas de la duración de las operaciones y del uso de tokens. A octubre de 2026, estas convenciones siguen en estado Development y se han trasladado recientemente a su propio repositorio; los nombres han cambiado entre versiones (gen_ai.system pasó a ser gen_ai.provider.name, por ejemplo, y las métricas de tokens se están reorganizando), así que fija la versión que emite tu instrumentación. Registrar el texto de los prompts y de las respuestas generadas (completions) es opcional (opt-in) en las convenciones, y con razón: captura datos personales, así que necesita los controles de conservación y de acceso de la sección 12.8.
La tercera regla es que el costo se monitoriza como la latencia. Atribuye el gasto en tokens por función, inquilino, modelo y versión del prompt; fija presupuestos con alertas tanto sobre el gasto absoluto como sobre el costo unitario (costo por conversación); y vigila las señales de problemas: un cambio de prompt que duplicó los tokens de entrada, un agente atascado en un bucle de herramientas, una tasa de aciertos de caché que se desplomó tras un despliegue o una cuenta que genera una décima parte de todo el tráfico. Por último, la evaluación se ejecuta en el pipeline (sección 12.5), de modo que el costo, la latencia y la calidad se juzguen juntos en cada lanzamiento.
from opentelemetry import trace
tracer = trace.get_tracer("support-assistant")
def ask_model(client, messages, model="medium-2026-05", prompt_version="refund-v14"):
with tracer.start_as_current_span(f"chat {model}") as span:
span.set_attribute("gen_ai.operation.name", "chat")
span.set_attribute("gen_ai.provider.name", "example-provider")
span.set_attribute("gen_ai.request.model", model)
span.set_attribute("app.prompt.version", prompt_version) # our own attribute
reply = client.chat(model=model, messages=messages, max_tokens=300)
span.set_attribute("gen_ai.usage.input_tokens", reply.usage.input_tokens)
span.set_attribute("gen_ai.usage.output_tokens", reply.usage.output_tokens)
return replyEjemplo práctico
Ejemplo práctico: costo y latencia por conversación del asistente de soporte
Una conversación típica tiene 4 turnos. Cada llamada envía un prefijo estático de 3000 tokens (prompt del sistema, definiciones de herramientas, extractos de las políticas), 1500 tokens de contexto recuperado, el historial hasta el momento (250 tokens por cada turno anterior) y un mensaje de 50 tokens, y genera 200 tokens. Volumen: unas 40 000 conversaciones al día (1.2 millones al mes), como en la sección 12.2. Los precios son los niveles ilustrativos anteriores.
| Tokens por conversación | Entrada por turno: 4550, 4800, 5050 y 5300 tokens (el historial crece) = 19 700 tokens de entrada; salida 4 × 200 = 800 tokens. |
|---|---|
| Referencia: modelo grande, sin caché | 19 700 × $3/M + 800 × $15/M = $0.059 + $0.012 = 7.1 centavos; × 1.2 millones de conversaciones al mes = unos $85 300. |
| Latencia por turno (referencia) | TTFT de unos 0.9 s + 200 tokens a 60 tokens/s (3.3 s) = unos 4.2 s; con streaming, primeras palabras tras 0.9 s. |
| Paso 1: caché de prompts | El prefijo de 3000 tokens es idéntico en todas las conversaciones, así que acierta en la caché en casi todas las llamadas: 12 000 tokens a $0.30/M + 7700 a $3/M + salida $0.012 = 3.9 centavos (un 46% menos), unos $46 400 al mes. El TTFT baja a unos 0.6 s. |
| Paso 2: cascada | Un pequeño enrutador clasifica cada turno (400 tokens de entrada, 5 de salida: 0.03 centavos por conversación). El 70% de las conversaciones las gestiona el modelo pequeño con caché (0.24 centavos); el 30% escala tras un turno fallido del modelo pequeño (0.05 centavos desperdiciados) y continúa en el modelo grande (3.9 centavos). |
| Costo esperado con ambos | 0.7 × 0.24 + 0.3 × (3.9 + 0.05) + 0.03 ≈ 1.4 centavos por conversación (un 81% menos), unos $16 600 al mes. |
| Latencia con ambos | Turnos del modelo pequeño: unos 0.3 s + 200 tokens a 150 tokens/s = 1.6 s. Pero el primer turno de una conversación escalada paga ambos intentos: 1.6 + 3.9 = unos 5.6 s, más lento que la referencia. La media mejora, mientras que el p95 puede empeorar. |
| Condiciones | El ahorro solo se mantiene si el modelo pequeño supera la batería de evaluación en el 70% que gestiona y la tasa de escalado se mantiene cerca del 30%. Con un 60% de escalado, el costo esperado sube a unos 2.5 centavos. |
Guardar en caché un prefijo estático largo es casi gratis y reduce la factura aproximadamente a la mitad; depende de la disposición del prompt, no de ningún cambio de comportamiento.
Las cascadas son las que más reducen el costo, pero a cambio de latencia de cola y de riesgo para la calidad, así que necesitan evaluación por segmento y monitorización de la tasa de escalado.
Comprueba lo que has entendido
¿Por qué el costo de una conversación de chat crece más que linealmente con el número de turnos?
Porque normalmente se vuelve a enviar todo el historial como entrada en cada turno, así que la entrada de cada turno es mayor que la del anterior y el total crece aproximadamente con el cuadrado del número de turnos.
Un modelo tiene un TTFT de 0.5 s y genera 50 tokens por segundo. ¿Cuánto tarda aproximadamente una respuesta de 300 tokens, y cuándo ve las primeras palabras un usuario con streaming?
Unos 0.5 + 300/50 = 6.5 segundos en total; con streaming, las primeras palabras aparecen tras unos 0.5 segundos.
¿Por qué poner la fecha actual al principio del prompt del sistema puede aumentar los costos?
La caché de prompts solo encuentra coincidencias con un prefijo idéntico; un valor que cambia al principio hace que cada prompt sea distinto, así que nada de lo que viene después puede servirse desde la caché.
¿Qué debe cumplir cada modelo de una escalera de alternativas?
Debe haber superado la misma batería de evaluación que el modelo principal para las tareas que pueda atender; de lo contrario, el failover reduce la calidad sin que se note.
Fuentes y lecturas recomendadas
¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.
Pregunta: “Nuestro asistente de soporte cuesta demasiado por conversación. ¿Dónde debería mirar primero y cuáles son los riesgos de poner un modelo más barato delante del caro?”