Sepanjang kursus ini, kita telah melihat banyak metode penggerak yang berbeda yang dapat digunakan untuk meningkatkan kemampuan matematika LLM. Satu pendekatan terbaru, MathPrompter, menyatukan beberapa metode ini (CoT, PAL, dll.) menjadi satu teknik tunggal. Ide utama adalah memecah pertanyaan matematika menjadi istilah aljabar kemudian menggunakan kode Python untuk memecahkannya dengan cara yang berbeda.
MathPrompter memiliki empat langkah. Kami akan menjelaskannya menggunakan contoh masalah berikut. Contoh ini diambil langsung dari makalah.
P: Di sebuah restoran, setiap makanan dewasa harganya $5 dan anak-anak makan gratis. Jika sekelompok 15 orang datang dan 8 di antaranya anak-anak, berapa banyak biaya yang diperlukan untuk kelompok makan?
Langkah pertama adalah menetapkan variabel untuk setiap angka dalam pertanyaan. Ini membantu karena memungkinkan terjemahan yang lebih mudah dari pertanyaan ke pertanyaan matematika abstrak, serta ke kode pemrograman.
Ini dapat dilakukan melalui prompt tembakan beberapa:
Tujuan dari langkah ini adalah merumuskan masalah sebagai pernyataan aljabar dan sebagai kode Python. Langkah ini memiliki dua prompt bersamaan, yang membantu memberikan representasi yang beragam dari masalah.
Kami dapat mendorong LLM untuk mewakili masalah matematika sebagai pernyataan aljabar. Ini dilakukan dengan meminta LLM untuk menghasilkan format jawaban, dimulai dari "Jawaban =".
Kita juga bisa meminta LLM untuk menghasilkan kode Python yang memecahkan masalah itu. Ini dilakukan dengan meminta LLM untuk menghasilkan fungsi Python.
Sekarang, kita dapat menggunakan Pemetaan yang telah kita hasilkan sebelumnya untuk secara otomatis mengisi variabel-variabel tersebut.
Pemetaan: {A: 5, B: 15, C: 8}
Aljabar:
Jawaban = 5 * 15 - 5 * 8
Fungsi Python:
def restaurant_cost(A=5, B=15, C=8):
return A * (B - C)
Kita dapat mengevaluasi keduanya menggunakan Python.
Aljabar:
>
> eval("5 * 15 - 5 * 8")
35
Fungsi Python:
>
> restaurant_cost()
35
Akhirnya, kita akan memanfaatkan Self-Consistency untuk menjalankan ulang proses di atas beberapa kali (~5), kemudian mengambil jawaban mayoritas.
MathPrompter melaporkan akurasi 92,5% pada dataset MultiArith. Keberhasilan teknik ini adalah contoh bagus bagaimana kamu sebagai seorang insinyur prompt dapat mengambil metode-metode yang telah kamu pelajari sepanjang kursus ini dan menggabungkannya untuk menangani masalah yang lebih besar.
Sander Schulhoff is the Founder of Learn Prompting and an ML Researcher at the University of Maryland. He created the first open-source Prompt Engineering guide, reaching 3M+ people and teaching them to use tools like ChatGPT. Sander also led a team behind Prompt Report, the most comprehensive study of prompting ever done, co-authored with researchers from the University of Maryland, OpenAI, Microsoft, Google, Princeton, Stanford, and other leading institutions. This 76-page survey analyzed 1,500+ academic papers and covered 200+ prompting techniques.
Imani, S., Du, L., & Shrivastava, H. (2023). MathPrompter: Mathematical Reasoning using Large Language Models. ↩
Roy, S., & Roth, D. (2015). Solving General Arithmetic Word Problems. Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, 1743–1752. https://doi.org/10.18653/v1/D15-1202 ↩