Prompts par chaîne de pensée et cohérence propre

Ingénierie des prompts avec l'API OpenAI

Fouad Trad

Machine Learning Engineer

Prompting en chaînes de pensées

  • Exige des LLM qu'ils fournissent les étapes de raisonnement (réflexions) avant de donner une réponse
  • Utilisé pour des tâches de raisonnement complexes
  • Contribue à réduire les erreurs du modèle

Image showing how a chain-of-thought prompt asks the model to solve a problem step by step, and the output contains the reasoning for each step followed.

Ingénierie des prompts avec l'API OpenAI

Prompting en chaînes de pensées

Prompt standard pour résoudre une tâche de raisonnement
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
Ingénierie des prompts avec l'API OpenAI

Prompting par chaîne de pensée

Prompt par chaîne de pensée pour effectuer une tâche de raisonnement
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.
Ingénierie des prompts avec l'API OpenAI

Prompt par chaîne de pensée en few-shots

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.
Ingénierie des prompts avec l'API OpenAI

Chaîne de pensée vs prompting multi-étapes

Prompts multi-étapes

  • Intégrer les étapes dans le prompt

Diagram showing that a multi-step prompt is a prompt that gives the model a series of sequential steps to perform.

Ingénierie des prompts avec l'API OpenAI

Chaîne de pensée vs prompting multi-étapes

Prompts multi-étapes

  • Intégrer les étapes dans le prompt

Diagram showing that a multi-step prompt is a prompt that gives the model a series of sequential steps to perform.

Prompts par chaîne de pensée

  • Demander de générer étapes intermédiaires

Image showing that in chain-of-thought prompts, the steps are produced by the model while generating the output.

Ingénierie des prompts avec l'API OpenAI

Limitation de la chaîne de pensée

  • Pensée infructueuse --> résultat infructueux
  • Des prompts de cohérence propre ont été introduits

Diagram for a chain-of-thought prompt highlighting that one thought with flawed reasoning will lead to an unsuccessful outcome.

Ingénierie des prompts avec l'API OpenAI

Prompt par cohérence propre

  • Génère plusieurs chaînes de pensées en sollicitant le modèle à plusieurs reprises
  • Vote à la majorité pour obtenir le résultat final

Image showing that a self-consistency prompt is just about multiple chain-of-thoughts, each of which having an output, and the final outcome is obtained by majority vote.

Ingénierie des prompts avec l'API OpenAI

Prompt par cohérence propre

Réalisable en définissant plusieurs prompts ou un prompt générant plusieurs réponses.

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))
Ingénierie des prompts avec l'API OpenAI

Prompt par cohérence propre

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.
Ingénierie des prompts avec l'API OpenAI

Passons à la pratique !

Ingénierie des prompts avec l'API OpenAI

Preparing Video For Download...