Setup. Un LLM de juguete con vocabulario de 12 tokens de negocio (churn telco: cliente, contrato, precio, cancela, renueva…). Para cada prefijo he fijado el vector de logits z = WOht que produciría el Transformer; el JS aplica el softmax de la Ec. (1) de verdad y pinta arriba la distribución resultante. Abajo, las frecuencias con que de verdad han salido los tokens al pulsar "muestrear" (el dado usa mulberry32, reproducible).
Juega. Un LLM real hace exactamente esto con |𝒱| ≈ 50 000 subwords y un ht de miles de dimensiones, una vez por token generado: una respuesta de 500 tokens son 500 tiradas de este dado, cada una condicionada a todo lo anterior.
Mensaje. "Predecir el próximo token" suena humilde, pero obliga al modelo a aprender gramática, hechos y razonamiento: todo lo que ayude a acertar la siguiente palabra de internet. La "creatividad" que verás en las dos slides siguientes es solo cómo de cargado está el dado.
Términos. token: unidad mínima de texto (≈ trozo de palabra). logit: puntuación real previa al softmax, una por token. softmax: exponenciar y normalizar; convierte puntuaciones en probabilidades. x1:t: el prefijo, todo el texto visible hasta el paso t.
Setup. Mismos 12 tokens y mismos logits que la slide anterior (prefijo "Si subimos el precio, la demanda…"). El slider de τ alimenta la Ec. (3) tal cual: el JS divide los logits por τ, aplica softmax y pinta las barras; la curva de abajo es la entropía H(τ) calculada en una rejilla de temperaturas, con el punto dorado en tu τ actual.
Juega. El botón "generar 12 tokens" tira el dado 12 veces con la misma semilla (mulberry32): así la única diferencia entre corridas es τ, no el azar. Es el experimento limpio que en producción nunca ves.
Mensaje. En producción: extracción de campos de una factura τ = 0 (greedy, reproducible); asistente corporativo τ ≈ 0.2–0.3; redacción τ ≈ 0.7; brainstorming de campañas τ ≈ 0.9–1.1. Cualquier respuesta crítica de negocio: τ ≤ 0.3.
Términos. greedy: elegir siempre el token más probable (τ→0). entropía H: incertidumbre media del dado, en bits. perplejidad: 2H, nº efectivo de opciones. semilla: estado inicial del generador pseudoaleatorio; fijarla hace el muestreo reproducible.
Setup. Mismos logits del prefijo de demanda. El pipeline del JS es el real de los APIs: logits → dividir por τ → softmax → filtro top-k → filtro top-p sobre lo que quede → renormalizar. Arriba: las barras grises tenues son la probabilidad antes del filtro en los tokens descartados (con aspa); las doradas, la probabilidad renormalizada de los supervivientes. Abajo: la probabilidad acumulada ordenada de mayor a menor, con la línea de corte de tu p; es la definición visual del núcleo.
Juega. El lector te da los dos recuentos (cuántos pasan el top-k, cuántos el top-p), la masa que retenía el núcleo antes de renormalizar y la comprobación Σp̃ = 1.000 tras renormalizar.
Mensaje. Para un chatbot bancario tipo BBVA querrás τ ≈ 0.3 y top-p ≈ 0.9: respuestas estables que jamás muestrean la cola; para brainstorming de campañas, τ ≈ 1 y top-p alto. Son dos mandos distintos: forma del dado (τ) y qué caras se pegan con cinta (k, p).
Términos. truncar: poner probabilidad 0 fuera del conjunto elegido. renormalizar: dividir por la masa superviviente para volver a sumar 1. núcleo (nucleus): el menor conjunto de tokens que acumula masa ≥ p. p(i): probabilidades ordenadas de mayor a menor.
Setup. Un "LLM" mínimo de verdad: 13 estados (palabras o sintagmas de negocio: el cliente, la demanda, renueva, cancela… y FIN) y una matriz de logits de bigramas Z[i][j] = puntuación de pasar de la palabra i a la j. En cada paso el JS aplica el pipeline completo de las slides anteriores (dividir por τ, softmax, top-k, top-p, renormalizar, muestrear con mulberry32) a la fila del estado actual, concatena y repite hasta FIN (máx. 9 tokens). Arriba: la matriz de transición a tu τ como heatmap (blanco→dorado→sepia = probabilidad creciente). Abajo: para la última frase generada, la probabilidad que tenía el token elegido en cada paso.
Lee así. El heatmap es el "modelo"; las frases son muestras de la regla de la cadena. La probabilidad de la frase (producto de las barras de abajo) sale en el lector junto a su log-probabilidad.
Mensaje. Esto, escalado de 13 estados a 50 000 subwords y de bigramas a contextos de 200K tokens, ES un LLM generando la respuesta de tu chatbot: una cadena de dados condicionados. Spotify generando descripciones de playlists o Inditex redactando fichas de producto ajustan exactamente estos tres mandos.
Términos. autorregresivo: cada salida se realimenta como entrada. bigrama: par (palabra actual, palabra siguiente); aquí el contexto es solo la última palabra, en un LLM real es todo x1:t. frase modal: la de máxima probabilidad, la que produce τ→0.
Setup. El caso: un asistente que lee emails comerciales de clientes (churn telco) y redacta la respuesta. El slider de longitud parte de un email real de ~2.600 caracteres; el JS estima Nin por las dos reglas de pulgar (caracteres/4 y palabras×1.3, suponiendo ~5.8 caracteres por palabra con espacios) y aplica la Ec. (4) con tus precios. Arriba: desglose del coste de una llamada (leer vs generar). Abajo: coste mensual frente a peticiones/día en escala log-log, con tu punto en dorado y la referencia del call center humano (3 $/consulta) en gris.
Lee así. El slider de R es logarítmico (10 a 100.000 peticiones/día). El lector da Nin por ambas reglas, el coste por llamada desglosado y el coste mensual a 30 días.
Mensaje. Con la Ec. (4) y dos reglas de pulgar puedes presupuestar cualquier despliegue LLM en una servilleta antes de hablar con el proveedor. El error de la estimación de tokens (~10%) es despreciable frente al factor 100× de la decisión humano vs LLM.
Términos. Mtoken: un millón de tokens, la unidad de tarificación. Nin/Nout: tokens de entrada (prompt completo) y de salida (respuesta). R: volumen, peticiones/día.
Setup. Asistente corporativo con base de contexto estable: el mismo system prompt y los mismos documentos en cada llamada, solo cambia la pregunta. El JS calcula Csin con la Ec. (4) y Ccaché con la Ec. (5) y los compara. Arriba: las dos barras apiladas (prefijo / pregunta / respuesta), con el tramo de prefijo encogido por el descuento. Abajo: el ahorro (%) en función del tamaño del prefijo, con tu configuración marcada en dorado.
Lee así. El lector da los dos costes por llamada, el ahorro relativo y el ahorro mensual a 1.000 llamadas/día: con la configuración por defecto, unos 440 $/mes que aparecen solos por ordenar bien el prompt.
Mensaje. Caching, long context y memoria persistente son las tres palancas que bajan 5–10× el coste real de un asistente en producción. La primera es gratis: basta con poner lo inmutable al principio del contexto. Es ingeniería de orden, no de modelos.
Términos. prefijo: tramo inicial e inmutable del prompt. cache key: los primeros N tokens; cualquier cambio la invalida. KV cache: los estados internos precomputados que el proveedor guarda.
Setup. Asistente bancario tipo BBVA con RAG sobre la normativa interna. La barra superior es la ventana del modelo B llenándose con las cinco piezas del contexto (colores por pieza); si Σti > B, desborda y el badge avisa. El selector de B recorre cuatro modelos reales: 8K (modelo local pequeño), 32K, 200K (Claude Sonnet), 1M (Gemini Pro). Abajo: el coste por llamada de la Ec. (4) para tu reparto actual, con y sin resumen, a precios 3/15 $/M y respuesta fija de 600 tokens.
Lee así. El lector da la ocupación (tokens y %), el badge cabe/desborda y el coste por llamada. El resumen añade el coste de la llamada de resumen (los t4 tokens originales leídos una vez a pin más su salida), amortizado: aún así casi siempre compensa si reutilizas el resumen varios turnos.
Mensaje. Prompt engineering era buscar la frase mágica; context engineering es ESTO: decidir qué entra, en qué orden y a qué precio. El 80% de la mejora de un asistente viene de qué contexto pasas, no de cómo lo redactas. Es la habilidad central de los Temas 5 (agentes) y 6 (RAG).
Términos. ventana de contexto B: máximo de tokens que el modelo acepta por llamada. RAG: recuperar documentos relevantes y pegarlos al contexto. memoria persistente: lo aprendido en sesiones previas, guardado en disco y recuperado selectivamente. truncar/resumir: las dos salidas al desbordamiento.
Setup. El experimento clásico: escondo un dato (la cláusula de permanencia del contrato del cliente) en la posición s de un contexto de N tokens y pregunto por él. Arriba: la curva acc(s) del modelo en U con tus parámetros, el punto dorado en tu s y las zonas seguras sombreadas en los extremos. Abajo: barras de aciertos/fallos de la última simulación de 200 consultas independientes, cada una un Bernoulli(acc(s)) con mulberry32.
Lee así. El slider de N es logarítmico (2.5K a 200K). El lector da acc(s), la mejor y la peor posición de la curva actual, y el resultado empírico de la última simulación con su error muestral.
Mensaje. La ventana de contexto no es memoria RAM perfecta: es un foco con penumbra en el centro. Pon lo importante al principio o al final; el medio es para lo prescindible. Este hecho, medido y reproducible, es la mitad del oficio de context engineering.
Términos. s: posición relativa del dato en el contexto. acc(s): probabilidad de recuperación. lost in the middle: degradación de recuperación en posiciones centrales de contextos largos. needle in a haystack: el benchmark estándar que mide exactamente esto.
| modelo | calidad | $/M in·out | lat | ctx | $/mes | apto |
|---|
Setup. Cinco modelos sintéticos pero verosímiles (precios estilo 2026): Cumbre 1 (frontier, calidad 96, 5/25 $/M, 6 s), Vega M (equilibrado, 88, 3/15, 2 s), Brisa S (barato, 76, 0.5/2, 0.8 s), Gigas XL (90, 2.5/10, 3.5 s, ventana 1M) y Local 8B (64, 0/0 por token + 300 $/mes fijos, 5 s, ventana 32K). Respuesta fija de 500 tokens. El canvas pinta la frontera calidad-coste: cada modelo es un punto (coste mensual con TU tráfico, en x logarítmica; calidad en y), la línea vertical es tu presupuesto, los descalificados por latencia o ventana van en gris tachado y el ganador lleva el anillo dorado.
Lee así. Los sliders de presupuesto y R son logarítmicos. La tabla recalcula el coste mensual de cada modelo con tu tráfico y marca apto/no con el motivo; la fila dorada es m*.
Mensaje. La elección de modelo es siempre coste × latencia × calidad × privacidad (la cuarta no está en el canvas: datos sensibles pueden vetar el cloud entero, como en banca o sanidad, y entonces el local gana por descarte). Presenta siempre la decisión como esta optimización: convence a un comité de dirección mucho más que "este modelo me gusta".
Términos. frontier: el modelo más capaz del momento, al precio más alto. latencia: segundos hasta completar la respuesta. coste fijo vs marginal: servidor propio vs pago por token; el volumen decide cuál domina. m*: el modelo óptimo bajo tus restricciones.
En una frase. Hoy has abierto la caja: un LLM es un predictor de próximo token cuyo comportamiento gobiernas con tres mandos de sampling, cuyo conocimiento por llamada gobiernas repartiendo la ventana de contexto, y cuyo coste gobiernas con una ecuación lineal que cabe en una servilleta. Con eso ya puedes presupuestar, configurar y defender ante dirección cualquier despliegue de LLM.