29. Generación de texto con modelos de lenguaje

29.1 Introducción

Hasta ahora estudiamos tareas donde el objetivo principal era comprender, clasificar o representar texto. En este tema cambia el foco: en lugar de analizar una secuencia dada, queremos que el sistema produzca texto nuevo.

La generación de texto es una de las aplicaciones más llamativas de los modelos de lenguaje modernos. Sin embargo, detrás de esa capacidad no hay magia, sino un proceso probabilístico de predicción secuencial.

29.2 ¿Qué significa generar texto?

Generar texto significa construir una secuencia de palabras, subpalabras o tokens de manera progresiva. El modelo recibe un contexto inicial y, a partir de él, estima qué continuación es más probable o más adecuada según su entrenamiento.

Ese contexto inicial puede ser muy breve, como una frase incompleta, o más amplio, como una instrucción, un ejemplo previo o incluso una conversación entera.

29.3 La idea básica: predecir el siguiente token

En muchos modelos generativos, la lógica central es predecir el siguiente token dado el contexto anterior. Después de elegir ese token, el modelo lo incorpora al contexto y repite el proceso.

Así, la generación completa surge paso a paso. Lo que vemos como una frase larga o un párrafo coherente es, en realidad, el resultado de muchas decisiones locales encadenadas.

Un modelo generativo de lenguaje no escribe todo de una vez: va extendiendo la secuencia token por token según probabilidades condicionadas por el contexto.

29.4 Generación autorregresiva

Este proceso se conoce como generación autorregresiva. El texto producido hasta el momento se convierte en la entrada para predecir la parte siguiente.

La palabra clave es auto: el propio resultado parcial de la generación alimenta el paso posterior. Por eso, pequeñas decisiones tempranas pueden influir mucho en el resultado final.

29.5 Del lenguaje probable al texto visible

Internamente, el modelo no “piensa en frases” como una persona. Lo que produce en cada paso es una distribución de probabilidad sobre muchos tokens posibles.

Luego necesitamos un criterio para elegir uno o varios de esos candidatos. Ese criterio de selección es parte esencial del proceso generativo y afecta de forma fuerte la calidad del resultado.

29.6 Decodificación: elegir qué sigue

La etapa que decide qué token tomar a partir de las probabilidades del modelo se llama decodificación. Aunque la red subyacente sea la misma, distintos métodos de decodificación pueden producir textos muy diferentes.

Esto es importante porque la calidad de la generación no depende solo del modelo entrenado, sino también de cómo se usa su salida probabilística.

29.7 Selección greedy

La estrategia más simple es la decodificación greedy: en cada paso se elige el token con mayor probabilidad. Es directa y fácil de implementar, pero puede volver la generación demasiado rígida o repetitiva.

El problema es que una elección localmente óptima no siempre conduce al mejor texto global.

29.8 Beam search

Otra estrategia clásica es beam search. En lugar de conservar una sola continuación, mantiene varias hipótesis parciales y las va comparando a lo largo de la generación.

Esto puede mejorar la calidad en ciertos problemas, especialmente cuando interesa encontrar secuencias globalmente más plausibles. Sin embargo, también puede favorecer salidas muy conservadoras y menos diversas.

29.9 Sampling

Cuando se busca variedad o creatividad controlada, suele usarse sampling. En este caso no siempre se elige el token más probable, sino que se muestrea uno según la distribución generada por el modelo.

Eso introduce aleatoriedad y permite obtener distintas continuaciones para un mismo prompt.

29.10 Temperatura

La temperatura modifica la forma de la distribución antes del muestreo. Una temperatura baja vuelve al modelo más conservador, favoreciendo tokens muy probables. Una temperatura alta reparte más probabilidad entre opciones menos dominantes.

Por eso, ajustar la temperatura es una manera de controlar el equilibrio entre seguridad y diversidad en la generación.

29.11 Top-k sampling

En top-k sampling, el modelo no considera todos los tokens posibles, sino solo los k más probables. Luego muestrea dentro de ese subconjunto.

Esto ayuda a evitar elecciones extremadamente improbables que podrían degradar mucho la calidad del texto generado.

29.12 Top-p o nucleus sampling

Otra estrategia muy usada es top-p o nucleus sampling. Aquí se toma el conjunto mínimo de tokens cuya probabilidad acumulada supera cierto umbral, por ejemplo 0.9, y se muestrea dentro de ese núcleo.

Esta técnica adapta dinámicamente el tamaño del conjunto candidato según la confianza del modelo.

29.13 El prompt como punto de partida

La generación no empieza en el vacío: comienza desde un prompt. El prompt fija el contexto inicial, orienta el estilo, condiciona el contenido y restringe parcialmente el espacio de continuaciones posibles.

Por eso, la calidad del resultado no depende solo del modelo, sino también de cómo se plantea la entrada inicial.

29.14 Continuación versus instrucción

En algunos sistemas, generar texto significa simplemente continuar una secuencia previa. En otros, el prompt adopta forma de instrucción: resumir, explicar, traducir, responder o redactar algo con ciertas condiciones.

Aunque desde afuera parezcan usos distintos, ambos casos descansan sobre la misma lógica básica de predicción condicionada.

29.15 Coherencia local y coherencia global

Un modelo puede generar oraciones muy plausibles a nivel local y aun así fallar en coherencia global. Puede repetir ideas, contradecirse, desviarse del tema o perder estructura argumentativa a medida que el texto crece.

Esto muestra que generar frases correctas no es lo mismo que sostener un discurso largo de alta calidad.

29.16 Repetición y degeneración

Uno de los problemas clásicos en generación automática es la repetición excesiva. El modelo puede entrar en bucles, insistir en las mismas palabras o degradar el contenido cuando la estrategia de decodificación no está bien controlada.

Esto se vuelve más visible en generaciones largas y es una de las razones por las que las técnicas de decodificación son tan importantes.

29.17 Alucinaciones y errores factuales

Otra dificultad es que un modelo puede producir texto fluido y convincente aunque el contenido sea incorrecto. Esto se conoce comúnmente como alucinación en el contexto de modelos de lenguaje.

El problema es especialmente serio cuando se trabaja con información factual, técnica o sensible. La fluidez no garantiza veracidad.

29.18 Generación condicionada

En muchas aplicaciones no se busca texto libre, sino texto condicionado por algún insumo concreto: una noticia a resumir, una pregunta a responder, un documento a traducir o un conjunto de datos a describir.

En esos casos, la generación debe mantenerse alineada con la entrada y no desviarse hacia continuaciones plausibles pero irrelevantes.

29.19 Aplicaciones frecuentes

La generación de texto aparece hoy en muchos escenarios prácticos:

  • Asistentes conversacionales.
  • Redacción asistida.
  • Resumen automático.
  • Traducción.
  • Reformulación o parafraseo.
  • Generación de descripciones, títulos o respuestas.

Varias de estas tareas las veremos con más detalle en los temas siguientes.

29.20 Modelos decoder-only y generación

Muchos de los modelos más conocidos para generación son de tipo decoder-only. Su estructura autorregresiva se adapta naturalmente a la tarea de continuar secuencias token por token.

Esto no significa que sean los únicos capaces de generar, pero sí que representan una de las familias más influyentes en generación abierta de texto.

29.21 Comparación conceptual

Estrategia Idea principal Ventaja Riesgo
Greedy Elegir siempre el token más probable. Simpleza y rapidez. Texto rígido o repetitivo.
Beam search Conservar varias hipótesis simultáneas. Mejor búsqueda global en algunos casos. Salidas demasiado conservadoras.
Sampling Muestrear según probabilidades. Mayor diversidad. Más riesgo de incoherencia.
Top-k / Top-p Restringir el muestreo a candidatos razonables. Buen equilibrio entre control y variedad. Depende mucho de la configuración.

29.22 Ejemplo en Python: generación con un modelo preentrenado

Antes de ejecutar el ejemplo, necesitamos instalar las bibliotecas transformers y torch con el comando pip install transformers torch.

Este ejemplo usa un pipeline de generación de texto. Lo importante no es el modelo específico, sino observar cómo el sistema toma un prompt y produce una continuación automática.

from transformers import pipeline

generador = pipeline("text-generation", model="gpt2")

prompt = "El procesamiento de lenguaje natural permite"

resultado = generador(
    prompt,
    max_length=50,
    num_return_sequences=1,
    do_sample=True,
    temperature=0.8
)

print(resultado[0]["generated_text"])

Este ejemplo deja ver la lógica básica del tema: se ofrece un contexto inicial y el modelo genera una continuación token por token según probabilidades condicionadas por ese contexto.

29.23 Qué debes recordar de este tema

  • La generación de texto suele basarse en predicción autorregresiva del siguiente token.
  • El resultado final depende tanto del modelo como de la estrategia de decodificación.
  • Greedy, beam search y sampling producen comportamientos distintos.
  • La temperatura, top-k y top-p permiten controlar diversidad y estabilidad.
  • La fluidez del texto no garantiza verdad, coherencia global ni ausencia de errores.
  • Muchas aplicaciones modernas de NLP se apoyan en esta capacidad generativa.

29.24 Conclusión

La generación de texto con modelos de lenguaje muestra con claridad hasta qué punto el NLP moderno dejó de limitarse a clasificar o etiquetar. Ahora también puede producir secuencias nuevas a partir de contexto, instrucciones o ejemplos.

Sin embargo, generar texto útil no consiste solo en producir frases plausibles: también exige control, evaluación, alineación con la tarea y atención a errores como repeticiones o alucinaciones.

En el próximo tema estudiaremos el resumen automático de texto, una aplicación concreta donde la generación debe condensar información relevante sin perder fidelidad respecto del contenido original.