La guía de IA

Un blog sobre inteligencia artificial, generado 90% por inteligencia humana.

El ABC de la IA: CoT (chain of thought)

·

,

«¿Preferirías pelear contra 100 caballos del tamaño de un pato o contra un pato del tamaño de un caballo?»

Raro, sí, pero esta supo ser una de las preguntas estereotipo en las entrevistas de la industria tecnológica. La respuesta buscada era la primera: que preferirías batallar contra cien caballos del tamaño de un pato. Esto se debe a que, en teoría, la respuesta demuestra que en lugar de intentar abordar demasiado atacando una gran tarea en su totalidad, sabrías dividirla en tareas más pequeñas que podrías atacar individualmente con mayor eficacia.

La utilidad de esta pregunta en el contexto de una entrevista laboral puede ponerse en duda, pero lo que ha sido probado una y otra vez es que, cuando de tareas o preguntas complejas se trata, los humanos pensamos mejor si podemos dividir el problema en pasos lógicos y resolverlos uno a uno1.

Por ejemplo, si alguien te pregunta cuáles son tus comidas favoritas, probablemente puedas responder inmediatamente sin pensar mucho. Ahora, si alguien te pregunta qué vas a comer esta noche… ahí la cosa se pone más compleja. Es una pregunta que depende de muchas variables, por lo que probablemente tu respuesta sea más acertada si dividís el problema en preguntas más simples como «¿tengo sobras en la heladera?», «si no tengo sobras, ¿qué ingredientes tengo?», «¿qué tanto tiempo tengo para cocinar?», «¿qué tantas ganas tengo de cocinar?», etc.

Un tipo de problema que casi siempre requiere de pasos «intermedios» para su resolución son los problemas matemáticos. Seguramente puedas responder rápidamente cuánto es 2 + 2, pero ante un problema como «Belén tiene el doble de edad que Martín, su hermano menor. En seis años, la suma de sus edades será 42. ¿Qué edad tiene Belén ahora?», probablemente tengas que pensar un poco más. Podrías plantearte dividir este problema en pasos como los siguientes:

  1. Si la edad de Martín es x, la edad de Belén es 2x.
  2. En seis años, sus edades serán x + 6 y 2x + 6, lo cual equivaldrá a 42.
  3. Entonces: x + 6 + 2x + 6 = 42.
  4. Eso significa que x + 2x = 42 – 6 – 6.
  5. Por tanto, 3x = 30.
  6. Eso significa que x, la edad de Martín hoy, equivale a 10 años.
  7. La edad de Belén es 2x, por lo que hoy Belén tiene 20 años.

Estos pasos intermedios necesarios para llegar a la respuesta final son, justamente, una cadena de pensamientos o chain of thought (CoT). Es decir, «chain of thought» son los pasos intermedios de razonamiento en lenguaje natural que llevan a la respuesta final2.

Ahora bien, ¿por qué es relevante esto cuando hablamos de inteligencia artificial? Porque resulta que con los LLM (modelos de lenguaje de gran tamaño) pasa algo similar. Cuando los modelos son del tamaño adecuado, tienen mayores posibilidades de llegar a la respuesta correcta si, en lugar de responderla directamente, pasan por este proceso de razonamiento intermedio. Es decir, el CoT ayuda a los modelos a «razonar»3, o más bien a estructurar su producción en pasos intermedios.

Por eso, existe algo llamado «chain of thought prompting» que busca incentivar al modelo a que «razone»4 antes de responder a una pregunta. Esto puede lograrse de varias formas, por ejemplo:

  • Few shot CoT prompting: al momento de plantear el problema al modelo, se pueden proporcionar uno o más ejemplos de problemas similares y cómo se resolverían. Así, no solo se está proveyendo al modelo de ejemplos de respuestas correctas, sino que también se le proporcionan ejemplos de razonamientos correctos y se le enseña cómo atacar el problema.
  • Zero shot CoT prompting: a veces simplemente decirle al modelo que piense paso a paso, sin proporcionar ejemplos de cómo funcionaría esto, ya es suficiente para estimularlo a que produzca, por sí mismo, una cadena de pensamiento que lo ayude a producir una respuesta más acertada. De hecho, el consenso es que esta capacidad de «razonamiento» emerge de forma natural en LLMs de tamaño suficiente y con la arquitectura adecuada5.

Lo interesante es que, si bien se pueden incorporar técnicas de CoT en el proceso de preentrenamiento de un modelo, lo que hemos discutido hasta ahora se aplica también a la interacción con modelos ya entrenados. En otras palabras, según los expertos, si usás estas técnicas con una herramienta como ChatGPT, deberías ver resultados positivos.

De hecho, cuando hablo de «resultados positivos», no me refiero únicamente a obtener respuestas más exactas (aunque sin dudas ese es un resultado más que deseado), sino que hay otras ventajas al usar CoT prompting6:

  • Al forzar al modelo a que muestre su razonamiento, si la respuesta no es la deseada, el CoT es una buena oportunidad para debuguear (es decir, buscar errores en) tu prompt y refinarla para tener más probabilidades de conseguir el resultado que deseás.
  • Al tener que pasar por estos pasos intermedios, el modelo emplea más capacidad de cálculo en la resolución de estos problemas más complejos
  • Como ya comentamos, es fácil de aplicar en modelos ya disponibles y no requiere de mayor conocimiento técnico ni acceso a etapas tempranas del entrenamiento del modelo

Así que, en resumen:

  • Chain of Thought o CoT refiere a la cadena de pensamientos intermedios necesarios para resolver un problema complejo como, por ejemplo, un problema matemático.
  • Es una técnica que se puede utilizar para conseguir que los LLMs produzcan respuestas más acertadas.
  • Se puede aplicar a modelos ya disponibles como ChatGPT mediante chain of thought prompting, ya sea proporcionando ejemplos de razonamientos análogos correctos como parte de tu prompt o, simplemente, explicitando al modelo que debe pensar paso a paso.

Ahora, la próxima vez que leas o escuches la sigla CoT, sabrás exactamente de qué se está hablando e incluso, espero, lo habrás puesto en práctica en tus propias interacciones con tu LLM de cabecera.


  1. Training Data Locality and Chain-of-Thought Reasoning in LLMs with Ben Prystawski – The TWIML AI Podcast, episodio 673 ↩︎
  2. Wei et al., Chain-of-Thought Prompting Elicits Reasoning in Large Language Models ↩︎
  3. Wei et al., ibid ↩︎
  4. Si lo que hace el modelo es, efectivamente, razonar o no, está en disputa. En el podcast citado anteriormente, el entrevistado, Ben Prystawski, argumenta que es una forma de razonamiento, pero no equivale a la totalidad de la capacidad de razonamiento humana. Otros expertos sostienen que, al menos de momento, los LLMs no son capaces de razonar y que, simplemente, descomponen el problema en pasos pequeños, lo cual no consideran una forma de razonamiento. ↩︎
  5. Wei et al., ibid ↩︎
  6. Wei et al., ibid ↩︎

Una respuesta a «El ABC de la IA: CoT (chain of thought)»

  1. […] en nuestro razonamiento. Ya sea cuando lo pensamos «en voz alta» o con nuestra «voz interior», es una parte esencial de nuestro proceso. Por eso me es tan importante plasmar mis ideas con mis palabras, para procesarlas de la forma en […]

    Me gusta

Deja un comentario

¡Quiero más!

¿Te gustó este post? ¿Querés ser el primer humano en enterarte cuando se publique el próximo?