Cómo Funcionan Realmente los LLMs
Cómo funcionan los LLM: tokens, embeddings, atención del transformer, entrenamiento, muestreo, temperatura, alucinaciones y por qué ChatGPT falla.
Un modelo de lenguaje grande es una red neuronal entrenada para predecir el siguiente token en una secuencia: convierte texto en vectores numéricos, utiliza atención para que cada token recopile contexto de los demás y genera la salida un token a la vez mediante muestreo de una distribución de probabilidad sobre su vocabulario. Ese único mecanismo — predecir un token, añadirlo, predecir el siguiente — es el motor completo detrás de ChatGPT, GitHub Copilot, Claude y Gemini. Todo lo demás es escala, procedimiento de entrenamiento e ingeniería construida sobre esa base.
Si utilizas estas herramientas a diario pero nunca has abierto el capó, los comportamientos que habrás notado — respuestas incorrectas dadas con total seguridad, un chat que “olvida” cómo empezó, resultados radicalmente distintos ante un prompt ligeramente reformulado, o la incapacidad de contar las letras de una palabra — no son quirks aleatorios. Cada uno se deriva directamente de la mecánica interna. Este artículo te proporciona un modelo mental preciso de esa mecánica: tokens y embeddings, las capas de atención y feed-forward del transformer, las tres fases de entrenamiento, cómo funciona realmente el muestreo durante la generación, y un repaso explícito a los conceptos erróneos que la palabra “realmente” en el título está aquí para corregir.
Conclusiones Clave
- Un LLM no recupera respuestas de una base de datos — calcula una nueva distribución de probabilidad sobre todo su vocabulario en cada paso, elige un token y repite el proceso, de modo que el “razonamiento” que lees se produce de izquierda a derecha en lugar de recuperarse completo.
- Los LLMs leen tokens de sub-palabras, no letras individuales, lo que explica por qué las tareas de ortografía y conteo de letras fallan con más frecuencia de lo que la fluidez general del modelo haría prever.
- El entrenamiento se realiza en tres etapas: pre-entrenamiento auto-supervisado (la siguiente palabra es su propia etiqueta), ajuste fino por instrucciones sobre pares prompt–respuesta escritos por humanos, y aprendizaje por refuerzo a partir de retroalimentación humana (RLHF).
- Por defecto, un LLM es probabilístico, no determinista: con cualquier temperatura superior a cero, el mismo prompt puede devolver respuestas distintas porque el modelo muestrea de una distribución en lugar de seleccionar siempre el token más probable.
- La alucinación es el comportamiento predeterminado de un sistema optimizado para producir texto estadísticamente plausible — se recompensa que suene bien, no que sea correcto.
Qué es realmente un LLM: predicción del siguiente token
En su núcleo, un modelo de lenguaje grande resuelve un problema concreto una y otra vez: dado una secuencia de tokens, ¿cuál viene a continuación? Lo plantea como un problema de clasificación sobre todo su vocabulario — decenas de miles de tokens posibles — y genera una probabilidad para cada uno. El modelo elige uno, lo añade a la secuencia y vuelve a ejecutar el proceso completo. La generación de texto es ese bucle ejecutándose hasta que se cumple una condición de parada.
Este reencuadre es la idea clave. “Escribe una función que aplique debounce a un callback” no es un comando cuya respuesta el modelo busca. Es un prompt que el modelo continúa, token a token, porque en sus datos de entrenamiento, las secuencias que se parecen a ese prompt estaban seguidas por secuencias que se parecen a código funcional. El modelo es un motor de continuación apuntado a tu entrada.
La arquitectura que hizo posible esto a escala es el transformer, presentado en el paper de 2017 Attention Is All You Need de Vaswani et al. Las siglas “GPT” en ChatGPT significan Generative Pre-trained Transformer. Antes de los transformers, los modelos procesaban el texto más o menos de izquierda a derecha y tenían dificultades para conectar palabras alejadas entre sí en una oración; la atención permitió que un modelo ponderase cada token frente a todos los demás en paralelo, lo que desbloqueó tanto la calidad como la velocidad de entrenamiento.
Tokens y embeddings: cómo el texto se convierte en números
Discover how at OpenReplay.com.
Antes de que un modelo pueda hacer algo con tu prompt, divide el texto en tokens — fragmentos de sub-palabras, no palabras ni letras — y mapea cada token a un número. Un token puede ser una palabra completa (" the"), un fragmento de palabra ("ing"), un único carácter o puntuación. Este paso de tokenización es invisible en la interfaz de chat, pero explica toda una clase de fallos.
Dado que el modelo lee tokens de sub-palabras en lugar de letras individuales, pedirle que cuente las letras de una palabra va en contra de cómo representa el texto — lo que explica por qué las tareas de conteo de letras y ortografía fallan con más frecuencia de lo que la fluidez general del modelo sugeriría. El modelo nunca “ve” las letras individuales de una palabra; ve un par de IDs enteros opacos que representan fragmentos de tokens, con las letras ya integradas en ellos.
Puedes observar esto con el tokenizador de código abierto tiktoken de OpenAI:
# pip install tiktoken
import tiktoken
enc = tiktoken.get_encoding("cl100k_base")
ids = enc.encode("strawberry")
print(ids) # una lista corta de IDs enteros de tokens
print([enc.decode([i]) for i in ids]) # los fragmentos de sub-palabras, no letras
Al ejecutarlo obtienes un puñado de IDs enteros, cada uno decodificado a un fragmento de varios caracteres — no diez letras separadas. El modelo opera sobre esos IDs. Contar caracteres requeriría información que la tokenización descartó, por lo que el modelo aproxima y frecuentemente se equivoca.
Cada ID de token se mapea entonces a un embedding: una larga lista de números (un vector) que posiciona el token en un “espacio de palabras” de alta dimensión. En ese espacio, las palabras similares se agrupan — cat está cerca de dog, kitten y pet — y la geometría codifica significado. La demostración clásica proviene de word2vec (Mikolov et al., 2013), que mostró que la aritmética vectorial captura relaciones: aproximadamente, biggest − big + small ≈ smallest, y Paris − France + Italy ≈ Rome. Esos mismos vectores heredan los sesgos humanos presentes en el texto de entrenamiento, razón por la cual doctor − man + woman puede derivar hacia nurse. Los embeddings se aprenden durante el entrenamiento, no se construyen manualmente.
Dentro del transformer: capas de atención y feed-forward
Un transformer es una pila de capas idénticas, cada una realizando dos tareas en secuencia: un paso de atención, donde los tokens recogen contexto de otros tokens, y un paso feed-forward, donde el modelo aplica el conocimiento almacenado en sus pesos a cada token individualmente. Un modelo de frontera apila decenas de estas capas, refinando la representación de cada token un poco más en cada una. Las capas iniciales manejan la estructura local, como gramática y ambigüedad; las capas posteriores rastrean el significado de nivel superior — quién hizo qué a quién y de qué trata el pasaje.
La atención funciona como un servicio de emparejamiento. Para cada token, el modelo produce un vector query (“¿qué estoy buscando?”) y un vector key (“¿qué ofrezco?”). Compara cada query frente a cada key, y donde coinciden, la información fluye entre esos tokens. En la oración “When John gave the book to Mary, she thanked him,” la atención es el mecanismo que vincula “she” con “Mary” y “him” con “John” para que las capas posteriores puedan utilizarlo. Una sola capa ejecuta muchas de estas operaciones de atención — llamadas heads — en paralelo, cada una aprendiendo a rastrear un tipo diferente de relación.
El paso feed-forward es donde residen los hechos aprendidos. Después de que la atención ha recopilado el contexto relevante, la red feed-forward procesa cada token por separado, transformándolo en función de los patrones absorbidos durante el entrenamiento. La división de trabajo es clara: la atención recupera información del prompt que tiene delante, mientras que las capas feed-forward aportan información aprendida del corpus de entrenamiento. Cuando el modelo continúa “The capital of Poland is” con “Warsaw,” ese hecho proviene de los pesos feed-forward, no de nada presente en tu prompt.
Para el álgebra lineal y las ecuaciones exactas detrás de la atención, el paper original del transformer es la fuente primaria. El modelo mental — emparejar, recopilar contexto, luego aplicar conocimiento almacenado, repetido a lo largo de muchas capas — es suficiente para razonar sobre el comportamiento.
Cómo se entrenan los LLMs: pre-entrenamiento, ajuste fino y RLHF
El entrenamiento ocurre en tres etapas: pre-entrenamiento auto-supervisado, donde la siguiente palabra en texto ordinario es su propia etiqueta; ajuste fino por instrucciones sobre pares prompt–respuesta escritos por humanos; y aprendizaje por refuerzo a partir de retroalimentación humana (RLHF), que alinea las salidas del modelo con las preferencias humanas. Cada etapa produce un tipo diferente de modelo.
| Etapa | Entrada | De dónde proviene la “etiqueta” | Qué produce |
|---|---|---|---|
| Pre-entrenamiento | Texto masivo sin etiquetar (web, libros, código) | La siguiente palabra en el propio texto — sin necesidad de etiquetado humano | Un completador de texto fluido que continúa cualquier prompt pero no sigue instrucciones |
| Ajuste fino por instrucciones | Pares prompt–respuesta curados | Los humanos escriben las respuestas deseadas | Un modelo que responde preguntas y sigue instrucciones como un asistente |
| RLHF | Salidas del modelo clasificadas por humanos | Los juicios de preferencia humana entrenan un modelo de recompensa | Salidas alineadas para ser útiles, inofensivas y centradas en la tarea |
El pre-entrenamiento es auto-supervisado: dado que la siguiente palabra correcta ya está en el texto, la señal de entrenamiento es gratuita y efectivamente ilimitada — cada oración en internet es un ejemplo etiquetado. El modelo comienza con pesos aleatorios, predice muy mal y mejora a lo largo de cientos de miles de millones de ejemplos ajustando sus pesos para reducir el error de predicción (la matemática de ese ajuste es la retropropagación, bien documentada en otros lugares). El paper de leyes de escala de 2020 (Kaplan et al.) encontró que la precisión del modelo mejora como una ley de potencia con el tamaño del modelo, los datos de entrenamiento y el cómputo — el resultado empírico que justificó la construcción de modelos cada vez más grandes.
Un modelo puramente pre-entrenado es solo un completador. Si le preguntas “¿Cuál es tu nombre?” podría continuar con “¿Cuál es tu apellido?” porque es una continuación plausible, no porque sea poco útil. El ajuste fino por instrucciones y el RLHF corrigen eso. El pipeline para convertir un modelo bruto en un asistente se describió en el paper de InstructGPT (Ouyang et al., 2022), el trabajo directamente detrás de ChatGPT, que se lanzó como vista previa pública de investigación el 30 de noviembre de 2022. La mayoría de los modelos de chat actuales se entrenan con alguna variante de este pipeline, aunque las recetas exactas son propietarias.
Dos notas sobre los números. Las cifras frecuentemente citadas de GPT-3 — 175 mil millones de parámetros, 96 capas, embeddings de 12.288 dimensiones, un vocabulario de 50.257 tokens — provienen del paper de GPT-3 de 2020 y son útiles como ilustración concreta, no como especificación actual. Los laboratorios de frontera ya no publican recuentos de parámetros para sus modelos más recientes: no existe una cifra oficial de parámetros para la serie GPT-5 actual, Claude Opus/Sonnet/Haiku, ni para las líneas Gemini 3.x. Trata cualquier afirmación de “X billones de parámetros” sobre un modelo actual como un rumor.
Cómo funciona la generación: muestreo, temperatura y por qué la salida es probabilística
Cuando un LLM genera texto, ejecuta el bucle de predicción un token a la vez y muestrea el siguiente token de la distribución de probabilidad que calcula — no simplemente emite “la respuesta”. Aquí está el bucle en pseudocódigo:
tokens = tokenize(prompt)
while not done:
logits = model.forward(tokens) # una puntuación por token del vocabulario
probs = softmax(logits / temperature) # convierte puntuaciones en probabilidades
next_token = sample(probs) # elige uno, ponderado por probabilidad
tokens.append(next_token)
if next_token == END_OF_TEXT:
break
output = detokenize(tokens)
El parámetro temperature controla cómo las puntuaciones se convierten en probabilidades. Por defecto, un LLM es probabilístico, no determinista: una temperatura superior a cero significa que el mismo prompt puede producir respuestas distintas, porque el modelo muestrea de una distribución en lugar de seleccionar siempre el token más probable. Con temperatura 0, el modelo se vuelve codicioso — siempre toma el token superior — lo que es aproximadamente determinista y adecuado para código o extracción de información. Temperaturas más altas aplanan la distribución, haciendo que los tokens de menor probabilidad sean más probables y que la salida sea más variada. El parámetro temperature está documentado en la referencia de la API de OpenAI y en la referencia de la API Messages de Anthropic; ambas lo exponen por solicitud.
Por eso volver a ejecutar el mismo prompt en ChatGPT puede darte una respuesta diferente cada vez, y por eso “establecer temperature a 0” es el consejo estándar cuando necesitas salida reproducible desde una API.
Conceptos erróneos comunes sobre los LLMs
Varias creencias intuitivas sobre cómo funcionan los LLMs son incorrectas, y cada creencia errónea lleva a los desarrolladores a usar mal las herramientas o a malinterpretar sus fallos. La palabra “realmente” en el título de este artículo está aquí para corregirlos.
| Concepto erróneo | Lo que es realmente cierto |
|---|---|
| ”Busca la respuesta en una base de datos.” | No existe una tabla almacenada de hechos para recuperar. El modelo calcula una nueva distribución de probabilidad sobre todo su vocabulario en cada paso. |
| ”Conoce la respuesta antes de escribirla.” | Cada token se elige a partir de los tokens anteriores. La respuesta se construye de izquierda a derecha, no se recupera completa. |
| ”Los parámetros almacenan hechos como texto legible.” | Los parámetros son pesos numéricos. Los “hechos” son patrones estadísticos difusos distribuidos entre miles de millones de pesos, no cadenas de texto recuperables. |
| ”Es determinista — misma entrada, misma salida.” | Con temperature > 0 muestrea, por lo que prompts idénticos pueden producir completaciones diferentes. |
No es una búsqueda en base de datos. Un LLM no busca respuestas en una base de datos — no tiene ninguna tabla almacenada de hechos para recuperar; calcula una nueva distribución de probabilidad sobre todo su vocabulario en cada paso, luego elige un token y repite. Enmarcar los parámetros como “una base de conocimiento” es engañoso: los pesos codifican regularidades estadísticas, no registros indexados.
No conoce su respuesta de antemano. El modelo no conoce su respuesta antes de escribirla: cada token se elige basándose en todos los tokens anteriores, por lo que el “razonamiento” que ves se produce de izquierda a derecha, no se recupera completo. Por eso un modelo puede comenzar una oración con confianza y acabar en un callejón sin salida — no hay ningún plan que se esté leyendo, solo una continuación que se está calculando.
Por qué los LLMs se comportan como lo hacen
Una vez que comprendes el mecanismo, los comportamientos cotidianos de estas herramientas dejan de ser misteriosos. Cada uno es una consecuencia directa de la predicción del siguiente token sobre probabilidades aprendidas.
Alucinación. La alucinación no es un error añadido al sistema — es el comportamiento predeterminado de un modelo optimizado para producir texto estadísticamente plausible, que es recompensado por sonar bien en lugar de por ser correcto. Cuando el modelo no tiene una señal fuerte para un hecho, igualmente produce la continuación de aspecto más plausible, con un tono seguro, porque el texto confiado domina sus datos de entrenamiento. Un nombre de función inventado o una cita inexistente es el modelo haciendo exactamente lo que fue entrenado para hacer.
Ventanas de contexto. Una ventana de contexto es el número fijo de tokens que el modelo puede atender a la vez; cualquier cosa que supere ese límite simplemente no es visible para el modelo, razón por la cual un chat largo eventualmente “olvida” cómo comenzó. A junio de 2026, los modelos de frontera actuales convergen en torno a una ventana de aproximadamente un millón de tokens — Gemini 3.5 Flash maneja 1.048.576 tokens de entrada, Claude Opus 4.8 incluye una ventana de 1M de tokens por defecto, y la serie GPT-5 ofrece una ventana de 1M de tokens a través de la API. Grande, pero aún fija: una vez que tu conversación o base de código la supera, los tokens más antiguos quedan fuera de lo que el modelo puede ver.
Sensibilidad al prompt, chain-of-thought y few-shot. La redacción exacta de tu prompt desplaza la distribución de probabilidad y, por tanto, la respuesta, porque la salida se calcula token a token a partir de los tokens anteriores. Esa misma propiedad es la razón por la que funcionan los trucos de prompting. El prompting few-shot (mostrar ejemplos resueltos) siembra el contexto con el patrón que quieres que continúe. El prompting chain-of-thought (“piensa paso a paso”) funciona porque el propio texto generado por el modelo se convierte en parte de la entrada que lee a continuación — los pasos intermedios actúan como memoria de trabajo sobre la que el modelo puede construir, en lugar de forzar la respuesta final en un único salto.
Grounding y RAG. La generación aumentada por recuperación (RAG) coloca documentos relevantes directamente en el prompt para que el modelo pueda extraer hechos mediante atención sobre el texto que tiene delante, en lugar de hacerlo desde sus pesos feed-forward con pérdida de información. Por eso un modelo con búsqueda web o tus documentos en el contexto es más preciso en los detalles — has trasladado la carga de “recordarlo del entrenamiento” a “leerlo del prompt,” lo que la arquitectura hace de manera mucho más fiable.
La pregunta de los “loros estocásticos”
Si la predicción del siguiente token equivale a comprensión genuina o a imitación sofisticada es una pregunta abierta y debatida. La visión escéptica quedó cristalizada en el paper de 2021 On the Dangers of Stochastic Parrots (Bender, Gebru, et al.), que argumentaba que un modelo que ensambla texto de entrenamiento por verosimilitud estadística, sin anclaje en el significado, es más loro que mente. La visión opuesta sostiene que predecir texto con suficiente precisión exige un modelo comprimido y utilizable del mundo que describe. La mecánica de este artículo está establecida; esta interpretación no lo está, y no necesitas resolverla para usar bien las herramientas.
Lo que sí necesitas es el modelo mecánico: tokens de entrada, capas de atención y feed-forward refinándolos a lo largo de muchas capas del transformer, una distribución de probabilidad de salida, un token a la vez. Mantén esa imagen y la próxima vez que Copilot invente un método o ChatGPT se contradiga a sí mismo a los tres turnos de una conversación, sabrás exactamente qué parte de la máquina lo produjo — y, igual de útil, qué cambio en el prompt o qué paso de recuperación lo solucionará.
Preguntas Frecuentes
¿Cuál es la diferencia entre un token y una palabra en un LLM?
Un token es un fragmento de sub-palabra, no una palabra. El tokenizador divide el texto en piezas que pueden ser una palabra completa, un fragmento de palabra como 'ing', un único carácter o puntuación, y luego mapea cada una a un ID entero. Una palabra común puede ser un único token, mientras que una palabra menos frecuente se divide en varios. El modelo siempre opera sobre estos IDs de tokens, nunca sobre palabras o letras en bruto, lo que explica por qué las tareas a nivel de carácter, como contar letras, van en contra de cómo representa el texto.
¿Aumentar la ventana de contexto mejora la precisión de un LLM?
No directamente. Una ventana de contexto más grande solo permite al modelo atender a más tokens a la vez; no lo hace mejor en razonamiento o recuperación. La calidad puede seguir degradándose cuando la información relevante está lejos de donde se necesita, y colocar demasiado texto irrelevante en el prompt puede diluir la señal. El beneficio es que menos tokens anteriores quedan fuera de la ventana, por lo que el modelo 'olvida' menos de una conversación o documento largo.
Si establezco temperature a 0, ¿un LLM siempre dará una salida idéntica?
Temperature 0 hace que la generación sea codiciosa, seleccionando siempre el token de mayor probabilidad, lo que es aproximadamente determinista para un modelo y prompt dados. En la práctica, la reproducibilidad exacta no siempre está garantizada entre llamadas a la API debido a factores como el no-determinismo de punto flotante en hardware paralelo, cambios de versión del modelo y el enrutamiento del proveedor. Temperature 0 es la configuración correcta cuando necesitas salida consistente para código o extracción, pero trátala como casi determinista en lugar de como una garantía absoluta.
¿Por qué la generación aumentada por recuperación reduce la alucinación?
RAG coloca documentos relevantes directamente en el prompt, de modo que el modelo puede extraer hechos mediante atención sobre el texto que tiene delante en lugar de hacerlo desde sus pesos feed-forward con pérdida de información. La arquitectura recupera información del prompt de manera mucho más fiable que recordando patrones difusos aprendidos durante el entrenamiento. Esto desplaza la tarea de 'recordar este hecho' a 'leer este hecho', razón por la cual un modelo con tus documentos o resultados web en el contexto responde con mayor precisión sobre detalles específicos, aunque puede seguir malinterpretando o haciendo un uso incorrecto de lo que se le proporciona.