Capítulo 8 — Optimizar rendimiento, serving y coste

Publicado el: 2026-04-21 Última actualización el: 2026-07-05 Versión: 1
Capítulo 8 — Optimizar rendimiento, serving y coste

Capítulo 8 — Optimizar rendimiento, serving y coste

Última entrega del recorrido capítulo por capítulo de LLM Primer V: Building Real-World LLM Applications. El capítulo que trata la economía LLM en producción como una disciplina en capas — la llamada más barata es la que nunca se hace, y cada capa por debajo es la que hace barata la siguiente llamada.


Por qué existe este capítulo

Toda propiedad de producción que merece la pena tener se paga en tokens, latencia o cómputo. La redundancia cuesta una segunda llamada al proveedor. La validación cuesta un paso por un clasificador. Los guardrails cuestan tokens extra en cada prompt. El trazado cuesta almacenamiento y ancho de banda de exportación. La revisión humana cuesta horas. Nada de esto es gratis, y para cuando el sistema está en producción la presión no es añadir capacidad sino sostener la capacidad que el equipo ya tiene, a un coste que el negocio siga pagando. El Capítulo 8 recorre las capas donde vive ese coste y las técnicas que lo reducen sin regresionar en calidad. El encuadre es deliberado: una técnica que rasca un porcentaje al coste añadiendo un porcentaje a la tasa de error no es una victoria, y la disciplina es gastar con intención en lo que mueve la calidad y fiabilidad visibles al usuario, y negarse a gastar en cualquier otra cosa.

En una línea: la llamada más barata es la que nunca se hace (caché semántica), la siguiente es la que se hace contra el modelo más pequeño que basta (router), y el suelo lo pone dentro del servidor de inferencia el KV cache, el continuous batching y la decodificación especulativa.

8.1 Caché semántica — la llamada que nunca ocurre

La caché semántica convierte una pregunta repetida en una respuesta almacenada incluso cuando el fraseo ha cambiado. El mecanismo embebe la petición entrante, busca vecinos cercanos en un bucket con ámbito por tenant y rol, y sirve la respuesta almacenada si un vecino está dentro de un umbral de similitud y dentro de una ventana de frescura. Hecho bien, elimina una llamada entera al modelo del camino de la petición. Hecho mal, sirve la respuesta del tenant equivocado al usuario actual, o la respuesta desde una política que cambió anoche. La corrección se apoya en claves compuestas — tenant más rol más modelo más versión de prompt, no solo el embedding de la consulta — y en barridos periódicos de refresco que atrapan la deriva. La tasa de acierto es el objetivo equivocado por sí sola; la tasa de acierto ponderada por coste sobre respuestas verificadas correctas es la buena, porque una tasa de acierto alta en las peticiones baratas y baja en las caras aporta menos valor que la inversa.

8.2 Rate limiting y enrutado dinámico de modelo

Los límites por petición son la forma equivocada para el tráfico LLM porque el coste por petición varía en dos órdenes de magnitud a lo largo de la flota. Los cubos de tokens y los presupuestos en dólares con reservar-y-liquidar en dos fases reemplazan al conteo por petición; una jerarquía de presupuesto en capas — usuario, tenant, aplicación, global — pone tope al radio de explosión en cada nivel. El enrutado elige entonces el modelo más pequeño que basta para cada petición. Un clasificador — heurístico para los casos fáciles, una llamada LLM barata para los más duros — etiqueta la petición y la despacha a una flota escalonada por coste con una cadena de fallback validada: primero SLM, gama media al fallar la validación o con confianza baja, frontera en un fallback ulterior, default determinista al fondo. El router en sí trae implicaciones de confianza — es una superficie de decisión que un atacante puede intentar manipular — y pertenece dentro del sobre trazado, evaluado y guardado que los capítulos anteriores construyeron.

8.3 Dentro del servidor de inferencia

Por debajo de la aplicación, el servidor de inferencia es donde vive el último orden de magnitud de ahorro de coste. PagedAttention trata el KV cache como memoria virtual, para que un lote mixto de peticiones largas y cortas ya no gaste memoria contigua en la más larga. El continuous batching mantiene la GPU ocupada a lo largo de peticiones de longitud heterogénea admitiendo peticiones nuevas en un lote en curso en vez de esperar a que todas acaben. La decodificación especulativa usa un pequeño modelo borrador para adivinar tokens que el modelo objetivo verifica en paralelo, multiplicando el throughput efectivo en los tokens que el borrador acertó. El prefix caching guarda el estado KV de un prompt estático compartido entre usuarios, para que el system prompt se pague una vez y se reutilice. La cuantización baja la precisión de los pesos sin afectar de forma significativa la calidad en la mayoría de las tareas. El serving con LoRA deja que un modelo base sirva muchas variantes fine-tuneadas a un coste casi igual al del base. La destilación reduce el modelo mismo. Estas optimizaciones se componen unas sobre otras, y su efecto acumulativo es lo que ha hecho financieramente viables en 2026 los despliegues soberanos auto-alojados.

Vale la pena recordar: la caída de un orden de magnitud en los precios LLM a capacidad constante no es magia. Es el efecto acumulativo de estas optimizaciones en el proveedor, y el caching y enrutado del lado de la aplicación componen los ahorros por otro factor de dos o tres cuando se combinan correctamente.

Lo que cierra el Capítulo 8 y lo que viene

El Capítulo 8 cierra el Volumen V. La ingeniería de una única aplicación que el libro ha construido — el envoltorio determinista, la llamada al modelo, el pipeline de recuperación, el bucle del agente, la suite de evaluación, la capa de trazado, la postura de seguridad, la economía del serving — es la unidad de composición para lo que sigue. El Volumen VI, Scaling AI Systems, toma esa unidad como dada y hace la siguiente tanda de preguntas: qué ocurre cuando una única organización corre cientos de estos sistemas sobre un clúster de inferencia compartido, cómo un motor de políticas de flota los autoriza cruzados, cómo cambia la planificación de capacidad cuando la carga es a ráfagas y el hardware subyacente es escaso, y cómo las optimizaciones del servidor de inferencia esbozadas en este capítulo se convierten en ingeniería profunda cuando son la superficie que soporta el peso. El Volumen VI entra en la mecánica; el Volumen V estableció el vocabulario que la mecánica usará.


El Volumen V acaba aquí. El siguiente volumen de la serie, LLM Primer VI — Scaling AI Systems, recoge la ingeniería de inferencia e infraestructura que el Capítulo 8 solo esboza, y trata la unidad con forma de aplicación construida en este volumen como la primitiva para la composición a escala de flota.


SHO
SHO
CTO y Fundador de RECEIPTROLLER. Enfocado en datos, impulsado por la innovación, siempre curioso.