Inteligencia Artificial · Capítulo 17

Cómo Funciona ChatGPT por Dentro: Del Token al Texto

Un recorrido técnico completo desde la tokenización hasta el muestreo de respuestas, pasando por la arquitectura transformer y el proceso de entrenamiento con RLHF


Introducción: Desmitificando la "Caja Negra"

ChatGPT parece mágico desde el exterior: le escribes cualquier pregunta en lenguaje natural y te responde con texto coherente, informado y contextualmente apropiado. Pero no hay magia —hay matemáticas, muchas matrices y millones de parámetros ajustados durante semanas de entrenamiento en miles de GPUs. Este capítulo abre la caja negra paso a paso, desde el primer carácter que escribes hasta la última palabra de la respuesta.

Entender el funcionamiento interno de los LLMs (Large Language Models) no es solo una curiosidad académica: te permite usar estas herramientas de manera más efectiva, entender sus limitaciones fundamentales (como las alucinaciones), y tomar decisiones informadas sobre cuándo confiar en sus respuestas y cuándo verificarlas.

Paso 1: Tokenización — El Idioma de las Máquinas

Los modelos de lenguaje no leen texto carácter por carácter ni palabra por palabra: lo hacen en "tokens", unidades que pueden ser palabras completas, partes de palabras o caracteres individuales. El tokenizador de GPT usa Byte-Pair Encoding (BPE), un algoritmo que construye un vocabulario de subpalabras aprendiendo cuáles combinaciones de caracteres aparecen frecuentemente juntas.

Ejemplos de tokenización:

— "ChatGPT" → ["Chat", "G", "PT"] = 3 tokens
— "inteligencia" → ["intel", "igencia"] = 2 tokens
— "artificial" → ["artificial"] = 1 token
— "un perro corre" → ["un", " perro", " corre"] = 3 tokens (el espacio se incluye en el token)

Regla práctica: 1 token ≈ 0,75 palabras en inglés; en español, los tokens tienden a ser más (las palabras son más largas en promedio). 100 tokens ≈ 75 palabras en inglés.

GPT-4 tiene una ventana de contexto de 128.000 tokens, equivalente a aproximadamente 100.000 palabras o 300 páginas de texto. Esta "memoria" de contexto es todo lo que el modelo "ve" en una conversación: el system prompt, toda la historia de mensajes, y la respuesta en construcción. Todo lo que esté fuera de esta ventana no existe para el modelo.

Por qué importan los límites de tokens:

Paso 2: Embeddings — Las Palabras como Puntos en el Espacio

Cada token se convierte en un vector numérico de alta dimensión llamado embedding. GPT-4 usa vectores de 12.288 dimensiones (12.288 números flotantes por token). Estos vectores no son aleatorios: el entrenamiento los organiza de manera que tokens semánticamente similares quedan cerca en el espacio vectorial.

La geometría del significado:
La propiedad más famosa de los embeddings: el significado se codifica en relaciones vectoriales.
vector("rey") − vector("hombre") + vector("mujer") ≈ vector("reina")
vector("Madrid") − vector("España") + vector("Francia") ≈ vector("París")

Esto no fue programado explícitamente: emergió del entrenamiento sobre miles de millones de textos donde estas relaciones semánticas aparecen consistentemente.

La atención —el mecanismo central del transformer— opera como productos punto (dot products) entre vectores de query y key. Este producto punto mide la similitud entre vectores: cuánto debe "atender" un token a cada otro token en el contexto. Los embeddings hacen que esta similitud corresponda a similitud semántica real.

Paso 3: La Arquitectura Transformer en Detalle

El paper "Attention Is All You Need" (Vaswani et al., Google, 2017) introdujo la arquitectura transformer que subyace a GPT-4, Claude, Gemini y prácticamente todos los LLMs modernos. El nombre captura la intuición central: toda la información se propaga mediante mecanismos de atención, sin recurrencia ni convolución.

Autoatención (Self-Attention)

En cada capa transformer, cada token "atiende" a todos los demás tokens en el contexto para determinar qué información incorporar. Para cada token se calculan tres vectores:

La atención de un token sobre todos los demás = softmax(Q·KT/√dk) · V. El resultado es una suma ponderada de los Values de todos los tokens, donde los pesos son la relevancia (similitud Q-K). Esto permite que cada token incorpore información de cualquier posición en el contexto, independientemente de la distancia.

Por qué la complejidad O(n²) de la atención importa:
Con una secuencia de n tokens, la autoatención requiere computar n×n pares de atención. Con 128.000 tokens de contexto: 128.000² = 16.384.000.000 pares. Esto hace que los contextos largos sean extremadamente costosos computacionalmente, lo cual explica por qué los modelos con contexto de 1M de tokens (Gemini 1.5 Pro) son mucho más caros de usar y operar.

Atención Multi-Cabeza (Multi-Head Attention)

En lugar de una sola operación de atención, los transformers usan múltiples "cabezas" de atención en paralelo (8 cabezas en BERT base, 96 en GPT-4). Cada cabeza aprende a atender a diferentes tipos de relaciones: una cabeza puede especializarse en relaciones sintácticas (sujeto-verbo), otra en correferencialidad (pronombres y sus antecedentes), otra en relaciones semánticas (sinónimos y antónimos). Los outputs de todas las cabezas se concatenan y proyectan para producir la representación final.

Las otras subcapas del transformer

GPT-4 apila 96 de estos bloques transformer. La información fluye a través de todas las capas: las capas inferiores capturan sintaxis y morfología; las capas intermedias, semántica y relaciones conceptuales; las capas superiores, razonamiento de alto nivel y coherencia discursiva.

Codificación posicional

La autoatención es invariante a la posición: si intercambiáramos todos los tokens, los patrones de atención serían los mismos. Para que el modelo sepa el orden de las palabras, se añade información posicional a los embeddings. El transformer original usó funciones sinusoidales; los modelos modernos como Llama usan RoPE (Rotary Position Embedding), que codifica la posición de manera que la información posicional relativa se preserva naturalmente durante la atención.

Paso 4: Entrenamiento — Tres Fases que Crean un Asistente

Fase 1: Preentrenamiento

GPT-4 fue preentrenado sobre aproximadamente 13 billones de tokens de texto de internet, libros, GitHub, Wikipedia y otras fuentes. El objetivo de entrenamiento es simple: predecir el siguiente token. Dado "La capital de Francia es", el modelo debe predecir "París". Esta tarea aparentemente simple, aplicada a billones de ejemplos, obliga al modelo a aprender gramática, hechos, razonamiento, estilos de escritura y mucho más.

El costo de preentrenar GPT-4 se estima en 50-100 millones de dólares solo en cómputo (miles de GPUs H100 durante semanas). Llama 3 405B de Meta costó aproximadamente $30M. Estos costos hacen que el preentrenamiento de modelos frontier sea accesible solo para un puñado de empresas globales.

Fase 2: Ajuste fino supervisado (SFT)

El modelo preentrenado es bueno prediciendo texto, pero no necesariamente siendo un asistente útil. El SFT usa algunos miles de ejemplos de conversaciones modelo: "prompt de usuario" → "respuesta ideal escrita por humanos expertos". Estos ejemplos enseñan al modelo el formato conversacional, la voz del asistente y los comportamientos básicos esperados. OpenAI contrata anotadores de alta calidad para producir estas respuestas de entrenamiento.

Fase 3: RLHF — Aprendizaje por Refuerzo con Retroalimentación Humana

RLHF (Reinforcement Learning from Human Feedback) es la innovación clave que transforma un predictor de texto en un asistente genuinamente útil y alineado con valores humanos. El proceso tiene tres etapas:

El proceso RLHF paso a paso:
  1. Recolección de comparaciones: se muestran dos respuestas del modelo a un evaluador humano, quien indica cuál prefiere según criterios de utilidad, honestidad y seguridad.
  2. Entrenamiento del modelo de recompensa: un modelo separado aprende a predecir las preferencias humanas, generalizando de los miles de comparaciones etiquetadas a cualquier respuesta nueva.
  3. Optimización por PPO: el modelo de lenguaje se actualiza usando Proximal Policy Optimization (un algoritmo de aprendizaje por refuerzo) para generar respuestas que el modelo de recompensa clasifique favorablemente, sin alejarse demasiado del modelo SFT original (lo que genera respuestas extrañas).
RLHF es la razón por la que ChatGPT dice "No tengo información actualizada después de mi fecha de corte" en lugar de inventar información, y por la que rechaza solicitudes dañinas.

El System Prompt: El Rol Oculto

Antes de que veas la interfaz de ChatGPT, ya hay texto en la conversación: el system prompt, inyectado automáticamente por OpenAI. Este prompt establece la personalidad del asistente, sus capacidades declaradas, sus limitaciones y sus instrucciones de comportamiento. Es lo primero que el modelo "lee" en cada conversación. Las empresas que acceden a la API de OpenAI pueden personalizar completamente el system prompt para crear asistentes con personalidades, restricciones y conocimientos específicos de su caso de uso.

Paso 5: Inferencia y Muestreo

Cuando ChatGPT genera una respuesta, no "decide" qué decir de una vez. Genera un token a la vez, y cada token generado se añade al contexto antes de generar el siguiente. Para cada posición, el modelo produce una distribución de probabilidad sobre los 50.000+ tokens del vocabulario. Luego aplica una estrategia de muestreo para seleccionar el siguiente token.

ParámetroValor bajoValor altoUso recomendado
Temperatura (0-2)Determinista, predecible, repetitivoCreativo, variado, a veces incoherente0.2 para código; 0.7 para conversación; 1.0+ para creatividad
Top-p (0-1)Solo los tokens más probablesMayor vocabulario, más variedad0.9 es el estándar; bajar a 0.5 para mayor coherencia
Max tokensRespuestas cortas, económicasRespuestas largas, detalladasLimitar para control de costos en aplicaciones
Frequency penaltySin penalización por repeticiónEvita repetir las mismas palabras0.5-1.0 para texto largo y variado

Top-p (Nucleus Sampling)

Con top-p=0.9, el modelo solo considera el conjunto mínimo de tokens cuyas probabilidades acumuladas suman el 90%. Si "París" tiene probabilidad 0.85 para completar "La capital de Francia es ___", ese token solo supera el umbral del 90% junto con 2-3 alternativas. El muestreo se realiza solo dentro de este "núcleo", eliminando opciones muy improbables pero manteniendo variabilidad controlada.

Las Alucinaciones: Por Qué la IA Inventa con Confianza

Las alucinaciones —respuestas que suenan plausibles y confiadas pero son factualmente incorrectas— son la limitación más peligrosa de los LLMs actuales. Entender por qué ocurren es fundamental para usar estos sistemas responsablemente.

La razón técnica de las alucinaciones:
Los LLMs son modelos de lenguaje, no bases de datos: no almacenan hechos explícitamente. Al generar texto, predicen qué tokens son plausibles dado el contexto, basándose en patrones estadísticos del entrenamiento. Cuando se les pregunta algo que no está bien representado en los datos de entrenamiento —una persona poco conocida, un hecho muy específico, un artículo científico oscuro— el modelo no dice "no sé". En cambio, genera tokens que son estadísticamente plausibles dado el contexto, aunque sean factualmente incorrectos. Es una interpolación confiada en el espacio entre lo que sí aprendió.

Las alucinaciones son más frecuentes en: citas y referencias bibliográficas específicas, fechas y números precisos, hechos sobre personas poco conocidas, información posterior a la fecha de corte del entrenamiento, y razonamiento matemático complejo. La solución práctica: siempre verificar afirmaciones específicas y críticas; usar los LLMs para razonamiento, síntesis y redacción, no como fuente primaria de hechos precisos.

Costos de Inferencia y Modelos Alternativos

ModeloDesarrolladorCosto aprox.Característica distintiva
GPT-4oOpenAI$2.50/$10 por 1M tokens entrada/salidaMultimodal, más rápido que GPT-4
GPT-4o miniOpenAI$0.15/$0.60 por 1M tokensMuy barato para aplicaciones de alto volumen
Claude 3.5 SonnetAnthropic$3/$15 por 1M tokensMejor en razonamiento, Constitutional AI
Gemini 1.5 ProGoogle$1.25/$5 por 1M tokensContexto de 1M tokens, integración Google
Llama 3.1 405BMeta (open source)Costo de infraestructura propioOpen source, personalizable, privacidad total
Mistral LargeMistral AI$2/$6 por 1M tokensFuerte en código y matemáticas, EU-based

Cuantización: ejecutar LLMs en hardware de consumo

Los modelos grandes requieren cantidades masivas de memoria GPU: GPT-4 requeriría cientos de GB de VRAM en precisión completa FP32. La cuantización reduce la precisión numérica de los pesos del modelo: de FP32 (32 bits) a FP16 (16 bits, reducción 2×), INT8 (8 bits, reducción 4×) o INT4 (4 bits, reducción 8×). Con cuantización INT4, Llama 3 8B —un modelo de 8 mil millones de parámetros— puede ejecutarse en una GPU de consumo de 8GB de VRAM con calidad ligeramente degradada. Esto ha democratizado el acceso a LLMs potentes mediante herramientas como Ollama, LM Studio y llama.cpp.

Resumen del Capítulo