Program of Thoughts Prompting (ID)

From Systems analysis Wiki
Jump to navigation Jump to search

Program of Thoughts Prompting (PoT, Ingg. «program of thoughts» / «program alur pikiran») — adalah metode rekayasa prompt untuk large language model (LLM), di mana model menghasilkan kode program sebagai langkah-langkah antara dalam penyelesaian tugas, alih-alih penjelasan berbasis teks[1]. Pendekatan ini memungkinkan pemisahan antara penalaran logis dan komputasi matematis: language model menyusun rencana penyelesaian dalam bentuk program (misalnya, dalam Python), sementara komputasinya dijalankan oleh interpreter kode eksternal yang deterministik.

Metode ini diusulkan pada tahun 2022 oleh sekelompok peneliti yang dipimpin oleh Wenhu Chen dan ditujukan terutama untuk tugas-tugas bertipe numerik atau logis (soal matematika, perhitungan keuangan), di mana metode penalaran tradisional seperti Chain-of-Thought menghadapi kesulitan dalam hal akurasi komputasi[1].

Latar Belakang dan Konsep

Keterbatasan Chain-of-Thought

Metode PoT merupakan pengembangan dari ide Chain-of-Thought (CoT) (rantai penalaran), yang sebelumnya menjadi pendekatan utama untuk meningkatkan kemampuan inferensi logis LLM[2]. Dalam metode CoT, model menghasilkan serangkaian langkah antara dalam bahasa alami. Meskipun pendekatan ini meningkatkan kualitas penalaran secara signifikan, terdapat keterbatasan mendasar: model menjalankan baik logika maupun komputasi itu sendiri dalam bentuk teks. Hal ini sering kali menyebabkan operasi aritmetika yang tidak akurat, kesalahan pembulatan, dan berbagai ketidaktepatan lainnya, karena language model pada dasarnya bukanlah kalkulator yang presisi.

Ide Utama Program of Thoughts

Ide utama PoT adalah mendelegasikan komputasi ke sistem eksternal (interpreter kode), sementara language model hanya dituntut untuk memformalisasikan rencana penyelesaian dalam bentuk program yang dapat dieksekusi[1]. Model berperan sebagai «pemrogram», bukan «penghitung».

Alur kerja metode ini adalah sebagai berikut:

  1. Model menerima tugas sebagai input (misalnya, soal matematika berbasis teks).
  2. Alih-alih menghasilkan penalaran berbasis teks, model menghasilkan skrip dalam bahasa pemrograman (misalnya, Python) yang menyelesaikan tugas tersebut.
  3. Kode yang dihasilkan diserahkan ke interpreter eksternal untuk dieksekusi.
  4. Hasil eksekusi kode merupakan jawaban akhir.

Dengan demikian, komputasi yang kompleks dan presisi (operasi dengan bilangan besar, pemanggilan pustaka khusus) tidak dilakukan oleh model itu sendiri, melainkan oleh program, sehingga menjamin determinisme dan akurasi tinggi[3].

Implementasi dan Penggunaan Pustaka

Dalam implementasi PoT, kemampuan LLM untuk menghasilkan kode yang benar dan efisien menjadi hal yang krusial. Para penulis pendekatan ini menggunakan model OpenAI Codex, yang dilatih secara khusus untuk tugas-tugas pemrograman. Pendekatan PoT memungkinkan model memanfaatkan pustaka eksternal, yang secara substansial memperluas kelas tugas yang dapat diselesaikan. Misalnya, dalam menyelesaikan tugas matematika simbolik, model dapat menghasilkan kode yang menggunakan pustaka SymPy untuk penyelesaian analitik persamaan, yang melampaui kemampuan metode berbasis bahasa murni[1].

Prompt untuk PoT dapat diberikan dalam dua mode:

  • Few-shot: Prompt berisi beberapa contoh pasangan «pertanyaan — program penyelesaian».
  • Zero-shot: Prompt hanya berisi instruksi yang mendeskripsikan tugas, tanpa contoh.

Bahkan dalam mode zero-shot, PoT menunjukkan efektivitas tinggi berkat struktur eksplisit yang harus dihasilkan oleh model[4].

Hasil dan Efektivitas

Metode PoT menunjukkan peningkatan kualitas penyelesaian yang signifikan pada tugas-tugas yang memerlukan penalaran numerik multi-langkah. Dalam publikasi orisinalnya, metode ini diuji pada delapan dataset soal matematika dan keuangan, termasuk GSM8K, AQUA, SVAMP, FinQA, dan lainnya.

  • Peningkatan akurasi: Dalam semua kasus, PoT melampaui pendekatan dasar CoT. Rata-rata, diperoleh keuntungan relatif sebesar ~12% pada proporsi penyelesaian yang benar.
    • Pada dataset matematika populer GSM8K, akurasi model dengan PoT mencapai 71,6%, sementara dengan CoT hanya 63,1%.
    • Pada tugas-tugas keuangan, keuntungannya bahkan lebih substansial: pada dataset FinQA, akurasi meningkat dari 40,4% (CoT) menjadi 64,5% (PoT)[1].
  • Kombinasi dengan Self-Consistency: Efektivitas PoT dapat ditingkatkan lebih lanjut dengan menggabungkannya dengan metode self-consistency (konsistensi diri). Dalam kasus ini, model menghasilkan beberapa program penyelesaian yang independen, dan jawaban akhir dipilih berdasarkan «prinsip mayoritas» dari hasil eksekusinya. Dikombinasikan dengan self-consistency, PoT menetapkan state-of-the-art baru pada saat publikasi untuk semua benchmark matematika dan keuangan yang diuji[1].

Kelebihan dan Keterbatasan

Kelebihan

  • Akurasi komputasi: Keunggulan utama. Eksekusi operasi aritmetika oleh interpreter eksternal menghilangkan kesalahan pembulatan dan ketidaktepatan yang melekat pada LLM.
  • Kemampuan menggunakan pustaka: Model dapat memanfaatkan pustaka eksternal yang powerful (misalnya, untuk komputasi simbolik, analisis statistik, pemrosesan tanggal), sehingga mampu menyelesaikan tugas-tugas yang sebelumnya tidak dapat dilakukan.
  • Interpretabilitas dan kemudahan debugging: Kode program merupakan representasi logika penyelesaian yang formal dan terstruktur, sehingga lebih mudah diverifikasi dan di-debug dibandingkan penalaran dalam bahasa alami.
  • Universalitas: Pendekatan ini efektif baik dalam mode few-shot maupun zero-shot, dan dapat diterapkan di berbagai domain (matematika, keuangan, sains).

Keterbatasan

  • Keamanan: Eksekusi kode yang dihasilkan pada interpreter eksternal menimbulkan risiko keamanan. Secara teoretis, model dapat menghasilkan kode berbahaya (misalnya, untuk menghapus file). Oleh karena itu, penerapan PoT secara praktis memerlukan isolasi lingkungan eksekusi (sandbox) dan penyaringan kode yang ketat[4].
  • Keterbatasan domain: Metode ini paling efektif untuk tugas-tugas yang dapat diformalisasikan secara jelas dalam bentuk algoritma. Untuk tugas-tugas yang memerlukan pemahaman nuansa bahasa, akal sehat, atau pendekatan kreatif, penerapan langsung PoT menjadi sulit.
  • Ketergantungan pada kualitas kode: Efektivitas metode ini secara langsung bergantung pada kemampuan LLM untuk menghasilkan kode yang benar secara sintaksis dan logis.

Pendekatan Terkait

Ide penggunaan kode untuk meningkatkan penalaran LLM juga berkembang dalam berbagai pendekatan serupa lainnya.

  • Program-Aided Language Models (PAL): Metode yang diusulkan hampir bersamaan dengan PoT, yang juga menggunakan pembuatan kode Python untuk menyelesaikan tugas[5]. Secara konseptual, PAL dan PoT sangat mirip dan sama-sama mengkonfirmasi efektivitas strategi «penalaran melalui kode».
  • Tree of Thoughts (ToT): Metode yang lebih kompleks, yang mengusulkan pembuatan dan eksplorasi «pohon» kemungkinan langkah penyelesaian, yang merupakan pengembangan dari ide «rantai» pikiran yang linear. PoT dapat digunakan dalam node-node pohon tersebut untuk menguji hipotesis.

Pranala

  • Artikel ilmiah orisinal tentang Program of Thoughts Prompting
  • Panduan PoT di portal Learn Prompting

Daftar Pustaka

  • Chen, W. et al. (2023). Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks. arXiv:2211.12588.
  • Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Gao, L. et al. (2022). PAL: Program-Aided Language Models. arXiv:2211.10435.
  • Cobbe, K. et al. (2021). Training Verifiers to Solve Math Word Problems. arXiv:2110.14168.
  • Chen, Z. et al. (2021). FinQA: A Dataset of Numerical Reasoning over Financial Data. arXiv:2109.00122.
  • Zhu, F. et al. (2021). TAT-QA: A Question Answering Benchmark on a Hybrid of Tabular and Textual Content in Finance. arXiv:2105.07624.
  • Patel, A. et al. (2021). Are NLP Models Really Able to Solve Simple Math Word Problems? (Introducing SVAMP). arXiv:2103.07191.
  • Xu, F. et al. (2023). RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation. arXiv:2310.04408.
  • Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467.

Catatan

  1. 1.0 1.1 1.2 1.3 1.4 1.5 Chen, W. et al. «Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks». arXiv:2211.12588, 2023. [1]
  2. Wei, J. et al. «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models». arXiv:2201.11903, 2022. [2]
  3. «Program of Thoughts: Everything You Need to Know». The Ministry of AI. [3]
  4. 4.0 4.1 «Program of Thoughts Prompting: Enhancing Accuracy in Reasoning and Computation». Learn Prompting. [4]
  5. «PAL (Program-Aided Language Models)». Prompt Engineering Guide. [5]