El problema: los modelos de lenguaje se quedan en bucles
Los modelos de lenguaje autorregresivos generan texto un token a la vez, basándose en las palabras ya escritas. Este proceso casi inevitablemente conduce a repeticiones degenerativas: el modelo comienza a reproducir infinitamente la misma frase o cadena de oraciones. Esto ocurre con especial frecuencia en textos cortos, razonamientos matemáticos o cadenas lógicas, donde el modelo se «atasca» en un bucle local.
Los métodos estándar para combatirlo —la penalización por frecuencia (frequency penalty) y la penalización por repetición (repetition penalty)— solo funcionan parcialmente. Corrigen la distribución de probabilidades en la etapa de decodificación, pero no tienen en cuenta la estructura de los patrones repetitivos. Como resultado, incluso en los sistemas modernos, la frecuencia de caída en repetición en bucle alcanza varios puntos porcentuales: esto es difícil de notar en respuestas cortas, pero crítico para razonamientos largos.

No basta con penalizar la frecuencia: se necesita teoría de la información
La penalización por frecuencia reduce la probabilidad de los tokens que ya han aparecido en el texto, y la penalización por repetición reduce adicionalmente el peso de las secuencias ya emitidas. Pero ambos enfoques utilizan heurísticas que no tienen relación con cómo el modelo entiende la estructura del texto. Pueden suprimir repeticiones útiles (por ejemplo, repetir una conclusión importante) y, al mismo tiempo, dejar pasar patrones de bucle largos compuestos por palabras diferentes.
Una visión más fundamentada la ofrece la teoría de la compresión de datos. Si una secuencia se comprime bien con un algoritmo como LZ77, significa que contiene poca información nueva y, desde el punto de vista de la predicción, es «predecible» y peligrosa para la generación. Es lógico penalizar al modelo por elegir tales patrones, y no simplemente por repetir palabras sueltas.
Qué es LZ77 y cómo se construye la penalización basada en él
LZ77 es uno de los algoritmos clásicos de compresión sin pérdidas. Reemplaza fragmentos repetidos por referencias a apariciones anteriores: en lugar de escribir la cadena completa, el algoritmo almacena el desplazamiento y la longitud. Como resultado, cada porción de texto obtiene una «longitud de código»: el número mínimo de bits necesario para representarla. Cuanto más predecible es el fragmento, más corto es su código.
Los autores de LZ penalty propusieron usar esta longitud como medida de redundancia directamente durante la decodificación. En cada paso, el modelo calcula las probabilidades de todas las continuaciones posibles, y cada una de ellas se evalúa adicionalmente desde el punto de vista de cuánto aumenta la compresibilidad de toda la secuencia generada. Las continuaciones que conducen a estructuras repetitivas largas reciben una penalización aumentada.
Es interesante que este enfoque surge naturalmente de la dualidad entre predicción y compresión: un buen compresor es a la vez un buen predictor, y viceversa. La decodificación con LZ penalty puede interpretarse como un muestreo de la distribución residual, de la que ya se ha eliminado la información que el compresor predice con éxito. En otras palabras, el modelo se ve obligado a producir no las continuaciones más «fáciles» para él, sino aquellas que contienen información realmente nueva.

Implementación práctica: la penalización se añade antes de elegir el token
A nivel de código, LZ penalty se integra fácilmente en el proceso de decodificación voraz. Tras cada paso, la hipótesis actual de continuación se comprime con un codificador tipo LZ77, y la diferencia en la longitud del código se tiene en cuenta en el logaritmo de la probabilidad. Es importante que la penalización no requiere entrenamiento ni ajuste del modelo: funciona en la etapa de inferencia.
Esto hace que el método sea universal: puede aplicarse a cualquier modelo autorregresivo sin cambiar la arquitectura ni tocar los pesos.
Resultados: ausencia de repeticiones degenerativas con temperatura cero
El principal resultado que declaran los autores es que LZ penalty permite a los modelos abiertos modernos razonar con decodificación voraz (temperatura cero) sin pérdida de capacidades. Normalmente, con temperatura cero el modelo siempre elige el token más probable, lo que hace que el bucle sea especialmente probable. Por eso en la práctica se suele usar muestreo aleatorio con temperatura superior a cero y penalizaciones, pero esto introduce aleatoriedad innecesaria en la generación y puede reducir la calidad.
Con LZ penalty desaparece la necesidad de tales artificios. La decodificación voraz deja de ser una fuente de repeticiones degenerativas y el modelo permanece concentrado en resolver la tarea. Además, las capacidades del modelo para el razonamiento lógico, las matemáticas y la programación no se deterioran: la penalización actúa solo contra la redundancia, sin afectar la parte semántica de la generación.
A modo de comparación: en los experimentos, los mismos modelos con penalización por frecuencia y penalización por repetición mostraron en varios casos hasta un 4% de caídas en repeticiones en bucle. Puede parecer un número pequeño, pero para respuestas largas o cadenas de razonamiento, cada una de esas caídas devalúa por completo el resultado.

Por qué LZ penalty funciona mejor que las heurísticas
La diferencia clave con respecto a la penalización por frecuencia o por repetición radica en su capacidad de reaccionar a la estructura, y no a tokens individuales. Las heurísticas, por lo general, penalizan todas las repeticiones por igual, independientemente de la longitud del patrón. LZ penalty es sensible a la longitud de la secuencia repetida: cuanto más larga y exacta es la repetición, mayor es la penalización. Las repeticiones cortas que no forman un patrón se penalizan débilmente o no se penalizan en absoluto.
Esto es importante para el lenguaje natural. El modelo puede repetir justificadamente la palabra «por lo tanto» en diferentes partes del razonamiento, y esto no debe bloquearse. Pero si el modelo comienza a generar una y otra vez la misma cadena de argumentos, LZ penalty detectará la reducción de la longitud del código y detendrá el proceso.
Como resultado, LZ penalty elimina el dilema entre calidad y seguridad del texto: no hay que elegir entre «razonable pero en bucle» y «diverso pero incoherente».
Conclusiones prácticas
Para desarrolladores e investigadores, LZ penalty es una herramienta lista para usar que no requiere modificar el modelo. Basta con añadirla al pipeline de inferencia para obtener una generación estable sin repeticiones degenerativas. Esto es especialmente relevante para los modelos de razonamiento de código abierto que se utilizan en escenarios con respuestas largas y altos requisitos de determinismo.
Queda abierta la cuestión de la eficiencia: la compresión en cada paso requiere cálculos adicionales. Los autores no abordan la complejidad en el trabajo presentado, pero cabe esperar que en el futuro aparezcan versiones optimizadas que funcionen en GPU y se integren en las bibliotecas de decodificación más populares.
Limitaciones y notas
En el artículo se mencionan pequeñas correcciones posteriores a la publicación relacionadas con imprecisiones en los cálculos; esto habla de la atención de los autores a los detalles y no afecta a la esencia del enfoque propuesto. Como cualquier método, LZ penalty no es una bala de plata: resuelve el problema concreto de las repeticiones, pero no aborda, por ejemplo, la veracidad factual ni la coherencia lógica de la generación.
Sin embargo, la propia idea de usar la longitud del código de compresión como medida de la informatividad de la continuación resulta elegante y prometedora. Conecta la teoría de la información con la práctica de la generación de textos y ofrece lo que las simples heurísticas no pueden: comprender cuándo una repetición es ruido y cuándo es una señal de degradación del modelo.



