Program of Thoughts Prompting (TR)

From Systems analysis Wiki
Jump to navigation Jump to search

Program of Thoughts Prompting (PoT, İng. "düşünce programı") — büyük dil modelleri (LLM) için bir prompt mühendisliği yöntemidir; bu yöntemde model, görevi çözmek için metin açıklaması yerine ara adımlar olarak program kodu üretir[1]. Bu yaklaşım, mantıksal akıl yürütmeyi matematiksel hesaplamalardan ayırmaya olanak tanır: dil modeli çözüm planını bir program biçiminde (örneğin Python'da) oluşturur, hesaplamalar ise harici, deterministik bir kod yorumlayıcısı tarafından gerçekleştirilir.

Yöntem 2022 yılında Wenhu Chen liderliğindeki bir araştırmacı grubu tarafından önerilmiş olup öncelikle sayısal veya mantıksal nitelikteki görevlere (matematik problemleri, finansal hesaplamalar) yönelik tasarlanmıştır; bu tür görevlerde Chain-of-Thought gibi geleneksel akıl yürütme yöntemleri hesaplama doğruluğu konusunda güçlüklerle karşılaşmaktaydı[1].

Ön Koşullar ve Kavram

Chain-of-Thought Yönteminin Sınırlılıkları

PoT yöntemi, daha önce LLM'lerin mantıksal çıkarımını geliştirmeye yönelik temel yaklaşım olan Chain-of-Thought (CoT) (düşünce zinciri) fikrinin bir gelişimidir[2]. CoT yönteminde model, doğal dilde bir dizi ara adım üretir. Akıl yürütme kalitesinde kayda değer bir artış sağlamasına rağmen bu yaklaşımın temel bir sınırlılığı vardır: model hem mantığı hem de hesaplamaların kendisini metin biçiminde gerçekleştirir. Bu durum, dil modellerinin doğası gereği hassas bir hesap makinesi olmadığından sıklıkla yanlış aritmetik işlemlere, yuvarlama hatalarına ve diğer hatalara yol açar.

Program of Thoughts'ın Temel Fikri

PoT'un temel fikri, hesaplamaları harici bir sisteme (kod yorumlayıcısına) devretmek ve dil modelinden yalnızca çözüm planını çalıştırılabilir bir program biçiminde resmileştirmesini istemektir[1]. Model bir "hesaplayıcı" değil, "programcı" rolünü üstlenir.

Çalışma süreci şu şekilde işler:

  1. Model girdi olarak bir görev alır (örneğin, metin biçiminde bir matematik problemi).
  2. Metin tabanlı akıl yürütme yerine bu görevi çözen bir programlama dili betiği (örneğin Python) üretir.
  3. Üretilen kod, onu çalıştıran harici bir yorumlayıcıya aktarılır.
  4. Kodun çalıştırılmasının sonucu nihai yanıt olur.

Bu sayede karmaşık ve hassas hesaplamalar (büyük sayılarla işlemler, özel kütüphanelere çağrılar) modelin kendisi tarafından değil, program tarafından gerçekleştirilir; bu da determinizm ve yüksek doğruluk sağlar[3].

Uygulama ve Kütüphane Kullanımı

PoT uygulamasında kilit unsur, LLM'nin doğru ve etkili kod üretebilme kapasitesidir. Yaklaşımın yazarları, programlama görevleri üzerinde özel olarak eğitilmiş OpenAI Codex modelini kullandı. PoT yaklaşımı, modelin harici kütüphanelerden yararlanmasına olanak tanıyarak çözülebilir görev sınıfını önemli ölçüde genişletir. Örneğin, sembolik matematik görevlerini çözerken model, denklemlerin analitik çözümü için SymPy kütüphanesini kullanan bir kod üretebilir; bu, salt dil tabanlı yöntemlerin kapsamı dışında bir yetenektir[1].

PoT için prompt iki modda sağlanabilir:

  • Few-shot: Prompt, "soru — çözüm programı" çiftlerinden oluşan birkaç örnek içerir.
  • Zero-shot: Prompt yalnızca görevi tanımlayan bir talimat içerir, örnek bulunmaz.

Zero-shot modunda bile PoT, modelin üretmesi gereken açık yapı sayesinde yüksek verimlilik gösterir[4].

Sonuçlar ve Verimlilik

PoT yöntemi, çok adımlı sayısal akıl yürütme gerektiren görevlerde çözüm kalitesinde kayda değer bir artış sergiledi. Orijinal çalışmada GSM8K, AQUA, SVAMP, FinQA ve diğerleri dahil sekiz matematik ve finans görev seti üzerinde test edildi.

  • Doğruluk artışı: Tüm durumlarda PoT, temel CoT yaklaşımını geride bıraktı. Ortalama olarak doğru çözüm oranında yaklaşık %12 göreli kazanım elde edildi.
    • Popüler matematik seti GSM8K üzerinde PoT ile modelin doğruluğu %71,6ya ulaşırken CoT ile bu oran %63,1 idi.
    • Finansal görevlerde kazanım daha da belirgin oldu: FinQA dataset'inde doğruluk %40,4 (CoT) seviyesinden %64,5 (PoT) seviyesine yükseldi[1].
  • Self-Consistency ile Kombinasyon: PoT'un verimliliği, öz-tutarlılık (self-consistency) yöntemiyle birleştirildiğinde daha da artırılabilir. Bu durumda model birbirinden bağımsız birden fazla çözüm programı üretir ve nihai yanıt, bunların çalıştırılma sonuçları arasından "çoğunluk ilkesine" göre seçilir. Self-consistency ile birleştirildiğinde PoT, yayın tarihinde test edilen tüm matematik ve finans benchmark'larında yeni bir state-of-the-art belirledi[1].

Avantajlar ve Sınırlılıklar

Avantajlar

  • Hesaplama doğruluğu: Temel avantaj. Aritmetik işlemlerin harici yorumlayıcı tarafından gerçekleştirilmesi, LLM'lere özgü yuvarlama hatalarını ve yanlışlıkları ortadan kaldırır.
  • Kütüphane kullanım imkânı: Model, güçlü harici kütüphanelerden (örneğin sembolik hesaplama, istatistiksel analiz, tarih işleme için) yararlanarak daha önce mümkün olmayan görevleri çözebilir.
  • Yorumlanabilirlik ve hata ayıklama: Program kodu, çözüm mantığının biçimsel ve yapılandırılmış bir temsilidir; bu da doğal dil akıl yürütmesine kıyasla incelenmesini ve hata ayıklanmasını kolaylaştırır.
  • Evrensellik: Yaklaşım hem few-shot hem de zero-shot modlarında etkilidir ve farklı alanlarda (matematik, finans, bilim) uygulanabilir.

Sınırlılıklar

  • Güvenlik: Üretilen kodun harici yorumlayıcıda çalıştırılması güvenlik riskleri doğurur. Model teorik olarak zararlı kod (örneğin dosyaları silmek için) üretebilir. Bu nedenle PoT'un pratik uygulaması, çalıştırma ortamının izole edilmesini (sandbox) ve kodun dikkatli biçimde filtrelenmesini gerektirir[4].
  • Sınırlı uygulama alanı: Yöntem, bir algoritma biçiminde net olarak resmileştirilebilen görevler için en etkilidir. Dil nüanslarının anlaşılmasını, sağduyuyu veya yaratıcı yaklaşımı gerektiren görevler için PoT'un doğrudan uygulanması güçtür.
  • Kod kalitesine bağımlılık: Yöntemin verimliliği, LLM'nin sözdizimsel olarak doğru ve mantıksal açıdan tutarlı kod üretme kapasitesine doğrudan bağlıdır.

İlgili Yaklaşımlar

LLM akıl yürütmesini geliştirmek için kod kullanımı fikri başka benzer yaklaşımlarda da gelişim gösterdi.

  • Program-Aided Language Models (PAL): PoT ile neredeyse eş zamanlı olarak önerilen ve görevleri çözmek için Python kodu üretimini kullanan bir yöntem[5]. Kavramsal olarak PAL ve PoT birbirine çok yakın olup "kod aracılığıyla akıl yürütme" stratejisinin etkinliğini doğrular.
  • Tree of Thoughts (ToT): Doğrusal "düşünce zinciri" fikrinin bir gelişimi olan, olası çözüm adımlarından oluşan bir "ağacı" üretmeyi ve keşfetmeyi öneren daha karmaşık bir yöntem. PoT, hipotezleri doğrulamak için bu ağacın düğümlerinde kullanılabilir.

Dış bağlantılar

  • Program of Thoughts Prompting hakkındaki orijinal bilimsel makale
  • Learn Prompting portalında PoT rehberi

Kaynakça

  • 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.

Notlar

  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]