Prompting chain-of-thought și auto-consistență

Prompt Engineering cu OpenAI API

Fouad Trad

Machine Learning Engineer

Prompting chain-of-thought

  • Solicită LLM-urilor să furnizeze pași de raționament (gânduri) înainte de răspuns
  • Utilizat pentru sarcini complexe de raționament
  • Ajută la reducerea erorilor modelului

Imagine care arată cum un prompt chain-of-thought cere modelului să rezolve o problemă pas cu pas, iar răspunsul conține raționamentul pentru fiecare pas.

Prompt Engineering cu OpenAI API

Prompting chain-of-thought

Prompting standard pentru o sarcină de raționament
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
Prompt Engineering cu OpenAI API

Prompting chain-of-thought

Prompting chain-of-thought pentru o sarcină de raționament
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.
Prompt Engineering cu OpenAI API

Prompting chain-of-thought cu 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.
Prompt Engineering cu OpenAI API

Chain-of-thought vs. prompting multi-pas

Prompturi multi-pas

  • Includ pașii direct în prompt

Diagramă care arată că un prompt multi-pas oferă modelului o serie de pași secvențiali de urmat.

Prompt Engineering cu OpenAI API

Chain-of-thought vs. prompting multi-pas

Prompturi multi-pas

  • Includ pașii direct în prompt

Diagramă care arată că un prompt multi-pas oferă modelului o serie de pași secvențiali de urmat.

Prompturi chain-of-thought

  • Modelul generează pașii intermediari

Imagine care arată că în prompturile chain-of-thought, pașii sunt produși de model în timpul generării răspunsului.

Prompt Engineering cu OpenAI API

Limitarea chain-of-thought

  • Un raționament eronat --> rezultat nereușit
  • Au fost introduse prompturile de auto-consistență

Diagramă pentru un prompt chain-of-thought care evidențiază că un raționament eronat va duce la un rezultat nereușit.

Prompt Engineering cu OpenAI API

Prompting de auto-consistență

  • Generează mai multe lanțuri de gândire prin mai multe apeluri ale modelului
  • Vot majoritar pentru obținerea răspunsului final

Imagine care arată că un prompt de auto-consistență presupune mai multe lanțuri de gândire, fiecare cu un răspuns, iar rezultatul final se obține prin vot majoritar.

Prompt Engineering cu OpenAI API

Prompting de auto-consistență

Se poate realiza prin prompturi multiple sau un prompt care generează mai multe răspunsuri.

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))
Prompt Engineering cu OpenAI API

Prompt de auto-consistență

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.
Prompt Engineering cu OpenAI API

Să exersăm!

Prompt Engineering cu OpenAI API

Preparing Video For Download...