Prompts de la cadena de pensamiento y de la autoconsistencia

Ingeniería de prompts con la API de OpenAI

Fouad Trad

Machine Learning Engineer

Prompt de cadena de pensamiento

  • Requiere que los LLM proporcionen pasos de razonamiento (pensamientos) antes de dar la respuesta
  • Se utiliza para tareas de razonamiento complejo
  • Ayuda a reducir los errores del modelo

Imagen que muestra cómo un prompt de cadena de pensamiento pide al modelo que resuelva un problema paso a paso y cómo el resultado incluye el razonamiento de cada paso.

Ingeniería de prompts con la API de OpenAI

Prompt de cadena de pensamiento

Prompt estándar para resolver una tarea de razonamiento
prompt = """Q: You start with 15 books in your collection. At the bookstore, you 
purchase 8 new books. Then, you lend 3 to your friend and 2 to your cousin. Later, 
you visit another bookstore and buy 5 more books. How many books do you have now? 
A: The answer is"""

print(get_response(prompt))
25 books
Ingeniería de prompts con la API de OpenAI

Prompt de cadena de pensamiento

Uso de prompts de cadena de pensamiento para resolver una tarea de razonamiento
prompt = """Q: You start with 15 books in your collection. At the bookstore, you 
purchase 8 new books. Then, you lend 3 to your friend and 2 to your cousin. Later, 
you visit another bookstore and buy 5 more books. How many books do you have now? 
A: Let's think step by step""" 
print(get_response(prompt))
Step 1: Start with the number of books in your collection: 15 books
Step 2: Purchase 8 new books at the bookstore: 15 + 8 = 23 books
Step 3: Lend 3 books to your friend: 23 - 3 = 20 books
Step 4: Lend 2 books to your cousin: 20 - 2 = 18 books
Step 5: Visit another bookstore and buy 5 more books: 18 + 5 = 23 books
Therefore, you have 23 books now.
Ingeniería de prompts con la API de OpenAI

Uso de prompt de cadena de pensamiento con pocos ejemplos

example = """
Q: The odd numbers in this group add up to an even number:  9, 10, 13, 4, 2.
A: Adding all the odd numbers (9, 13) gives 22. The answer is True.
"""

question = """ Q: The odd numbers in this group add up to an even number: 15, 13, 82, 7. A: """
prompt = example + question print(get_response(prompt))
Adding all the odd numbers (15, 13, 7) gives 35. The answer is False.
Ingeniería de prompts con la API de OpenAI

Cadena de pensamiento frente al prompting de varios pasos

Prompts en varios pasos

  • Incorpora pasos dentro del prompt

Diagrama que muestra que un prompt de varios pasos es un prompt que indica al modelo una serie de pasos secuenciales que debe realizar.

Ingeniería de prompts con la API de OpenAI

Cadena de pensamiento frente al prompting de varios pasos

Prompts en varios pasos

  • Incorpora los pasos en el prompt

Diagrama que muestra que un prompt de varios pasos es un prompt que proporciona al modelo una serie de pasos secuenciales que debe realizar.

Prompts de cadena de pensamiento

  • Pide al modelo que genere pasos intermedios

Imagen que muestra cómo, en los prompts de cadena de pensamiento, el modelo genera los pasos mientras produce la respuesta.

Ingeniería de prompts con la API de OpenAI

Limitación de la cadena de pensamiento

  • Un pensamiento infructuoso --> resultado infructuoso
  • Se introdujeron los prompts de autoconsistencia

Diagrama de un prompt de cadena de pensamiento que muestra cómo un pensamiento con un razonamiento defectuoso conduce a un resultado fallido.

Ingeniería de prompts con la API de OpenAI

Prompting de autoconsistencia

  • Genera varias cadenas de pensamiento al enviar varios prompts al modelo.
  • Voto mayoritario para obtener el resultado final

Imagen que muestra que un prompt de autoconsistencia consiste simplemente en varias cadenas de pensamiento, cada una con un resultado, y que el resultado final se obtiene por mayoría de votos.

Ingeniería de prompts con la API de OpenAI

Prompting de autoconsistencia

Se puede hacer definiendo varios prompts o un prompt que genere varias respuestas.

self_consistency_instruction = "Imagine three completely independent experts who 
reason differently are answering this question. The final answer is obtained by 
majority vote. The question is: "

problem_to_solve = "If there are 10 cars in the parking lot and 3 more cars arrive. Half the original number of cars leave. Then, half of the current number of cars arrive. How many cars are there in the parking?"
prompt = self_consistency_instruction + problem_to_solve print(get_response(prompt))
Ingeniería de prompts con la API de OpenAI

Prompt de autoconsistencia

Expert 1: Let's go step by step [...] Therefore, the total number of cars in the 
parking lot is 8 + 4 = 12.

Expert 2: First, let's calculate [...] Therefore, the total number of cars in the 
parking lot is now 5 + 2 = 7 cars.

Expert 3: Initially, there are 10 cars [...] Thus, the final answer is 8 + 4 = 12 
cars in the parking lot.

Based on the majority vote, the final answer is that there are 12 cars in the 
parking lot.
Ingeniería de prompts con la API de OpenAI

¡Practiquemos!

Ingeniería de prompts con la API de OpenAI

Preparing Video For Download...