Qué es un modelo de lenguaje, explicado sin tecnicismos
Qué es un modelo de lenguaje, cómo predice texto token a token, qué aporta el Transformer, por qué inventa datos y qué significa IA generativa.
Equipo menululo · Equipo fundador de menululo, Cali
Publicado el · 6 min de lectura
En este artículo respondemos:
¿Qué es un modelo de lenguaje y cómo genera texto?
Resumen
- Un modelo de lenguaje es un programa que estima qué texto es más probable que venga a continuación, y genera respuestas repitiendo esa predicción token por token.
- La arquitectura Transformer, publicada en 2017, hizo posible entrenar estos modelos a gran escala gracias al mecanismo de atención.
- Generan texto plausible, no verificado: por eso pueden inventar datos, y por eso conviene darles fuentes y revisar lo que producen.
¿Qué es un modelo de lenguaje?
Un modelo de lenguaje es un sistema que asigna probabilidades a secuencias de texto: dado un fragmento, estima qué es más probable que siga. Cuando esa estimación se usa una y otra vez para elegir la siguiente pieza, el modelo “escribe”.
La idea es antigua. Los primeros modelos contaban qué palabras aparecían juntas en grandes colecciones de texto. En 2003, Yoshua Bengio y colegas publicaron A Neural Probabilistic Language Model, que usaba redes neuronales para aprender una representación numérica de cada palabra y así generalizar a frases que nunca había visto. Los modelos actuales descienden de esa línea, con muchísimos más parámetros y datos.
Un buen modelo mental: el autocompletado del teclado del celular también es un modelo de lenguaje, solo que pequeño y con poca memoria del contexto. Los modelos grandes hacen lo mismo con mucho más contexto y una representación mucho más rica del lenguaje.
¿Qué es un token?
Un token es la unidad de texto con la que trabaja el modelo: puede ser una palabra, un pedazo de palabra o un signo. El modelo no ve letras ni palabras, ve una secuencia de números que representan tokens.
Dividir por palabras completas tiene un problema: el vocabulario sería gigantesco y cualquier palabra nueva quedaría fuera. Por eso se usan métodos de subpalabras. Uno de los más influyentes es la codificación por pares de bytes (BPE), que Sennrich, Haddow y Birch aplicaron a la traducción automática en 2016: se parte de caracteres y se fusionan repetidamente los pares más frecuentes hasta obtener un vocabulario de tamaño fijo.
Un ejemplo de juguete que muestra la idea:
from collections import Counter
def paso_bpe(palabras: list[list[str]]) -> list[list[str]]:
"""Fusiona el par de símbolos contiguos más frecuente."""
pares = Counter()
for p in palabras:
pares.update(zip(p, p[1:]))
if not pares:
return palabras
(a, b), _ = pares.most_common(1)[0]
fusionadas = []
for p in palabras:
nueva, i = [], 0
while i < len(p):
if i + 1 < len(p) and p[i] == a and p[i + 1] == b:
nueva.append(a + b); i += 2
else:
nueva.append(p[i]); i += 1
fusionadas.append(nueva)
return fusionadas
corpus = [list("programar"), list("programa"), list("programado")]
for _ in range(6):
corpus = paso_bpe(corpus)
print(corpus) # los fragmentos comunes, como "program", terminan siendo un solo token
Consecuencia práctica: los límites y costos de uso de estos modelos suelen medirse en tokens, no en palabras, y un mismo texto puede ocupar distinta cantidad de tokens según el idioma y el tokenizador.
¿Cómo genera texto un modelo de lenguaje?
Calcula una probabilidad para cada token posible, elige uno, lo agrega al texto y repite. Este ciclo se llama generación autorregresiva.
El paso de “elegir” tiene su propia perilla. Si siempre se toma el token más probable, las respuestas son predecibles y a veces repetitivas. Si se muestrea con algo de azar, son más variadas. La temperatura controla ese equilibrio: divide las puntuaciones antes de convertirlas en probabilidades.
import math, random
def muestrear(puntuaciones: dict[str, float], temperatura: float = 1.0) -> str:
escaladas = {t: s / temperatura for t, s in puntuaciones.items()}
maximo = max(escaladas.values())
exp = {t: math.exp(s - maximo) for t, s in escaladas.items()} # softmax estable
total = sum(exp.values())
probs = {t: v / total for t, v in exp.items()}
return random.choices(list(probs), weights=list(probs.values()))[0]
siguiente = muestrear({"sol": 3.1, "cielo": 2.4, "mar": 0.7}, temperatura=0.7)
Temperatura baja concentra la probabilidad en los tokens más altos; temperatura alta la reparte. Por eso una misma pregunta puede dar respuestas distintas.
¿Qué es un Transformer y por qué cambió todo?
El Transformer es la arquitectura de red neuronal en la que se basan la mayoría de los modelos de lenguaje modernos; su pieza central es la atención, que permite relacionar cada token con todos los demás del contexto.
Se presentó en 2017 en el artículo Attention Is All You Need de Vaswani y colegas. Antes, los modelos dominantes procesaban el texto en secuencia, un paso tras otro, lo que dificultaba aprovechar el cómputo en paralelo y conectar palabras lejanas. El Transformer prescindió de esa recurrencia y usó solo mecanismos de atención.
La intuición de la atención: en la frase “la ingeniera revisó el código porque ella sospechaba un error”, para interpretar “ella” el modelo necesita mirar hacia “la ingeniera”. La atención calcula, para cada token, cuánto peso darle a cada uno de los otros. Como ese cálculo se puede hacer en paralelo, entrenar con enormes volúmenes de texto se volvió viable.
¿Cómo se entrena un modelo de lenguaje?
Por lo general, en etapas: primero un preentrenamiento masivo para predecir texto y después ajustes para que siga instrucciones y responda de forma útil.
- Preentrenamiento. El modelo lee grandes cantidades de texto y aprende a predecir el siguiente token. No se le enseñan reglas gramaticales ni hechos uno por uno: los patrones quedan codificados en sus parámetros.
- Ajuste supervisado. Se le muestran ejemplos de instrucciones con buenas respuestas escritas por personas.
- Aprendizaje por refuerzo con retroalimentación humana (RLHF). Personas comparan respuestas y un modelo auxiliar aprende esas preferencias para guiar el ajuste. El artículo de Ouyang y colegas (2022) describe este proceso y parte de una observación clave: hacer un modelo más grande no lo vuelve, por sí solo, mejor para seguir la intención del usuario.
¿Qué significa “IA generativa”?
IA generativa es el nombre general para los sistemas que producen contenido nuevo (texto, imágenes, audio, código) en lugar de solo clasificar o predecir una etiqueta.
Un filtro de spam es IA, pero no generativa: decide “spam” o “no spam”. Un modelo de lenguaje que redacta un correo sí lo es. La diferencia no está en que uno sea “más inteligente”, sino en el tipo de salida. Los modelos de lenguaje son la familia más conocida de IA generativa para texto, pero hay otras arquitecturas para imágenes o sonido.
¿Por qué un modelo de lenguaje inventa información?
Porque su objetivo de entrenamiento es producir texto plausible, no texto verificado. Si el patrón más probable es una cita con autor y año, puede generar una cita con esa forma aunque no exista.
La literatura técnica llama a esto alucinación. El estudio de Ji y colegas, publicado en ACM Computing Surveys, revisa sus tipos, causas y formas de medirla y mitigarla. Algunas prácticas que ayudan:
- Darle las fuentes en lugar de pedirle que “recuerde”.
- Pedir que cite el fragmento exacto de donde saca cada afirmación.
- Verificar automáticamente lo verificable: cálculos, fechas, enlaces, código que compile.
- Permitir que diga “no sé” cuando la información no está en el contexto.
¿Qué es RAG?
RAG (Retrieval-Augmented Generation) es una técnica que busca documentos relevantes y se los entrega al modelo junto con la pregunta, para que responda apoyándose en ellos.
La propusieron Lewis y colegas en 2020. Separa dos cosas: qué sabe el sistema (una colección de documentos que se puede actualizar) y cómo redacta (el modelo). Así se puede responder sobre información reciente o privada sin volver a entrenar el modelo, y es más fácil mostrar de dónde salió cada respuesta.
¿Qué es la ventana de contexto?
Es la cantidad máxima de tokens que el modelo puede considerar a la vez: la pregunta, las instrucciones, los documentos entregados y la propia respuesta. Todo lo que queda fuera de esa ventana, el modelo simplemente no lo ve.
Por eso una conversación muy larga puede “olvidar” lo del principio, y por eso en RAG importa elegir bien qué fragmentos se envían: más texto no siempre significa mejores respuestas.
¿Qué conviene recordar al usar uno?
Que es una herramienta probabilística muy capaz para trabajar con lenguaje, no una base de datos ni un oráculo.
- Úsalo para redactar, resumir, traducir, clasificar o explicar, y verifica lo que tenga consecuencias.
- Si necesitas hechos exactos o datos propios, entrégaselos en el contexto.
- Si una respuesta cambia al repetir la pregunta, no es un error: es el muestreo.
Si te interesan otros conceptos de fondo sobre cómo se construye software confiable, puedes seguir con algoritmos de sincronización de datos o con cómo elegir entre desarrollo multiplataforma y nativo.
Preguntas frecuentes
¿Un modelo de lenguaje busca las respuestas en internet?
No por sí solo. Un modelo de lenguaje genera texto a partir de patrones aprendidos durante el entrenamiento y guardados en sus parámetros. Solo consulta información externa si el sistema que lo rodea le entrega documentos o resultados de búsqueda, una técnica conocida como generación aumentada por recuperación o RAG.
¿Qué es un token en inteligencia artificial?
Un token es la unidad mínima de texto con la que trabaja un modelo de lenguaje. Puede ser una palabra completa, un fragmento de palabra o un signo de puntuación. Los modelos dividen el texto en tokens con algoritmos como la codificación por pares de bytes, que permite representar palabras que nunca vieron.
¿Por qué los modelos de lenguaje inventan información?
Porque están entrenados para producir la continuación más plausible del texto, no para verificar hechos. Cuando no tienen el dato, pueden generar una respuesta con apariencia correcta pero falsa. La literatura llama a esto alucinación, y se mitiga dándole fuentes al modelo y verificando sus respuestas.
Sigue leyendo
- Algoritmos 7 min de lectura
Algoritmos de sincronización: LWW, relojes vectoriales y CRDT
Cómo dos copias de un mismo dato vuelven a estar de acuerdo: last-write-wins, relojes de Lamport, relojes vectoriales y CRDT con ejemplos.
- Arquitectura de software 7 min de lectura
Multiplataforma vs nativo: cómo elegir para tu próxima app
Diferencias reales entre desarrollo nativo y multiplataforma: rendimiento, acceso al hardware, velocidad de desarrollo, mantenimiento y PWA.
- Arquitectura de software 7 min de lectura
Colas de reintentos: idempotencia, backoff y dead-letter queues
Cómo funciona una cola de reintentos: idempotencia, backoff exponencial con jitter, dead-letter queues y el patrón outbox para no perder datos.