---
title: "Program of Thoughts Prompting (PL)"
source: "https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)"
wiki: "systems-analysis.info/int"
article: "Program_of_Thoughts_Prompting_(PL)"
language: "pl"
categories:
  - "Category:Large language models"
  - "Category:Machine learning"
  - "Category:Polish"
  - "Category:Prompt engineering"
revision_id: 5862
wiki_created_at: 2026-09-06T23:55:05Z
wiki_modified_at: 2026-09-06T23:55:05Z
downloaded_at: 2026-09-07T23:10:45Z
---

# Program of Thoughts Prompting (PL)

**Program of Thoughts Prompting** (**PoT**, ang. «program myśli») — metoda inżynierii promptów dla dużych modeli językowych (LLM), w której model generuje kod programistyczny jako pośrednie kroki rozwiązywania zadania zamiast tekstowego wyjaśnienia<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_paper-1)</sup>. Takie podejście pozwala oddzielić logiczne rozumowanie od obliczeń matematycznych: model językowy buduje plan rozwiązania w postaci programu (na przykład w języku Python), a obliczenia są wykonywane przez zewnętrzny, deterministyczny interpreter kodu.

Metoda została zaproponowana w 2022 roku przez grupę badaczy pod przewodnictwem **Wenhu Chena** (*Wenhu Chen*) i jest skierowana przede wszystkim na zadania o charakterze numerycznym lub logicznym (zadania matematyczne, obliczenia finansowe), gdzie tradycyjne metody rozumowania, takie jak Chain-of-Thought, napotykały trudności z dokładnością obliczeń<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_paper-1)</sup>.

## Przesłanki i koncepcja

### Ograniczenia Chain-of-Thought

Metoda PoT jest rozwinięciem idei **Chain-of-Thought (CoT)** (łańcuch rozumowania), która wcześniej była głównym podejściem służącym poprawie wnioskowania logicznego LLM<sup>[\[2\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-cot_paper-2)</sup>. W metodzie CoT model generuje sekwencję pośrednich kroków w języku naturalnym. Mimo znacznej poprawy jakości rozumowania, podejście to ma fundamentalne ograniczenie: model wykonuje zarówno logikę, jak i same obliczenia w formie tekstowej. Często prowadzi to do niedokładnych operacji arytmetycznych, błędów zaokrąglenia i innych nieścisłości, ponieważ modele językowe ze swojej natury nie są precyzyjnymi kalkulatorami.

### Podstawowa idea Program of Thoughts

Podstawowa idea PoT polega na tym, aby delegować obliczenia do zewnętrznego systemu (interpretera kodu), a od modelu językowego wymagać jedynie formalizacji planu rozwiązania w postaci wykonywalnego programu<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_paper-1)</sup>. Model pełni rolę „programisty", a nie „kalkulatora".

Proces działania wygląda następująco:

1.  Model otrzymuje na wejściu zadanie (na przykład tekstowe zadanie matematyczne).
2.  Zamiast tekstowych rozumowań generuje skrypt w języku programowania (na przykład **Python**), który rozwiązuje to zadanie.
3.  Wygenerowany kod jest przekazywany do zewnętrznego interpretera, który go wykonuje.
4.  Wynik wykonania kodu jest ostateczną odpowiedzią.

W ten sposób złożone i precyzyjne obliczenia (operacje na dużych liczbach, wywołania wyspecjalizowanych bibliotek) są wykonywane nie przez sam model, lecz przez program, co zapewnia deterministyczność i wysoką dokładność<sup>[\[3\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_ministry_ai-3)</sup>.

## Implementacja i wykorzystanie bibliotek

W implementacji PoT kluczowa jest zdolność LLM do generowania poprawnego i efektywnego kodu. Autorzy podejścia korzystali z modelu **OpenAI Codex**, specjalnie wytrenowanego na zadaniach programistycznych. Podejście PoT pozwala modelowi korzystać z zewnętrznych bibliotek, co istotnie rozszerza klasę rozwiązywanych zadań. Na przykład przy rozwiązywaniu zadań matematyki symbolicznej model może wygenerować kod wykorzystujący bibliotekę **SymPy** do analitycznego rozwiązywania równań, co wykracza poza możliwości czysto językowych metod<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_paper-1)</sup>.

Prompt dla PoT może być dostarczony w dwóch trybach:

- **Few-shot**: Prompt zawiera kilka przykładów par „pytanie — program-rozwiązanie".
- **Zero-shot**: Prompt zawiera jedynie instrukcję opisującą zadanie, bez przykładów.

Nawet w trybie *zero-shot* PoT wykazuje wysoką skuteczność dzięki jawnej strukturze, którą model musi wygenerować<sup>[\[4\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_learnprompting-4)</sup>.

## Wyniki i skuteczność

Metoda PoT wykazała znaczną poprawę jakości rozwiązań w zadaniach wymagających wieloetapowego rozumowania numerycznego. W oryginalnej pracy została przetestowana na ośmiu zbiorach zadań matematycznych i finansowych, w tym **GSM8K**, **AQUA**, **SVAMP**, **FinQA** i innych.

- **Poprawa dokładności**: We wszystkich przypadkach PoT przewyższył bazowe podejście CoT. Średnio osiągnięto względny zysk wynoszący **~12%** pod względem odsetka poprawnych rozwiązań.
  - Na popularnym matematycznym zbiorze **GSM8K** dokładność modelu z PoT osiągnęła **71,6%**, podczas gdy z CoT wynosiła **63,1%**.
  - W zadaniach finansowych zysk był jeszcze bardziej znaczący: na zbiorze danych **FinQA** dokładność wzrosła z **40,4%** (CoT) do **64,5%** (PoT)<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_paper-1)</sup>.

<!-- -->

- **Kombinacja z Self-Consistency**: Skuteczność PoT może być dodatkowo poprawiona w połączeniu z metodą **samospójności** (*self-consistency*). W tym przypadku model generuje kilka niezależnych programów-rozwiązań, a ostateczna odpowiedź jest wybierana na zasadzie „głosowania większościowego" spośród wyników ich wykonania. W połączeniu z *self-consistency* PoT ustanowił nowy **stan sztuki** (*state-of-the-art*) w momencie publikacji dla wszystkich przetestowanych matematycznych i finansowych benchmarków<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_paper-1)</sup>.

## Zalety i ograniczenia

### Zalety

- **Dokładność obliczeń**: Główna zaleta. Wykonywanie operacji arytmetycznych przez zewnętrzny interpreter eliminuje błędy zaokrąglenia i nieścisłości właściwe LLM.
- **Możliwość korzystania z bibliotek**: Model może wykorzystywać potężne zewnętrzne biblioteki (na przykład do obliczeń symbolicznych, analizy statystycznej, pracy z datami), rozwiązując zadania, które wcześniej były niedostępne.
- **Interpretowalność i debugowanie**: Kod programistyczny jest formalną i ustrukturyzowaną reprezentacją logiki rozwiązania, co ułatwia jego weryfikację i debugowanie w porównaniu z rozumowaniem w języku naturalnym.
- **Uniwersalność**: Podejście jest skuteczne zarówno w trybie *few-shot*, jak i *zero-shot* oraz ma zastosowanie w różnych dziedzinach (matematyka, finanse, nauka).

### Ograniczenia

- **Bezpieczeństwo**: Wykonywanie wygenerowanego kodu na zewnętrznym interpreterze stwarza zagrożenia bezpieczeństwa. Model teoretycznie może wygenerować złośliwy kod (na przykład usuwający pliki). Dlatego praktyczne zastosowanie PoT wymaga izolacji środowiska wykonawczego (*sandbox*) i starannego filtrowania kodu<sup>[\[4\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pot_learnprompting-4)</sup>.
- **Ograniczony obszar stosowalności**: Metoda jest najskuteczniejsza w zadaniach, które można wyraźnie sformalizować w postaci algorytmu. W przypadku zadań wymagających rozumienia niuansów językowych, zdrowego rozsądku lub podejścia twórczego, bezpośrednie zastosowanie PoT jest utrudnione.
- **Zależność od jakości kodu**: Skuteczność metody jest bezpośrednio uzależniona od zdolności LLM do generowania syntaktycznie poprawnego i logicznie właściwego kodu.

## Powiązane podejścia

Idea wykorzystania kodu do poprawy rozumowania LLM znalazła rozwinięcie również w innych podobnych podejściach.

- **Program-Aided Language Models (PAL)**: Metoda zaproponowana niemal jednocześnie z PoT, która również wykorzystuje generowanie kodu Python do rozwiązywania zadań<sup>[\[5\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_note-pal_guide-5)</sup>. Koncepcyjnie PAL i PoT są bardzo zbliżone i potwierdzają skuteczność strategii „rozumowanie przez kod".
- **Tree of Thoughts (ToT)**: Bardziej złożona metoda, która proponuje generowanie i eksplorację „drzewa" możliwych kroków rozwiązania, będąca rozwinięciem idei liniowego „łańcucha" myśli. PoT może być stosowany w obrębie węzłów tego drzewa do weryfikacji hipotez.

## Odnośniki

- Oryginalna artykuł naukowy o Program of Thoughts Prompting
- Przewodnik po PoT na portalu Learn Prompting

## Literatura

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

## Przypisy

1.  <span id="cite_note-pot_paper-1">↑ <sup>[1.0](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_paper_1-0)</sup> <sup>[1.1](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_paper_1-1)</sup> <sup>[1.2](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_paper_1-2)</sup> <sup>[1.3](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_paper_1-3)</sup> <sup>[1.4](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_paper_1-4)</sup> <sup>[1.5](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_paper_1-5)</sup> Chen, W. et al. «Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks». *arXiv:2211.12588*, 2023. <a href="https://arxiv.org/abs/2211.12588" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-cot_paper-2">[↑](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-cot_paper_2-0) Wei, J. et al. «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models». *arXiv:2201.11903*, 2022. <a href="https://arxiv.org/abs/2201.11903" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-pot_ministry_ai-3">[↑](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_ministry_ai_3-0) «Program of Thoughts: Everything You Need to Know». *The Ministry of AI*. <a href="https://medium.com/@ThePromptIndex/program-of-thoughts-everything-you-need-to-know-7ebf2cb9d59c" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-pot_learnprompting-4">↑ <sup>[4.0](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_learnprompting_4-0)</sup> <sup>[4.1](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pot_learnprompting_4-1)</sup> «Program of Thoughts Prompting: Enhancing Accuracy in Reasoning and Computation». *Learn Prompting*. <a href="https://learnprompting.org/docs/advanced/decomposition/program_of_thoughts" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-pal_guide-5">[↑](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(PL)#cite_ref-pal_guide_5-0) «PAL (Program-Aided Language Models)». *Prompt Engineering Guide*. <a href="https://www.promptingguide.ai/techniques/pal" class="external autonumber" rel="nofollow">[5]</a></span>
