21. Modelos de lenguaje básicos

21.1 Introducción

Hasta ahora hemos trabajado con muchas ideas del NLP: representación de texto, clasificación, análisis de sentimiento y herramientas del ecosistema. En este punto aparece un concepto fundamental para entender gran parte del NLP moderno: el modelo de lenguaje.

Un modelo de lenguaje intenta capturar regularidades del texto para estimar qué secuencias son más probables que otras. Dicho de forma intuitiva, aprende cómo suelen organizarse las palabras en un idioma o en un dominio específico.

Esta idea es mucho más importante de lo que parece, porque detrás de tareas como autocompletado, generación de texto, traducción automática o asistentes conversacionales suele haber alguna forma de modelado del lenguaje.

21.2 ¿Qué es un modelo de lenguaje?

Un modelo de lenguaje es un sistema que asigna una probabilidad a una secuencia de palabras o tokens. En otras palabras, estima qué tan plausible es una secuencia dentro de un idioma.

Por ejemplo, para un hablante de español, la frase "hoy hace mucho calor" suena natural, mientras que "hoy calor mucho hace" suena menos probable en el orden habitual del idioma.

El modelo no necesita "entender" el texto como lo hace una persona. Su objetivo básico es aprender patrones estadísticos y estructurales que le permitan predecir continuaciones probables.

21.3 La idea de predecir la próxima palabra

Una forma muy común de explicar un modelo de lenguaje es esta: dado un fragmento de texto, el sistema intenta predecir cuál podría ser el siguiente token.

Si la secuencia es "mañana voy a la", algunas continuaciones posibles podrían ser "escuela", "oficina" o "playa". El modelo asignará mayor probabilidad a unas opciones que a otras según lo aprendido de los datos.

Esta tarea de predicción parece simple, pero obliga al sistema a captar regularidades de sintaxis, semántica, contexto y coocurrencia.

21.4 ¿Por qué esto es tan útil?

Porque si un sistema puede predecir razonablemente bien cómo continúa un texto, entonces ha capturado información importante sobre el lenguaje. Esa capacidad puede reutilizarse para muchas tareas.

  • Autocompletar palabras o frases.
  • Corregir errores de escritura.
  • Generar texto.
  • Ayudar a traducir.
  • Responder preguntas o seguir instrucciones.

En otras palabras, modelar el lenguaje es una capacidad de base sobre la cual pueden construirse sistemas más complejos.

21.5 Secuencias y contexto

El lenguaje está formado por secuencias. El significado de una palabra depende muchas veces de las palabras que la rodean. Por eso, un modelo de lenguaje no puede tratar cada token como una pieza completamente aislada.

La palabra "banco", por ejemplo, no significa lo mismo en "me senté en el banco" que en "fui al banco a retirar dinero". El contexto cambia la interpretación.

Modelar lenguaje implica, entonces, representar dependencias entre elementos de una secuencia.

21.6 Probabilidad sobre secuencias

Formalmente, un modelo de lenguaje asigna una probabilidad a una secuencia completa:

P(w1, w2, w3, ..., wn)

Esto significa que el modelo intenta estimar cuán probable es que aparezca esa sucesión de tokens en el lenguaje.

En la práctica, esta probabilidad suele descomponerse como una cadena de probabilidades condicionales, donde cada palabra depende de las anteriores. Esa idea permite convertir el problema global en una serie de pasos locales de predicción.

21.7 Intuición de probabilidad condicional

Supongamos que queremos estimar qué palabra sigue después de "el gato". Un modelo de lenguaje puede asignar valores altos a continuaciones como "duerme", "come" o "corre", y valores bajos a secuencias menos naturales.

No se trata de certeza absoluta, sino de distribución de probabilidad. El sistema no dice una única continuación posible, sino cuáles son más plausibles.

Por eso, cuando hablamos de generación de texto, en realidad hablamos de ir tomando decisiones probabilísticas paso a paso.

21.8 Un ejemplo simple

Imaginemos que entrenamos un sistema con muchos textos en español. Si aparece la secuencia "Buenos", es muy probable que la siguiente palabra sea "Aires" en ciertos contextos. Si aparece "feliz", podrían seguir palabras como "cumpleaños", "de" o "por" según el caso.

El modelo aprende estas asociaciones observando grandes cantidades de ejemplos. No memoriza solo frases completas; también aprende patrones de continuación y combinaciones frecuentes.

21.9 Los primeros modelos: n-gramas

Antes del auge del Deep Learning, una forma clásica de construir modelos de lenguaje era mediante n-gramas.

Un n-grama es una secuencia de n elementos consecutivos. Por ejemplo:

  • Unigrama: una sola palabra.
  • Bigrama: dos palabras consecutivas.
  • Trigrama: tres palabras consecutivas.

La idea básica era estimar la probabilidad de una palabra usando solo una pequeña ventana de palabras anteriores.

21.10 Hipótesis de Markov simplificada

Los modelos n-grama se apoyan en una simplificación importante: asumir que la próxima palabra depende solo de un número limitado de palabras previas y no de toda la historia del texto.

Por ejemplo, en un modelo de trigramas, la palabra siguiente se estima usando solo las dos anteriores. Esto hace el problema más manejable, pero también introduce una limitación clara: el contexto queda truncado.

Los n-gramas fueron fundamentales porque permitieron construir modelos de lenguaje útiles con herramientas estadísticas relativamente simples, aunque a costa de reducir mucho el contexto.

21.11 Ventajas de los n-gramas

A pesar de sus limitaciones, los modelos basados en n-gramas tuvieron mucho éxito histórico por varias razones:

  • Son conceptualmente fáciles de entender.
  • Se apoyan en conteos y probabilidades sencillas.
  • Funcionan razonablemente bien en tareas acotadas.
  • Fueron muy útiles en reconocimiento de voz y autocompletado temprano.

Además, permitieron estudiar el lenguaje desde una perspectiva probabilística muy clara.

21.12 Limitaciones de los n-gramas

El problema principal de los n-gramas es que miran solo un contexto corto. Esto hace difícil capturar dependencias largas o relaciones más profundas entre palabras distantes.

También aparece el problema de la escasez de datos. Muchas secuencias posibles no aparecen nunca en el corpus, incluso si son perfectamente válidas. Como resultado, el modelo puede asignar probabilidades nulas o poco realistas a continuaciones plausibles.

Además, a medida que aumenta n, la cantidad de combinaciones crece mucho y el modelo se vuelve más costoso y disperso.

21.13 Suavizado

Para enfrentar el problema de secuencias no observadas, los modelos clásicos introdujeron técnicas de suavizado. La idea general es no confiar ciegamente en los conteos exactos y reservar algo de probabilidad para eventos raros o no vistos.

No entraremos aquí en todas las variantes matemáticas, pero el concepto es importante: cuando modelamos lenguaje, no basta con contar; también debemos generalizar.

21.14 Del conteo a la representación distribuida

Con el tiempo quedó claro que contar secuencias locales no era suficiente para capturar la riqueza del lenguaje. Esto impulsó la transición hacia modelos neuronales que usan representaciones densas y continuas.

En lugar de trabajar solo con conteos explícitos de combinaciones de palabras, estos modelos aprenden vectores y parámetros capaces de generalizar mejor entre contextos parecidos.

Este cambio fue uno de los grandes saltos en la historia del NLP moderno.

21.15 Modelos neuronales de lenguaje

Los modelos neuronales de lenguaje reemplazaron progresivamente a los n-gramas en muchos escenarios. Su ventaja principal es que pueden aprender relaciones más ricas entre palabras y contextos.

Gracias a los embeddings y a arquitecturas más expresivas, dos contextos similares ya no quedan completamente desconectados solo porque no comparten exactamente las mismas secuencias observadas en el corpus.

Esto permite una mejor generalización, especialmente cuando los datos son grandes y variados.

21.16 Contexto corto y contexto largo

Una de las preguntas centrales en modelado del lenguaje es cuánto contexto puede usar el sistema para predecir el siguiente token. Los modelos simples usan pocas palabras previas. Los modelos más modernos intentan aprovechar fragmentos mucho más largos.

Esto es importante porque muchas veces una decisión lingüística depende de información que apareció varias palabras, oraciones o incluso párrafos antes.

En consecuencia, la capacidad de mantener y explotar contexto es una diferencia clave entre generaciones de modelos.

21.17 Entrenar con grandes corpus

Un modelo de lenguaje aprende observando enormes cantidades de texto. Cuanto más amplio y variado sea el corpus, más patrones podrá captar sobre combinaciones frecuentes, estilo, estructura y vocabulario.

Sin embargo, más datos no garantizan automáticamente mejor comportamiento. También importa la calidad del corpus, los sesgos presentes, el dominio de los textos y los objetivos del entrenamiento.

Un modelo entrenado solo con un tipo de texto aprenderá muy bien ese estilo, pero puede comportarse peor fuera de ese dominio.

21.18 Perplejidad e intuición de evaluación

Una métrica clásica para evaluar modelos de lenguaje es la perplejidad. Intuitivamente, mide cuán "sorprendido" queda el modelo frente a un texto real.

Si el modelo asigna alta probabilidad a las continuaciones correctas, su perplejidad tiende a ser menor. Si se equivoca mucho o reparte mal la probabilidad, la perplejidad aumenta.

No es la única forma de evaluar, pero sirve para entender que aquí no medimos solo clasificación correcta o incorrecta, sino calidad probabilística sobre secuencias.

21.19 Qué pueden y qué no pueden hacer

Un modelo de lenguaje puede aprender regularidades impresionantes del texto y producir continuaciones plausibles. Pero eso no significa que comprenda el mundo de manera humana, ni que siempre razone correctamente.

Su fortaleza está en modelar patrones de secuencia. A partir de ahí pueden emerger capacidades muy útiles, pero también errores, incoherencias, alucinaciones o sesgos si el sistema se usa sin cuidado.

21.20 Comparación general

Familia Idea principal Limitación
N-gramas Conteo de secuencias cortas. Contexto muy limitado.
Neuronales tempranos Embeddings y generalización distribuida. Mayor complejidad de entrenamiento.
Modelos modernos Uso de contexto más amplio y arquitecturas más potentes. Mayor costo computacional y desafíos de control.

21.21 Relación con el resto del NLP

Los modelos de lenguaje no son una curiosidad aislada. Hoy ocupan un lugar central en el NLP porque permiten preentrenar sistemas sobre grandes corpus y luego adaptarlos a múltiples tareas.

Clasificación, resumen, traducción, extracción de información y generación de texto pueden aprovechar lo aprendido por un modelo de lenguaje durante su entrenamiento general.

Por eso, comprender esta idea es un paso clave para entender la evolución reciente del área.

21.22 Ejemplo en Python: predecir la próxima palabra con bigramas

Este ejemplo construye un modelo de lenguaje muy simple con conteos de bigramas. No es moderno, pero es una excelente forma de ver la intuición probabilística del tema en funcionamiento.

from collections import defaultdict, Counter

corpus = [
    "el modelo aprende del texto",
    "el modelo genera texto",
    "el lenguaje natural contiene ambiguedad",
    "el modelo de lenguaje predice palabras"
]

bigramas = defaultdict(Counter)

for frase in corpus:
    tokens = ["<ini>"] + frase.split() + ["<fin>"]
    for actual, siguiente in zip(tokens, tokens[1:]):
        bigramas[actual][siguiente] += 1

def sugerir_siguientes(palabra, topn=3):
    conteos = bigramas[palabra]
    total = sum(conteos.values())
    for token, frecuencia in conteos.most_common(topn):
        print(token, round(frecuencia / total, 3))

sugerir_siguientes("modelo")
sugerir_siguientes("lenguaje")

La gracia de este script es que convierte la idea abstracta de “asignar probabilidad a secuencias” en algo completamente visible. Aunque sea un modelo muy básico, permite experimentar con predicción del siguiente token.

21.23 Qué debes recordar de este tema

  • Un modelo de lenguaje asigna probabilidad a secuencias de texto.
  • Una formulación común consiste en predecir el siguiente token a partir del contexto previo.
  • Los n-gramas fueron la forma clásica de modelado probabilístico del lenguaje.
  • Su principal limitación es el contexto corto y la escasez de datos para secuencias raras.
  • Los modelos neuronales mejoraron la generalización mediante representaciones distribuidas.
  • Modelar lenguaje es una capacidad base para muchas tareas de NLP.

21.24 Conclusión

Los modelos de lenguaje básicos nos muestran una idea poderosa: para trabajar con texto no siempre hace falta empezar por una tarea final como clasificación o traducción. A veces conviene primero aprender la estructura general del lenguaje y usar ese conocimiento como fundamento.

Históricamente, esta línea comenzó con enfoques probabilísticos simples como los n-gramas y evolucionó hacia modelos neuronales cada vez más expresivos.