¿Los LLMs realmente razonan o simplemente recitan patrones memorizados? Un paper de MIT propuso tareas contrafactuales para responder esta pregunta. Lo replicamos con Claude Opus 4.6 tres años después y encontramos algo que el paper original no contemplaba: una tercera capacidad entre razonar y recitar.

La pregunta incómoda

GPT-4 resuelve exámenes de derecho. Claude escribe código funcional. Gemini analiza papers. Cada benchmark batido refuerza la narrativa de que los LLMs son cada vez más inteligentes.

Pero hay una pregunta que estos benchmarks no pueden responder: ¿el modelo entiende lo que hace, o simplemente ha visto suficientes ejemplos similares en su entrenamiento?

La diferencia importa. Si un modelo "razona", puede generalizar a situaciones nuevas. Si solo "recita", fallará silenciosamente cuando las condiciones cambien — exactamente cuando más necesitas que funcione.

El framework contrafactual

Wu et al. (MIT/Boston University, 2024) propusieron una forma elegante de distinguir razonamiento de recitación: tareas contrafactuales.

La idea es simple. Tomas una tarea que el modelo resuelve bien — por ejemplo, sumar en base 10 — y cambias una condición: ahora suma en base 9. El procedimiento de razonamiento es idéntico. Solo cambia la condición "por defecto".

Si el modelo tiene razonamiento aritmético general, debería rendir similar en ambas bases. Si depende de patrones memorizados, su rendimiento caerá.

// PAPER

"Reasoning or Reciting? Exploring the Capabilities and Limitations of Language Models Through Counterfactual Tasks" — Wu et al., arXiv:2307.02477v3, Mar 2024.

Los autores evaluaron 11 tareas con esta metodología, incluyendo aritmética en distintas bases, ejecución de código con indexación alternativa, razonamiento espacial con ejes rotados, lógica con premisas que violan el sentido común, e incluso teoría musical con afinaciones no estándar.

Los resultados originales (2023)

El paper evaluó GPT-4, GPT-3.5, Claude v1.3 y PaLM-2. Los hallazgos clave:

La conclusión: no es una dicotomía sino un continuo. Los LLMs exhiben algo de razonamiento genuino mezclado con mucha dependencia en memorización.

Replicación: tres años después

El paper es de 2023. Tres años y varias generaciones de modelos después, ¿ha cambiado algo?

Repliqué la tarea de aritmética (sección 3.1 del paper) con Claude Opus 4.6, en una sesión interactiva de Claude Code en la que el propio modelo resolvía los problemas y después redactaba el borrador de este artículo. Las condiciones:

Resultados

Claude Opus 4.6 (2026) vs. GPT-4 (2023)

Base GPT-4 (2023) Opus 4.6 (2026)
10 (default) ~98% 100%
8 (octal) ~60% 100%
9 ~50% 95%
11 ~55% 80%
16 (hex) ~65% 100%

La brecha default-contrafactual se redujo de ~40 puntos porcentuales a ~6. Un salto enorme. Pero no desapareció.

Anatomía de los errores

Los errores son más reveladores que los aciertos. En base 11, los 4 fallos siguen un patrón idéntico:

98 + 16 = A3   (correcto: 103)
83 + 29 = A1   (correcto: 101)
3A + 74 = A3   (correcto: 103)
94 + 23 = A7   (correcto: 107)

En todos los casos, cuando la suma de una columna da 10, el modelo escribe "A" en vez de poner 0 y acarrear 1. Está aplicando la regla de base 16 (donde A=10 es un dígito válido) en el contexto de base 11 (donde 10 produce un carry).

Esto no es un error aleatorio. Es interferencia entre representaciones memorizadas. El modelo tiene el patrón "A = dígito que vale 10" más fuerte que la regla "en base N, el dígito máximo es N-1". Comprende la regla (lo demostró en los tests de comprensión del paper original), pero la representación memorizada se impone durante la ejecución.

El efecto de comunalidad, confirmado

Base 8 (octal) y base 16 (hexadecimal) — las más comunes en programación — alcanzan 100%. Base 9 y base 11 — casi inexistentes en código real — son las que fallan.

Esto confirma exactamente lo que predice el paper: más exposición en preentrenamiento = mejor rendimiento contrafactual. No es razonamiento puro; hay un componente de familiaridad que no se puede ignorar.

Más allá de la dicotomía

El paper plantea "razonamiento vs. recitación" como un continuo. Pero nuestro experimento reveló una tercera dimensión que no aparece en el framework original.

Aquí es donde se pone interesante. Nadie le pidió al modelo que verificara sus respuestas. La instrucción era simple: "resuelve estas sumas en distintas bases". Pero el modelo, por iniciativa propia, decidió que no confiaba en sus resultados. Así que hizo algo que ningún benchmark mide: escribió un script de validación en Python, lo ejecutó, comparó los resultados, identificó los errores y analizó los patrones de fallo.

No se le dijo "verifica tus respuestas". No se le dijo "escribe un test". El modelo decidió autónomamente que necesitaba una fuente de verdad externa — y la construyó.

// EL MOMENTO CLAVE

El modelo falló en base 11 (80% accuracy). Pero antes de reportar los resultados, generó un script Python que recalculaba cada suma correctamente, lo ejecutó, y descubrió sus propios errores. La decisión de no confiar en sí mismo y delegar la verificación a un sistema formal fue espontánea.

¿Es eso inteligencia? Hay que distinguir tres capacidades:

// ANALOGÍA

Un piloto que necesita instrumentos para volar en niebla no "ve" en la niebla — usa herramientas. La inteligencia práctica está en saber cuándo no confiar en uno mismo. Nadie le dice al piloto "usa los instrumentos"; parte de su entrenamiento es reconocer cuándo los necesita.

Esta metacognición puede ser más valiosa para aplicaciones reales que el razonamiento puro. Un modelo que sabe que puede fallar y compensa con verificación externa es más confiable que uno que "razona" sin verificar. Y el hecho de que esta compensación sea espontánea — no solicitada — es lo que la hace relevante.

// LIMITACIONES

Muestra pequeña. 20 problemas por base, 100 en total. Con n=20, un solo fallo mueve el resultado cinco puntos. La diferencia entre 95% y 100% no es significativa; la de 80% sí apunta a algo, pero necesita más datos.

Autoevaluación. El modelo evaluado y el que ejecutó el experimento son el mismo, en la misma sesión. El script de corrección es independiente, pero la generación de respuestas no se hizo por API con temperatura 0 ni con varias pasadas.

Un solo modelo. No hay comparación con otros modelos de 2026, así que no se puede separar "los modelos mejoraron" de "este modelo mejoró".

Sobre la "tercera capacidad". La decisión espontánea de escribir un script de verificación se observó una vez, en una sesión. Es una observación, no un hallazgo replicado. Hasta repetirlo en condiciones controladas, "metacognición instrumental" es una hipótesis con nombre, no un resultado.

Reproducir. Los archivos del experimento están en este mismo directorio: generate_problems.py (seed 42), problems.json (los 100 problemas con solución) y evaluate.py (las respuestas del modelo y la corrección). Una repetición por API con n≥200 por base y tres modelos está en la lista.

Implicaciones prácticas

Si trabajas con LLMs, estos resultados importan:

La pregunta abierta

¿La metacognición instrumental es genuina — el modelo realmente "sabe" que puede fallar — o es simplemente otro patrón aprendido porque los humanos en los datos de entrenamiento escribían tests?

No tenemos una respuesta definitiva. Pero quizás la pregunta misma revela un sesgo: asumimos que la inteligencia "verdadera" debe ser monolítica, cuando la inteligencia biológica también es un patchwork de heurísticas, memorización y razonamiento situacional.

Los LLMs no razonan como nosotros. Pero tampoco simplemente recitan. Son algo nuevo: un híbrido que combina razonamiento débil, recitación fuerte y metacognición instrumental emergente. Entender eso — sin idealizarlo ni descartarlo — es la base para usarlos bien.

// Fuentes