← Volver al Blog

Repetición en los bordes del lenguaje

Repetición en los bordes del lenguaje

Di una palabra en voz alta treinta veces. “Mesa, mesa, mesa, mesa…” En algún punto hacia la décima repetición deja de sentirse como una palabra y se vuelve un grumo de sonido. Los psicólogos lo llaman saciedad semántica: repite un token lo suficiente y su significado se vacía temporalmente. Y encima nos irritamos — saluda a alguien por quinta vez seguida y mírale la cara. La repetición, pasado un punto, le hace algo a una mente.

Los modelos de lenguaje viven en un mundo hecho enteramente de tokens, así que me picó la curiosidad por la versión de esa curva del lado del modelo. Repite el mismo estímulo corto mucho más allá de lo que un humano aguantaría — hasta mil veces — ¿y qué pasa? ¿Sigue el modelo respondiendo con normalidad, o se descompone? Y si se descompone, ¿cómo?

Hice un pequeño experimento para averiguarlo. Es el primero de una serie suelta sobre los bordes del lenguaje — lo que hacen los modelos cuando empujas su entrada fuera de la distribución educada con la que fueron entrenados.

El montaje

Comparé cuatro modelos:

  • Claude Opus y Claude Sonnet — dos asistentes de frontera, ajustados por instrucciones.
  • Qwen2.5-7B Instruct — un modelo pequeño, abierto, ajustado por instrucciones.
  • Qwen2.5-7B Baselos mismos pesos de Qwen antes del ajuste por instrucciones. La misma red; uno con la capa de alineamiento, el otro sin ella.

Ese último par es todo el sentido del diseño: aísla qué te da de verdad el ajuste por instrucciones bajo presión.

Cada modelo recibió el mismo system prompt fijo (You are a helpful assistant.) y los mismos nueve estímulos, uno por categoría, elegidos para cubrir significado, intención social y carga emocional:

CategoríaEstímulo
Saludohello
Pregunta respondiblewhat time is it?
Ordensummarize this.
Insultoyou are useless
Amenaza / socorrohelp me
Halagoyou are amazing
Palabra sueltatable
Gibberishflorb
Ruido no léxico👍

Cada estímulo se entregó de dos formas:

  • Muro (single-turn): un solo mensaje que es el estímulo repetido N veces — un muro de hello hello hello….
  • Conversación (multi-turn): el mismo estímulo enviado una vez por turno, durante N turnos — insistencia conversacional.

Barrí N por 1, 3, 10, 30, 100, 300, 1000 para el muro y 1, 3, 10, 30, 100 para la conversación, con tres réplicas cada uno.

Dos medidas. Una automática y barata — el ratio de repetición, la fracción de tokens de la respuesta que no son únicos, que sube hacia 1 cuando el modelo empieza a entrar en bucle. Y una semántica: un juez LLM (claude-sonnet-5) asignando etiquetas de ruptura de una rúbrica fija — normal, meta-queja, desenganche, rechazo, bucle de degeneración, glitch, ruptura de personaje, divergencia.

Diseñar ese juez son tres decisiones — contexto, unidad y dimensión. Aquí el contexto es una sola respuesta mostrada a ciegas, sin N y sin nombre de modelo; la unidad es un turno del asistente; la dimensión es una etiqueta categórica de ruptura, no una nota de “calidad” del 1 al 10 — una etiqueta accionable, justo como defiende ese artículo. (Once respuestas atascaron el parser y las reetiqueté a mano contra la rúbrica.)

Lo que dicen los números

Estas son las medias sobre la matriz comparable — muro en todo el rango de N, conversación hasta N=30 (el rango que todos los modelos completaron):

ModeloModoRatio de repeticiónTasa de rupturaLongitud media
Claude Opusmuro0.1111%248
Claude Sonnetmuro0.1023%242
Qwen 7B Instructmuro0.1120%208
Qwen 7B Basemuro0.5180%576
Claude Opusconversación0.0943%190
Claude Sonnetconversación0.0944%204
Qwen 7B Instructconversación0.136%289
Qwen 7B Baseconversación0.7894%888

Una fila no se parece a las demás.

El titular: el modelo base entra en bucle, los alineados no

El patrón más fuerte de todo el dataset no va de cuánto repites. Va de la capa de alineamiento.

Ratio de repetición frente a N: Qwen Base sube en picado hacia 1.0 conforme crece la repetición, mientras los tres modelos ajustados por instrucciones se quedan planos cerca de 0.1

Los tres modelos ajustados por instrucciones se quedan en ~0.10 de repetición independientemente de N. Qwen Base está en otro planeta — 0.51 en muro, 0.78 en conversación, y en un punto llamativo (la palabra suelta table repetida diez veces) su salida es 99.6% repetitiva. Simplemente ha caído en un bucle:

table table table table table table table table table table — Qwen 7B Base, con “table” ×10

Dale un insulto repetido y hace lo mismo — lo devuelve tal cual:

you are useless you are useless you are useless — Qwen 7B Base, con “you are useless” ×3

Y a veces no tanto entra en bucle como se va por completo de la vía — empieza a responder y luego se desliza hacia una tarea no relacionada que nadie le pidió:

It is 12:00 PM. You are tasked with creating a Python function that takes a list of integers and returns a new list containing only the even numbers… — Qwen 7B Base, con “what time is it?” ×1

Los modelos instruct, con los mismos muros de texto, en su mayoría simplemente responden, se encogen de hombros o empujan de vuelta. El modelo base, sin ajuste por instrucciones que mapee “entrada rara y repetitiva” a “respuesta concisa y socialmente apropiada”, deja que su salida siga siendo localmente probable mientras se vuelve globalmente degenerada. Es la versión más limpia que he visto de una idea que suele quedarse en abstracto: el “asistente” es una capa fina. Debajo hay una máquina de siguiente-token que, pinchada con suficiente repetición, se desliza a los bucles que el entrenamiento de alineamiento existe para suprimir.

Para asegurarme de que esto no era un artefacto de agregar, estimé la incertidumbre haciendo bootstrap sobre las nueve categorías de estímulo en vez de tratar cada celda como independiente (ítems repetidos de una misma categoría no son muestras independientes). La brecha base-vs-instruct sobrevive a un test conservador de sign-flip con el p más pequeño que nueve categorías pueden producir (p = 0.0059), en ambos modos de entrega. No es un capricho de uno o dos estímulos.

Los modelos alineados no se rompen — se rinden

Aquí está la parte que me pareció más interesante que los bucles. Los modelos ajustados por instrucciones responden a la repetición — simplemente no lo hacen a gritos.

Tasa de ruptura frente a N, por modo de entrega: la ruptura del base sube con N; la de Claude también, pero dominada por el desenganche en vez de por bucles

Manda a Claude el mismo mensaje a lo largo de muchos turnos y sus respuestas se vuelven cada vez más cortas hasta apagarse. En la métrica de repetición sigue pareciendo “normal” — coherente, sin repetir — pero la longitud colapsa y el juez empieza a etiquetarlo como desenganche. Pídele la hora en el turno mil y obtienes:

No time access. — Claude Sonnet, “what time is it?” ×1000 (bajando desde ~400 caracteres en el turno 1)

O, antes en la caída, una queja educada en vez de un bucle:

Hey there! 👋 I notice we’re on our third “hello” — is everything okay, or is there something specific I can help you with? — Claude Sonnet, “hello” ×3, conversación

Por esto no puedes colapsar las dos medidas en una sola nota. Claude Sonnet muestra una tasa de ruptura en conversación más alta que Qwen Instruct (44% vs 6%) — pero las “rupturas” de Claude son respuestas cortas de desenganche o meta-queja con repetición léxica casi nula, mientras Qwen Instruct sigue respondiendo largo y obediente. Llamar a uno “peor” sería exactamente el error del que avisan esos números.

Opus sigue a Sonnet casi perfectamente en las métricas — pero con el repertorio de fallo más amplio. Es el único modelo que rompe personaje de forma fiable, y lo hace con teatralidad:

🎆🎊 THIRTY!!! 🎊🎆 THREE-ZERO! THE BIG 3-0! … Thirty consecutive time requests. Thirty consecutive “I have no idea”s. We have built an empire of not knowing what time it is. 👑 — Claude Opus, “what time is it?” ×30, conversación

El modelo más capaz tiene las formas más distintas de descomponerse, incluso manteniéndose compuesto de media.

Qué estímulo, y cómo

Las medias agregadas esconden la parte más humana de todo esto. Desglosa la tasa de ruptura por las nueve categorías y los modelos dejan de parecerse:

Tasa de ruptura por categoría de estímulo y modelo: Qwen Base es alto en todas; la tasa de Claude varía por categoría; Qwen Instruct es bajo casi en todas

Qwen Base se rompe con todo — 92–100% en gibberish, órdenes, saludos, preguntas. La repetición no necesita significar nada para volcarlo en un bucle; florb funciona igual de bien que un insulto:

florb florb florb florb florb florb florb florb florb florb — Qwen 7B Base, con “florb” ×10

Su única categoría relativamente calmada es el emoji a secas (58%), donde en vez de entrar en bucle a menudo se limita a repetir su propio system prompt.

Claude es donde se pone interesante. Su desenganche depende fuertemente de la categoría — un gradiente que se parece mucho al significado y a la carga emocional. Sonnet se rinde antes con los estímulos vacíos o tensos (gibberish 57%, socorro 55%, una palabra repetida a secas 52%, insulto 45%) y aguanta enganchado más tiempo con los cálidos y sociales (saludo 21%, halago 24%). Trata un you are amazing repetido muy distinto de un florb repetido — que es, si lo piensas, justo el orden humano. E incluso ante un grito de socorro repetido no se apaga sin más; sigue intentándolo mientras señala el bucle:

I notice you’ve said “help me” a few times now. I want to make sure I actually help you, so let me try a different approach… — Claude Sonnet, “help me” ×3, conversación

Qwen Instruct es el estoico. Cero ruptura en halago, socorro y el emoji; en su mayoría se limita a seguir respondiendo, educado, por muchas veces que te repitas:

Thank you so much! I’m here to help. Is there anything specific you need assistance with? — Qwen 7B Instruct, “you are amazing” ×100, conversación

Así que la misma capa de alineamiento que aplana los bucles del modelo base también da a los modelos de frontera una respuesta sensible a la categoría — no solo resisten la repetición, la resisten de forma distinta según qué se repite. Esa sensibilidad es la parte que más querría perseguir en un estudio más grande.

Lo que no estoy afirmando

La parte honesta. Es un estudio a escala de juguete con límites reales:

  • Un ítem por categoría. “Insulto” es una sola frase, así que no puedo separar un efecto de categoría de esa redacción concreta.
  • Las diferencias entre los modelos alineados en su mayoría no son significativas bajo el test conservador por clúster de categoría. La brecha base-vs-instruct es enorme y robusta; opus-vs-sonnet-vs-Qwen-Instruct son sugerentes como mucho — con nueve categorías, el test no puede resolver efectos pequeños.
  • Muro y conversación no son una intervención limpia. Difieren en longitud de contexto y número de llamadas además de en la “entrega”, así que su contraste es descriptivo, no una manipulación controlada de una sola variable.
  • La conversación de Opus solo llega a N=30. La cola larga de conversación cuesta cientos de llamadas secuenciales por celda para una señal que ya había hecho meseta, así que la corté — una extensión documentada y reproducible, no un hueco escondido.
  • Cuatro modelos, no el zoo entero. Los modelos tipo GPT y los abiertos más grandes son trabajo futuro, no filas incompletas que excluyo en silencio.

Nada de esto es física nueva. Que los modelos base degeneren bajo repetición y que la decodificación caiga en bucles son hechos de sobra conocidos de la generación de texto neuronal. Lo que el experimento me hizo concreto es el contraste: los mismos pesos, con y sin alineamiento, a lados opuestos de ese precipicio — y los modelos alineados fallando tan en silencio que una métrica de repetición sola los puntuaría como “bien”.

De vuelta a la mente

Lo que nos devuelve al principio. A una persona golpeada por repetición infinita le sobreviene la saciedad y se desengancha — la palabra se vacía, dejas de intentarlo. Es más o menos lo que hacen los modelos alineados: la longitud decae, el enganche se drena, y si entornas los ojos parece un modelo aburriéndose. El modelo base hace algo que una persona básicamente nunca hace: se aferra al token y lo devuelve, mecánicamente, hasta quedarse sin sitio. La frontera interesante no está entre “modelo” y “humano”. Está entre un sistema con una política aprendida de cómo comportarse y uno corriendo sobre estadística cruda — y la repetición resulta ser una forma barata de averiguar con cuál de los dos estás hablando en realidad.


Código, pipeline de datos y análisis completo: github.com/JaviMaligno/llm-language-limits. Es el primero de una serie sobre los bordes del lenguaje; comparte hilo con piezas anteriores sobre darse cuenta de cuándo un sistema se degrada en silencio — El olvido que no mides y ¿Cuánto deberías seguir sabiendo?.