Predicción del Siguiente Token (Next-Token Prediction)
Mecanismo fundamental de los modelos de lenguaje grandes autorregresivos (LLM). Cálculo de logits, función Softmax, impacto de la temperatura y muestreo (Top-P/Top-K). Explicación de por qué la generación de texto es un proceso secuencial O(N) y cómo revisar probabilidades a través de la API.
1. Visión general del concepto y problema sistémico
Cuando observas cómo la inteligencia artificial diseña una arquitectura de microservicios o compone un poema, es fácil creer que dentro de la computadora ha surgido una conciencia con su propio monólogo interno.
Sin embargo, a nivel de cálculos, bajo el capó de cualquier LLM autorregresivo (GPT-4o, Claude 3.7, Llama 3.3, DeepSeek R1) se ejecuta un ciclo iterativo:
$$P(W) = \prod_{t=1}^{T} P(w_t \mid w_1, w_2, \dots, w_{t-1})$$
- Leer la secuencia de entrada de tokens $w_1, \dots, w_{t-1}$.
- Pasar los vectores a través de las capas del Transformer (Self-Attention + MLP).
- Calcular la puntuación numérica (Logit) para cada uno de los 128,000 tokens en el vocabulario.
- Aplicar Softmax y algoritmos de selección (Temperature, Top-P), eligiendo un token $w_t$.
- Agregar $w_t$ al contexto y repetir el paso.
Modelo mental: no es un oráculo que conoce de antemano el pensamiento final, sino un generador estadístico de trayectorias que da un paso y solo después ve hacia dónde avanzar a continuación.
┌─────────────────────────────────────────────────────────────┐
│ CONVEYOR MATEMÁTICO DE UN SOLO PASO │
├─────────────────────────────────────────────────────────────┤
│ 1. Contexto de entrada: «Kiev es la capital» │
│ Vectorización de tokens ➔ Paso a través de capas del │
│ transformador │
├─────────────────────────────────────────────────────────────┤
│ 2. Capa de salida (Unembedding): 128,000 logits │
│ • Token "Ucrania" ➔ Logit: +14.2 │
│ • Token "antigua" ➔ Logit: +8.1 │
│ • Token "Francia" ➔ Logit: -4.5 │
├─────────────────────────────────────────────────────────────┤
│ 3. Normalización Softmax(Logits / Temperature): │
│ • "Ucrania" ➔ 94.2% │
│ • "antigua" ➔ 5.1% │
│ • "Francia" ➔ 0.0001% │
├─────────────────────────────────────────────────────────────┤
│ 4. Muestreo: elección del token "Ucrania" │
│ Nuevo contexto: «Kiev es la capital de Ucrania» ➔ Siguiente paso│
└─────────────────────────────────────────────────────────────┘
2. Implementación de muestreo en Python e inspección a través de CLI
Así es como se calcula la probabilidad del siguiente token en Python teniendo en cuenta la temperatura:
import numpy as np
def compute_next_token_probs(logits: np.ndarray, temperature: float = 0.7) -> np.ndarray:
# 1. Escalado por temperatura
scaled = logits / max(temperature, 1e-4)
# 2. Softmax estable (restando el máximo para prevenir overflow)
exp_logits = np.exp(scaled - np.max(scaled))
probs = exp_logits / np.sum(exp_logits)
return probs
# Ejemplo de llamada: 4 posibles tokens
mock_logits = np.array([12.5, 9.1, 4.0, 1.2])
print("Probabilidades de tokens:", np.round(compute_next_token_probs(mock_logits, temperature=0.7), 4))
Cómo ver las probabilidades crudas de los tokens a través de cURL en la terminal:
Puedes pedir a la API que devuelva las probabilidades lógicas exactas (logprobs) para ver las alternativas que consideró el modelo:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "La capital de Francia es"}],
"max_tokens": 1,
"logprobs": true,
"top_logprobs": 3
}'
En la respuesta JSON, el parámetro top_logprobs mostrará las puntuaciones matemáticas exactas para las opciones París, ciudad, etc.
3. Por qué Next-Token conduce a alucinaciones y cómo solucionarlo
Dado que el modelo genera texto localmente "aquí y ahora", tiende a caer en trampas estadísticas:
- Error de compromiso temprano (Early Commitment): Si en las primeras dos palabras el modelo elige accidentalmente un token desafortunado, todos los siguientes tokens intentarán justificar esta elección errónea en lugar de reconocer el error.
- Imposibilidad de retroceder (No Backtracking): La inferencia normal no puede borrar una palabra ya generada.
- Por qué los modelos de razonamiento (Reasoning Models / DeepSeek R1 / o3) funcionan mejor: Utilizan cadenas de razonamiento (
<thought>...</thought>), donde antes de proporcionar la respuesta final generan cientos de tokens de análisis interno y auto-verificación.
4. Escenarios prácticos de ingeniería en producción
Recuerda el pipeline autorregresivo:
- Prompts como "Piensa antes de responder" o "Desglosa paso a paso" funcionan no porque la IA se vuelva más atenta, sino porque obligas a generar tokens de razonamiento que físicamente se convierten en el contexto de entrada para el token final con la respuesta correcta.
01. Generación de Texto en Aplicaciones de Chatbot
02. Implementación de Sistemas de Recomendación
03. Desarrollo de Asistentes Virtuales
FAQ: Predicción del Siguiente Token (Next-Token Prediction)
Términos relacionados
Tokens Explicados (Cuántas Palabras en un Token)
Unidad básica de medida de texto en modelos de lenguaje. Explicación de cómo las palabras se dividen en tokens, cómo esto afecta el costo de las consultas y por qué las palabras en ucraniano consumen más tokens que las palabras en inglés.
Temperatura de Generación (Control des Creatividad y Caos)
Parámetro numérico clave en la generación de texto (normalmente entre 0.0 y 1.0 o 2.0). Define el grado de imprevisibilidad en la elección del siguiente token: desde una matemática estrictamente determinista hasta un vuelo libre de la imaginación.
Arquitectura Transformer
Arquitectura de redes neuronales presentada por investigadores de Google en 2017 en el artículo 'Attention Is All You Need'. Base de todos los modelos de lenguaje modernos (GPT, Claude, Gemini, Llama), que reemplazó las lentas redes recurrentes y aprendió a procesar todo el texto en paralelo simultáneamente.
KV Cache (Key-Value Cache)
Optimización de memoria en modelos Transformer que almacena vectores de claves y valores (Keys and Values) de tokens procesados en la memoria rápida de la GPU. Permite generar cada palabra siguiente instantáneamente, pero crece rápidamente en tamaño con cada nuevo mensaje en el chat.