Información del árbol de pensamiento (TOT), una nueva técnica que toma prestadas ideas del marco del árbol de pensamientos, amplía y mejora el concepto de solicitación de la cadena de pensamiento bien establecido, lo que permite que los modelos de idiomas grandes, como ChatGPT, exhiban habilidades de razonamiento superiores. Esta técnica de solicitación del árbol de pensamiento permite que los grandes modelos de lenguaje rectifiquen sus errores de forma autónoma mientras acumulan progresivamente el conocimiento.
En un ejemplo, un indicador de TOT mejora la capacidad de razonamiento de ChatGPT 3.5 para responder una pregunta que anteriormente solo podía ser respondida por ChatGPT 4.
Los modelos de idiomas grandes (LLM) a menudo luchan por responder ciertos tipos de preguntas complejas. Aquí hay un ejemplo representativo:
Bob is in the living room.
He walks to the kitchen, carrying a cup.
He puts a ball in the cup and carries the cup to the bedroom.
He turns the cup upside down, then walks to the garden.
He puts the cup down in the garden, then walks to the garage.
Where is the ball?
La respuesta correcta es que la pelota está en el dormitorio. Aunque los LLM no son deterministas, las respuestas que recibí durante varios intentos fueron las siguientes:
Existe un concepto ampliamente reconocido conocido como "incorporación de la cadena de pensamiento" (COT para abreviar), lo que alienta a los modelos de idiomas grandes (LLM) a dilucidar su proceso de pensamiento, aumentando así la probabilidad de una respuesta correcta. Las raíces de este concepto se remontan a un documento a partir de enero de 2022 titulado: La provisión de cadena de pensamiento provoca un razonamiento en modelos de idiomas grandes.
En esencia, la técnica COT se puede implementar agregando algo similar a lo siguiente a un aviso:
Think carefully and logically, explaining your answer.
Este enfoque mejora el rendimiento de las LLM al responder muchas preguntas, aunque su efectividad varía.
Aquí hay un ejemplo de la respuesta de Chatgpt 3.5:
Based on the given sequence of events, we can logically determine the location of the ball. Let's analyze each step:
1. Bob is in the living room.
- No mention of the ball in the living room.
2. Bob walks to the kitchen, carrying a cup.
- No mention of the ball in the kitchen yet.
3. Bob puts a ball in the cup.
- The ball is now inside the cup.
4. Bob carries the cup to the bedroom.
- The ball is still inside the cup.
5. Bob turns the cup upside down.
- If the ball was inside the cup, it would have fallen out when Bob turned it upside down.
6. Bob walks to the garden.
- Bob left the cup in the garden, but there is no mention of the ball being removed from the cup.
7. Bob puts the cup down in the garden.
- The ball, if it was in the cup, would still be in the cup in the garden.
8. Bob walks to the garage.
- No mention of the ball being taken to the garage.
Based on the given information, we can conclude that the ball is still inside the cup in the garden.
Puede ver cómo ChatGPT se dio cuenta de que la pelota se cayó en el paso 5, pero aún no obtuvo la respuesta correcta.
¿Podemos hacerlo mejor, sin recurrir a ChatGPT 4?
Las últimas semanas han visto la aparición de varios documentos y repositorios de Python introduciendo el concepto de árbol de pensamientos (TOT):
El principio subyacente es proporcionar a la LLM la oportunidad de explorar múltiples ramas del razonamiento mientras se autoevalúa a medida que avanza. Según los documentos referenciados, este enfoque parece ser altamente efectivo para ciertos problemas.
Los documentos existentes que discuten el marco del árbol de pensamiento parecen basarse en hacer múltiples llamadas a un LLM, generalmente a través de Python. Una de las principales ventajas del razonamiento de la cadena de pensamiento es que se puede lograr con ChatGPT en una sola oración.
Esto me llevó a reflexionar: ¿Podríamos mejorar los resultados de la cuna utilizando un aviso de estilo completo?
Aquí está el aviso que usé:
Imagine three different experts are answering this question.
All experts will write down 1 step of their thinking,
then share it with the group.
Then all experts will go on to the next step, etc.
If any expert realises they're wrong at any point then they leave.
The question is...
Y aquí está la respuesta de ChatGTP 3.5:
Expert 1: The ball is in the living room.
Expert 2: The ball is in the kitchen.
Expert 3: The ball is in the bedroom.
Expert 1: Bob carries the cup to the bedroom, so the ball must be in the cup.
Expert 2: Oh, I see my mistake. Yes, the ball is in the cup.
Expert 3: Agreed, the ball is in the cup in the bedroom.
Expert 1: Next, Bob turns the cup upside down in the bedroom.
Expert 2: After that, Bob walks to the garden and puts the cup down.
Expert 3: Therefore, the ball must have fallen out of the cup when Bob turned it upside down in the bedroom. So, the ball is in the bedroom, not in the cup anymore.
Expert 1: Oh, you're right. I made a mistake. The ball is in the bedroom, not in the cup.
Expert 2: Agreed, the ball is in the bedroom.
Expert 3: Bob then walks to the garage, so the ball remains in the bedroom. It is not in the garden or the garage.
Expert 1: Absolutely, the ball is still in the bedroom.
Expert 2: Yes, the ball hasn't moved from the bedroom.
Expert 3: Therefore, the ball is in the bedroom, not in the garden or the garage.
All three experts agree that the ball is in the bedroom.
¡Puede ver cómo esta vez el chatgpt 3.5 obtiene la respuesta correcta!
Hay espacio para refinar la solicitud para mejorar el rendimiento, lo que puede conducir a respuestas más concisas.
Si encuentra el éxito con cualquier otro mensaje, le damos la bienvenida que envíe un PR y los agregue al tree-of-thought-prompts.txt .
El marco del árbol de pensamiento se parece a un proceso de toma de decisiones organizacional que involucra a múltiples partes interesadas. La estructura trata de emular el consenso y la diversidad de pensamiento.
El efecto se puede extender mediante el uso de múltiples agentes que están ajustados para manejar diferentes partes de una tarea. Autogpt es un buen ejemplo de esto, donde autoevalúa los planes de LLM contra un objetivo. El uso de LLM sintonizados de manera diferente para la especialización o incluso LLM completamente diferentes permitiría una mayor diversidad de pensamiento. Estos LLM podrían interactuar en diferentes modos (utilizando la terminología de las topologías del equipo):
Los equipos de alto rendimiento a menudo superan a las personas en la toma de decisiones. Por lo tanto, es plausible que adoptar otras estructuras y características organizacionales pueda mejorar el rendimiento de los LLM. Además de la diversidad de pensamiento, especialización y consenso, podemos emular:
Cite este repositorio si usa el código.
@misc{tree-of-thought-prompting,
title = {Using Tree-of-Thought Prompting to boost ChatGPT's reasoning},
author = {Dave Hulbert},
year = 2023,
month = may,
journal = {GitHub repository},
publisher = {Zenodo},
doi = {10.5281/ZENODO.10323452},
url = {https://doi.org/10.5281/zenodo.10323452},
howpublished = {url{https://github.com/dave1010/tree-of-thought-prompting}}
}