Los modelos de lenguaje a gran escala (LLM, por sus siglas en inglés) como ChatGPT, Gemini o Claude, entre otros, se han convertido en herramientas habituales para programadores, escritores, científicos y empresas. Sin embargo, detrás de su aparente «magia» hay una compleja maquinaria matemática y computacional que merece ser entendida.
En este artículo vamos a desmenuzar, paso a paso, cómo funciona un LLM desde la perspectiva de la inferencia —el proceso de generar texto— usando como base el proyecto minGPT de Andrej Karpathy y la guía visual de bbycroft.net.
Este artículo se inspira en la guía original de Ben Bycroft y en el trabajo de Andrej Karpathy, cuyo minGPT es una implementación minimalista en PyTorch. Nuestro objetivo es aterrizar estos conceptos y añadir tips prácticos para profesionales que trabajan con IA en entornos reales.
1. El objetivo de un LLM: predecir el siguiente token
En esencia, un LLM es un predictor de contexto. Su trabajo consiste en mirar una secuencia de símbolos (tokens) y predecir cuál será el siguiente. Imagina que el modelo recibe esta entrada:
Su tarea es ordenarla alfabéticamente hasta producir:
En este ejemplo, el vocabulario solo tiene tres tokens:
| Token | Índice |
|---|---|
| A | 0 |
| B | 1 |
| C | 2 |
Esto significa que la entrada real que procesa el modelo es una secuencia numérica:
En ChatGPT ocurre algo similar, solo que en lugar de letras hablamos de palabras, emojis o incluso fragmentos de palabras, con vocabularios que llegan a decenas de miles de tokens.
Tip técnico: en proyectos reales, el tamaño del vocabulario (
nvocab) es un parámetro clave. Modelos como GPT-3 trabajan con más de 50.000 tokens. Reducir este tamaño acelera la inferencia, pero puede afectar la calidad del texto generado.
2. Embeddings: traduciendo números a significado
Los enteros de la secuencia inicial se convierten en vectores mediante una matriz llamada embedding.
Por ejemplo, si cada token se traduce a un vector de 48 dimensiones:
-
El token
B(índice 1) se convierte en un vector de tamaño 48:[0.2, -0.7, 1.1, ...] -
A la vez, añadimos información de su posición en la secuencia, con otro vector de tamaño 48.
El resultado final es la suma de ambos vectores (token + posición).
Analogía: imagina un mapa en el que cada palabra es una coordenada en el espacio. Los embeddings son la manera en la que el modelo «ubica» esa palabra, mientras que el vector de posición indica dónde se encuentra en la frase.
El resultado es una matriz T × C, donde:
-
T= número de tokens en la secuencia (tiempo) -
C= tamaño del embedding (canales)
3. Normalización: estabilizando el flujo
Antes de pasar a la parte más importante —la atención—, cada columna se normaliza mediante layer normalization.
Este paso ajusta los valores de cada vector para que tengan media 0 y desviación estándar 1, lo que ayuda a estabilizar el entrenamiento y la inferencia.
Tip técnico: sin normalización, las redes profundas tienden a sufrir problemas como gradientes explosivos o inestables, algo especialmente crítico cuando hablamos de modelos con miles de millones de parámetros.
4. El corazón del Transformer: self-attention
Aquí es donde ocurre la magia. El mecanismo de self-attention permite que cada token «mire» a otros tokens de la secuencia y decida cuáles son relevantes para entender el contexto.
Para cada token se generan tres vectores:
-
Q (Query): qué estoy buscando
-
K (Key): cómo me describo
-
V (Value): mi información real
La idea es simple: cada token compara su Q con los K de todos los demás tokens anteriores (atención causal). Cuanto más parecidos, mayor será el peso que ese token da a la información (V) de los otros.
Este proceso se repite en paralelo en varias «cabezas» de atención (multi-head attention).
En el caso de GPT, si el tamaño del embedding es 48 y tenemos 3 cabezas, cada cabeza maneja vectores de tamaño 16.
Analogía: imagina una reunión de trabajo. Cada persona (token) tiene una pregunta (
Q), escucha las presentaciones de los demás (K) y toma notas de las respuestas más relevantes (V).
Al final, combina esas notas para tomar decisiones.
5. El MLP: refinando la información
Después de la autoatención, el resultado pasa por un MLP (Multi-Layer Perceptron), una red neuronal clásica que:
-
Expande el vector a 4× su tamaño.
-
Aplica una activación no lineal, en este caso GELU.
-
Reduce el vector de nuevo a su tamaño original.
Este proceso añade no linealidad y permite que el modelo capture relaciones más complejas.
Dato curioso: GELU es la activación usada en GPT porque tiene una transición suave, lo que ayuda a la estabilidad del modelo frente a activaciones más bruscas como ReLU.
6. Residual connections: la autopista de la información
Tanto la autoatención como el MLP añaden sus resultados a la entrada original mediante conexiones residuales.
Esto ayuda a que la información fluya mejor a través de múltiples capas sin perder detalles importantes.
En modelos grandes, esta técnica es fundamental: sin ella, el entrenamiento sería prácticamente imposible.
7. La salida: logits y softmax
Al final de la última capa Transformer, obtenemos para cada token un vector de tamaño nvocab.
Estos valores se llaman logits y representan puntuaciones sin procesar.
Para convertirlos en probabilidades, se aplica la función softmax, que:
-
Exponencia cada valor.
-
Normaliza la suma para que sea igual a 1.
De esta forma, el modelo genera una distribución de probabilidad sobre el siguiente token.
El paso final consiste en muestrear un token de esa distribución para continuar la secuencia.
Tip técnico: el parámetro temperatura controla la creatividad de la salida.
Temperatura baja → respuestas más seguras y repetitivas.
Temperatura alta → mayor diversidad y aleatoriedad.
8. Escalando el modelo: de nano-GPT a los LLM más potentes hoy en día
Nuestro pequeño nano-GPT de 85 000 parámetros es apenas un calentamiento, casi un juguete comparado con los colosos que dominan el panorama actual de los LLM. Vamos a ver algunos gigantes actuales para poner las cosas en perspectiva:
-
GPT-4 (OpenAI): Aunque OpenAI no ha desvelado el número exacto, estimaciones respaldadas por voces expertas como George Hotz apuntan a unos 1,7–1,8 billones (trillones en inglés) de parámetros Exploding TopicsWikipedia.
-
PanGu-Σ (Huawei): Un modelo impresionante entrenado para más de 40 idiomas y tareas de código. Dispone de 1,085 billones de parámetros Wikipedia.
-
Llama 3.1 (Meta): La versión más ambiciosa de Meta incluye distintos tamaños, entre los que destaca el de 405 mil millones (405 B) de parámetros WikipediaLifewire.
-
DeepSeek R1 (DeepSeek): Un modelo “sparse” o de expertos mixtos (MoE), con 671 mil millones de parámetros, de los cuales sólo una parte está activa según el prompt El Wall Street Journal.
-
Grok-1 (xAI): El primer modelo MoE de la línea Grok incluía 314 mil millones de parámetros, con sucesores que amplían capacidades, contexto y razonamiento Tom’s Guide.
Para que no se nos indigeste esta sopa de cifras, veámoslo de otra forma: desde las decenas de miles de parámetros hasta modelos que alcanzan el billón y más allá —la diferencia es tan abismal que casi necesitaríamos un microscopio para el primero y un satélite para el último.
Reflexión: pensar que nano-GPT y GPT-4 pertenecen a la misma especie de modelo es como comparar un colibrí con un dinosaurio volador. Técnicamente son “pájaros”, pero son mundos aparte.
Lo que vemos como una respuesta de ChatGPT es el resultado de una cadena de cálculos masivos que se ejecutan en milisegundos. Cada palabra generada es el fruto de predicciones basadas en miles de millones de parámetros, organizados en capas que interactúan como una sinfonía matemática.
Entender esta arquitectura no solo ayuda a apreciar la complejidad de estos sistemas, sino que también ofrece herramientas prácticas para desarrolladores e investigadores que quieran crear soluciones basadas en IA.
Si te interesa explorar por ti mismo, visita la guía interactiva en bbycroft.net/llm y el proyecto minGPT.


Deja una respuesta