Prompting chain-of-thought dan self-consistency

Prompt Engineering dengan OpenAI API

Fouad Trad

Machine Learning Engineer

Chain-of-thought prompting

  • Meminta LLM memberi langkah penalaran (thoughts) sebelum jawaban
  • Untuk tugas penalaran kompleks
  • Membantu mengurangi kesalahan model

Gambar yang menunjukkan bagaimana prompt chain-of-thought meminta model memecahkan masalah selangkah demi selangkah, dan output berisi penalaran tiap langkah.

Prompt Engineering dengan OpenAI API

Chain-of-thought prompting

Prompt standar untuk menyelesaikan tugas penalaran
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 dengan OpenAI API

Chain-of-thought prompting

Chain-of-thought prompting untuk menyelesaikan tugas penalaran
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 dengan OpenAI API

Chain-of-thought prompting dengan few-shot

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 dengan OpenAI API

Chain-of-thought vs. multi-step prompting

Prompt multi-langkah

  • Sertakan langkah di dalam prompt

Diagram yang menunjukkan bahwa prompt multi-langkah memberi model serangkaian langkah berurutan untuk dilakukan.

Prompt Engineering dengan OpenAI API

Chain-of-thought vs. multi-step prompting

Prompt multi-langkah

  • Sertakan langkah di dalam prompt

Diagram yang menunjukkan bahwa prompt multi-langkah memberi model serangkaian langkah berurutan untuk dilakukan.

Prompt chain-of-thought

  • Minta model menghasilkan langkah perantara

Gambar yang menunjukkan bahwa pada prompt chain-of-thought, langkah-langkah dihasilkan oleh model saat membuat output.

Prompt Engineering dengan OpenAI API

Keterbatasan chain-of-thought

  • Satu pemikiran gagal --> hasil gagal
  • Diperkenalkan prompt self-consistency

Diagram untuk prompt chain-of-thought yang menyoroti bahwa satu langkah bernalar cacat akan menghasilkan keluaran yang gagal.

Prompt Engineering dengan OpenAI API

Self-consistency prompting

  • Hasilkan banyak chain-of-thought dengan mem-prompt model beberapa kali
  • Voting mayoritas untuk keluaran akhir

Gambar yang menunjukkan bahwa prompt self-consistency membuat banyak chain-of-thought, masing-masing dengan output, dan hasil akhir diperoleh lewat voting mayoritas.

Prompt Engineering dengan OpenAI API

Self-consistency prompting

Dapat dilakukan dengan mendefinisikan beberapa prompt atau satu prompt yang menghasilkan beberapa respons.

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 dengan OpenAI API

Self-consistency prompt

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 dengan OpenAI API

Ayo berlatih!

Prompt Engineering dengan OpenAI API

Preparing Video For Download...