---
title: "Program of Thoughts Prompting (BG)"
source: "https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)"
wiki: "systems-analysis.info/int"
article: "Program_of_Thoughts_Prompting_(BG)"
language: "bg"
categories:
  - "Category:Bulgarian"
  - "Category:Large language models"
  - "Category:Machine learning"
  - "Category:Prompt engineering"
revision_id: 5847
wiki_created_at: 2026-09-06T23:54:51Z
wiki_modified_at: 2026-09-06T23:54:51Z
downloaded_at: 2026-09-07T23:10:38Z
---

# Program of Thoughts Prompting (BG)

**Program of Thoughts Prompting** (**PoT**, англ. «програма от мисли») — това е метод за инженерия на prompt-ове за големи езикови модели (LLM), при който моделът генерира програмен код като междинни стъпки за решаване на задача вместо текстово обяснение<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_paper-1)</sup>. Този подход позволява да се отдели логическото разсъждение от математическите изчисления: езиковият модел изгражда план за решение под формата на програма (например на Python), а изчисленията се извършват от външен, детерминиран интерпретатор на код.

Методът е предложен през 2022 година от група изследователи начело с **Уенху Чен** (*Wenhu Chen*) и е насочен преди всичко към задачи от числов или логически характер (математически задачи, финансови изчисления), при които традиционните методи за разсъждение, като Chain-of-Thought, се сблъскват с трудности при точността на изчисленията<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_paper-1)</sup>.

## Предпоставки и концепция

### Ограничения на Chain-of-Thought

Методът PoT е развитие на идеята **Chain-of-Thought (CoT)** (верига от разсъждения), който преди това беше основният подход за подобряване на логическия извод при LLM<sup>[\[2\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-cot_paper-2)</sup>. При метода CoT моделът генерира последователност от междинни стъпки на естествен език. Въпреки значителното подобряване на качеството на разсъжденията, този подход има фундаментално ограничение: моделът изпълнява и логиката, и самите изчисления в текстова форма. Това често води до неточни аритметични операции, грешки при закръгляване и други неточности, тъй като езиковите модели по своята природа не са точни калкулатори.

### Основна идея на Program of Thoughts

Основната идея на PoT се състои в това да се делегират изчисленията на външна система (интерпретатор на код), а от езиковия модел да се изисква само формализиране на плана за решение под формата на изпълнима програма<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_paper-1)</sup>. Моделът играе ролята на „програмист", а не на „изчислител".

Процесът на работа изглежда по следния начин:

1.  Моделът получава на вход задача (например текстова математическа задача).
2.  Вместо текстови разсъждения той генерира скрипт на език за програмиране (например **Python**), който решава тази задача.
3.  Генерираният код се предава на външен интерпретатор, който го изпълнява.
4.  Резултатът от изпълнението на кода е окончателният отговор.

По този начин сложните и точни изчисления (операции с големи числа, извикване на специализирани библиотеки) се извършват не от самия модел, а от програмата, което осигурява детерминираност и висока точност<sup>[\[3\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_ministry_ai-3)</sup>.

## Реализация и използване на библиотеки

При реализацията на PoT ключова е способността на LLM да генерира коректен и ефективен код. Авторите на подхода са използвали модела **OpenAI Codex**, специално обучен за задачи по програмиране. Подходът PoT позволява на модела да използва външни библиотеки, което съществено разширява класа на решаваните задачи. Например при решаването на задачи по символна математика моделът може да генерира код, използващ библиотеката **SymPy** за аналитично решаване на уравнения, което излиза извън рамките на възможностите на чисто езиковите методи<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_paper-1)</sup>.

Подсказката за PoT може да бъде предоставена в два режима:

- **Few-shot**: В prompt-а се съдържат няколко примера двойки „въпрос — програма-решение".
- **Zero-shot**: В prompt-а се дава само инструкция, описваща задачата, без примери.

Дори в режим *zero-shot* PoT показва висока ефективност благодарение на явната структура, която моделът трябва да генерира<sup>[\[4\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_learnprompting-4)</sup>.

## Резултати и ефективност

Методът PoT демонстрира значително повишаване на качеството на решенията при задачи, изискващи многостъпково числово разсъждение. В оригиналната работа той е тестван върху осем набора от математически и финансови задачи, включително **GSM8K**, **AQUA**, **SVAMP**, **FinQA** и др.

- **Повишаване на точността**: Във всички случаи PoT превъзхожда базовия подход CoT. Средно е постигнато относително предимство от **~12%** по дял на правилните решения.
  - На популярния математически набор **GSM8K** точността на модела с PoT достига **71,6%**, докато с CoT тя е **63,1%**.
  - При финансовите задачи предимството е още по-съществено: на dataset-а **FinQA** точността се увеличава от **40,4%** (CoT) до **64,5%** (PoT)<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_paper-1)</sup>.

<!-- -->

- **Комбинация със Self-Consistency**: Ефективността на PoT може да бъде допълнително подобрена при съчетаване с метода на **самосъгласуваност** (*self-consistency*). В този случай моделът генерира няколко независими програми-решения и крайният отговор се избира по „принципа на мнозинството" от резултатите от тяхното изпълнение. В съчетание със *self-consistency* PoT установява ново **state-of-the-art** към момента на публикуването за всички тествани математически и финансови benchmark-а<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_paper-1)</sup>.

## Предимства и ограничения

### Предимства

- **Точност на изчисленията**: Главното предимство. Изпълнението на аритметичните операции от външен интерпретатор отстранява грешките при закръгляване и неточностите, присъщи на LLM.
- **Възможност за използване на библиотеки**: Моделът може да привлича мощни външни библиотеки (например за символни изчисления, статистически анализ, работа с дати), решавайки задачи, които преди са били недостъпни.
- **Интерпретируемост и отстраняване на грешки**: Програмният код е формално и структурирано представяне на логиката на решението, което улеснява неговата проверка и отстраняване на грешки в сравнение с разсъжденията на естествен език.
- **Универсалност**: Подходът е ефективен както в *few-shot*, така и в *zero-shot* режим и е приложим в различни домейни (математика, финанси, наука).

### Ограничения

- **Сигурност**: Изпълнението на генерирания код на външен интерпретатор създава рискове за сигурността. Моделът теоретично може да генерира злонамерен код (например за изтриване на файлове). Затова практическото приложение на PoT изисква изолиране на средата за изпълнение (*sandbox*) и внимателна филтрация на кода<sup>[\[4\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pot_learnprompting-4)</sup>.
- **Ограничена приложна област**: Методът е най-ефективен за задачи, които могат ясно да бъдат формализирани като алгоритъм. За задачи, изискващи разбиране на езикови нюанси, здрав разум или творчески подход, прякото приложение на PoT е затруднено.
- **Зависимост от качеството на кода**: Ефективността на метода пряко зависи от способността на LLM да генерира синтактично коректен и логически правилен код.

## Свързани подходи

Идеята за използване на код за подобряване на разсъжденията на LLM е получила развитие и в други сходни подходи.

- **Program-Aided Language Models (PAL)**: Метод, предложен почти едновременно с PoT, който също използва генерация на Python-код за решаване на задачи<sup>[\[5\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_note-pal_guide-5)</sup>. Концептуално PAL и PoT са много близки и потвърждават ефективността на стратегията „разсъждение чрез код".
- **Tree of Thoughts (ToT)**: По-сложен метод, който предлага генериране и изследване на „дърво" от възможни стъпки за решение, което представлява развитие на идеята за линейна „верига" от мисли. PoT може да бъде използван в рамките на възлите на това дърво за проверка на хипотези.

## Препратки

- Оригинална научна статия за Program of Thoughts Prompting
- Ръководство за PoT на портала Learn Prompting

## Литература

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

## Бележки

1.  <span id="cite_note-pot_paper-1">↑ <sup>[1.0](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_ref-pot_paper_1-0)</sup> <sup>[1.1](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_ref-pot_paper_1-1)</sup> <sup>[1.2](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_ref-pot_paper_1-2)</sup> <sup>[1.3](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_ref-pot_paper_1-3)</sup> <sup>[1.4](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#cite_ref-pot_paper_1-4)</sup> <sup>[1.5](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#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_(BG)#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_(BG)#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_(BG)#cite_ref-pot_learnprompting_4-0)</sup> <sup>[4.1](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(BG)#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_(BG)#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>
