Lección 18 de 33· Chain-of-thought: guiar el razonamiento
Antes de teoría, un experimento. Lee este problema y decide mentalmente la respuesta:
Una cafetería empieza el día con 3 cajas de 12 botellas cada una. Durante la mañana vende 15 botellas. A mediodía llegan 2 cajas más (también de 12). ¿Cuántas botellas quedan al final?
Ahora imagina que se lo pides a un LLM de dos formas distintas. En una le exiges la respuesta de inmediato. En la otra le pides que razone en voz alta antes de responder. Aunque es el mismo modelo y el mismo problema, la segunda versión acierta con mucha más frecuencia. Esa es toda la idea de chain-of-thought (CoT), o cadena de pensamiento: pedir que el modelo exponga los pasos intermedios antes de dar la respuesta final.
En esta lección verás por qué funciona, cuándo aporta valor y practicarás la técnica tú mismo. Es la palanca más simple y de mayor impacto para tareas de varios pasos: aritmética, lógica, análisis y planificación.
Empecemos con el prompt directo (zero-shot): pedimos solo el número. Pruébalo en el panel interactivo contra el modelo real y observa la respuesta.
Una cafetería empieza con 3 cajas de 12 botellas cada una.
Vende 15 botellas y luego recibe 2 cajas más de 12 botellas.
Responde SOLO con el número final de botellas que quedan.
>>> Respuesta típica del modelo (directa):
33Cuando el modelo intenta "calcular de un salto", es fácil que se equivoque: aquí ha mezclado los pasos (por ejemplo, olvidó reabastecer o restó mal) y devuelve 33, que es incorrecto. La respuesta correcta es 45: 3·12 = 36, 36 − 15 = 21, 21 + 2·12 = 45.
Ahora el mismo problema, pero pidiendo razonamiento explícito. Basta añadir una instrucción como "piensa paso a paso":
Una cafetería empieza con 3 cajas de 12 botellas cada una.
Vende 15 botellas y luego recibe 2 cajas más de 12 botellas.
Piensa paso a paso y muestra tus cálculos. Termina con una línea:
RESPUESTA: <número>
>>> Respuesta típica del modelo (paso a paso):
Inventario inicial: 3 cajas x 12 = 36 botellas.
Después de vender 15: 36 - 15 = 21 botellas.
Llegan 2 cajas: 2 x 12 = 24 botellas nuevas.
Total: 21 + 24 = 45 botellas.
RESPUESTA: 45Mismo modelo, mismos datos, resultado correcto. La única diferencia es que le pedimos escribir los pasos intermedios. Prueba tú mismo a cambiar los números del problema y verás que la versión paso a paso se mantiene fiable mientras la directa falla con más frecuencia.
Truco clave: al final pedimos una línea con formato fijo (
RESPUESTA: <número>). Así obtienes el razonamiento y una respuesta fácil de extraer con código. Volveremos a esto: CoT y "pedir el formato de salida" se combinan muy bien.
Un LLM genera texto un token a la vez, y cada token nuevo se elige mirando todo lo que ya escribió. No tiene una "memoria de trabajo" oculta donde hacer cuentas en secreto: lo único que puede usar como borrador es el propio texto que va produciendo.
Cuando lo obligas a dar la respuesta de inmediato, le pides comprimir un cálculo de varios pasos en el primerísimo token: no hay espacio para razonar. Cuando le pides pensar paso a paso, cada paso intermedio se convierte en texto que el modelo puede releer para producir el siguiente. En la práctica, el razonamiento actúa como una hoja de borrador (scratchpad): descompone un problema difícil en subproblemas fáciles, y cada resultado parcial reduce el margen de error del siguiente.
Hay dos ideas que conviene fijar:
CoT no mejora todo por igual. Su beneficio crece con el número de pasos que exige la tarea. En tareas de un solo paso (una definición, una clasificación simple) apenas cambia nada; en tareas de varios pasos el salto es grande.
El siguiente gráfico ilustra el patrón típico observado en la literatura y en la práctica: comparación de acierto entre pedir la respuesta directa frente a paso a paso, por tipo de tarea. Los valores son ilustrativos, pero la forma es la que verás una y otra vez.
Fíjate en la última fila: en una clasificación de un solo paso, pedir razonamiento casi no cambia el acierto (y solo añade texto). El valor de CoT está en las tareas donde hay que encadenar varios pasos.
Hay varias maneras de pedir razonamiento, de menos a más control:
| Forma | Ejemplo de instrucción | Cuándo usarla |
|---|---|---|
| Disparador simple | "Piensa paso a paso antes de responder." | El caso por defecto; barato y sorprendentemente efectivo. |
| Pasos estructurados | "1) Identifica los datos. 2) Plantea el cálculo. 3) Calcula. 4) Da la respuesta." | Cuando quieres controlar qué pasos sigue. |
| Razonar + formato final | "Razona y termina con RESPUESTA: <valor>." | Cuando necesitas extraer la respuesta automáticamente. |
Más adelante en el módulo verás cómo descomponer tareas grandes y cuándo el razonamiento explícito estorba en lugar de ayudar. Por ahora, la regla mental es simple: si la tarea tiene varios pasos, pide los pasos.
La mejor forma de interiorizar CoT es hacer tú mismo lo que le pides al modelo: partir el problema en pasos en lugar de adivinar el total de un salto. Retomamos el problema de la cafetería.
Completa el cálculo paso a paso en el siguiente ejercicio y comprueba tu resultado. Igual que el razonamiento explícito ayuda al modelo, verás que resolver por partes hace el resultado fácil y a prueba de errores.
Calcula, paso a paso, cuántas botellas quedan y usa print para imprimir SOLO el número final (sin texto adicional). Debes obtener el mismo resultado que el modelo con razonamiento explícito.
# Problema de la cafeteria (resuelvelo PASO A PASO):
# - Empiezas con 3 cajas de 12 botellas cada una.
# - Vendes 15 botellas.
# - Llegan 2 cajas mas (12 botellas cada una).
# ¿Cuantas botellas quedan?
# TODO: completa cada paso y luego imprime SOLO el numero final.
inicial = 3 * 12
# vendidas_restadas = ...
# reabastecidas = ...
# quedan = ...
# print(quedan)Responde antes de seguir (justifica en tu cabeza el por qué):
Tienes un modelo que falla al calcular de un salto: "Un almacén tiene 4 estantes con 25 cajas cada uno; se retiran 30 cajas y llegan 3 estantes más de 25. ¿Cuántas cajas quedan?". El modelo responde un número incorrecto en zero-shot directo.
(a) ¿Qué instrucción mínima añadirías al prompt para que sea mucho más probable que acierte, y por qué esa instrucción ayuda?
(b) ¿Cuál es la respuesta correcta al problema, resuelta paso a paso?
Pista de verificación para (b): 4·25 = 100, 100 − 30 = 70, 70 + 3·25 = 145. Si tu respuesta a (a) fue "pedirle que piense paso a paso / muestre sus cálculos" porque así el modelo usa cada paso como borrador que restringe el siguiente, has captado la idea central de esta lección.
Gratis