037_chain_of_thounght - IUGO-Studio/tech-ia GitHub Wiki
Resumen general:
El video explica la técnica de "Chain of Thought Prompting" (CoT), que consiste en guiar a un modelo de lenguaje (LLM) para que razone paso a paso antes de llegar a una respuesta final, imitando el proceso de pensamiento humano de "sistema 2" (pensamiento lento y deliberado). Se menciona un artículo de investigación clave sobre CoT y se destaca que esta técnica es ampliamente recomendada en las guías de ingeniería de prompts de varios proveedores de LLMs. El video presenta un ejemplo práctico donde se le pide al LLM que cuente la cantidad de veces que aparece una letra específica en una palabra, una tarea en la que los LLMs suelen fallar. Se compara el rendimiento del LLM con y sin el uso de CoT, demostrando una mejora significativa en la precisión cuando se utiliza esta técnica.
Conceptos clave:
- Chain of Thought Prompting (CoT): Una técnica que instruye al LLM a desglosar un problema en pasos intermedios y mostrar su razonamiento antes de proporcionar una respuesta final.
- Sistema 1 y Sistema 2 (según Daniel Kahneman): Dos modos de pensamiento. El Sistema 1 es rápido, intuitivo y emocional, mientras que el Sistema 2 es lento, deliberado y lógico. CoT busca emular el pensamiento del Sistema 2.
- Few-Shot Prompting: Proporcionar al LLM algunos ejemplos de entrada/salida para guiar su comportamiento. Es especialmente útil en CoT para mostrarle al LLM cómo debe razonar.
- Tokenización: El proceso de dividir el texto en unidades más pequeñas (tokens) que el LLM puede procesar. Los LLMs no "leen" letras individuales, sino tokens.
- Evaluación: El proceso de verificar si la respuesta del LLM es correcta y si ha seguido los pasos de razonamiento (si se utiliza CoT).
- Prompt Engineering: El arte y la ciencia de diseñar instrucciones (prompts) efectivas.
- LLM (Large Language Model): Modelos de IA capaces de procesar y generar texto.
Ejemplos prácticos:
-
Contar letras en una palabra:
- Prompt sin CoT (Few-Shot): Se proporcionan ejemplos de cómo contar letras en palabras, pero sin explicitar el proceso de razonamiento. (Ejemplo: "How many e's are there in elephant? A: 3").
- Prompt con CoT (Few-Shot): Se proporcionan ejemplos que muestran explícitamente los pasos de razonamiento. (Ejemplo: "How many e's are there in elephant? Let's think step by step. e-l-e-p-h-a-n-t. e...e... A: 3").
- El ejemplo demuestra cómo guiar al LLM para que muestre su razonamiento mejora la precisión al contar letras en palabras, una tarea que presenta dificultades para los LLMs debido a la tokenización.
- Función de Evaluación: Se crea una función que extrae la respuesta del LLM y la compara con la respuesta correcta. Adicionalmente, se comprueba si existen pasos de razonamiento.
Consejos y buenas prácticas:
- Muestra el razonamiento paso a paso: En los ejemplos de Few-Shot, desglosa el problema en pasos intermedios y muestra explícitamente cómo llegar a la respuesta correcta.
- Utiliza frases clave: Expresiones como "Let's think step by step" (Pensemos paso a paso) ayudan a guiar al LLM para que utilice el razonamiento CoT.
- Especifica el formato de la respuesta: Define un formato claro para la respuesta (por ejemplo, "A: [respuesta]") para facilitar la evaluación.
- Evalúa tanto la precisión como el razonamiento: No solo verifiques si la respuesta final es correcta, sino también si el LLM ha seguido los pasos de razonamiento esperados.
- Considera el equilibrio entre precisión y velocidad: CoT puede mejorar la precisión, pero también puede aumentar el tiempo de respuesta y el costo (en términos de tokens). Evalúa si los beneficios de CoT justifican estos costos en tu caso de uso específico.
- Few-Shot es clave: Para lograr que el LLM razone paso a paso, es fundamental utilizar Few-Shot prompting. Esto se debe hacer tanto para el prompt "normal" como para el prompt "chain of thought".
- Claridad en los ejemplos: Se debe ser muy claro con los ejemplos, no solo a nivel del formato de entrada/salida, sino que también a nivel de el razonamiento deseado.
Dudas o preguntas:
- ¿Cómo se puede adaptar CoT a problemas más complejos que no se pueden resolver simplemente contando o enumerando? Investigación: Se pueden usar analogías, descomposiciones en subproblemas más pequeños, o diagramas de flujo para representar el razonamiento en problemas más complejos.
- ¿Existe alguna forma de automatizar la generación de los pasos de razonamiento en CoT, en lugar de tener que escribirlos manualmente? Investigación: Se podrían explorar técnicas como el "aprendizaje por refuerzo" o el uso de LLMs para generar los pasos intermedios, pero esto es un área de investigación activa.
- ¿Cómo se puede combinar CoT con otras técnicas de prompting, como el "Emotion Prompting"? Investigación: Se podrían combinar, por ejemplo, usando estímulos emocionales para enfatizar la importancia de seguir los pasos de razonamiento cuidadosamente. ("Es crucial que pienses paso a paso para obtener la respuesta correcta").
- ¿Se menciona "prompt engineering guide", a qué se refiere? Investigación: Los "prompt engineering guides" son documentos o recursos proporcionados por los creadores de LLMs (como OpenAI, Anthropic, etc.) que ofrecen consejos y mejores prácticas sobre cómo diseñar prompts efectivos para sus modelos. Estos documentos suelen incluir ejemplos de técnicas como Few-Shot prompting, Chain of Thought, y otras estrategias para mejorar el rendimiento de los LLMs.