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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
La generación de texto aparece hoy en muchos escenarios prácticos:
Varias de estas tareas las veremos con más detalle en los temas siguientes.
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.
| 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. |
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.
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.