---
title: "Program of Thoughts Prompting (SV)"
source: "https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)"
wiki: "systems-analysis.info/int"
article: "Program_of_Thoughts_Prompting_(SV)"
language: "sv"
categories:
  - "Category:Large language models"
  - "Category:Machine learning"
  - "Category:Prompt engineering"
  - "Category:Swedish"
revision_id: 5865
wiki_created_at: 2026-09-06T23:55:08Z
wiki_modified_at: 2026-09-06T23:55:08Z
downloaded_at: 2026-09-07T23:10:46Z
---

# Program of Thoughts Prompting (SV)

**Program of Thoughts Prompting** (**PoT**, eng. «program of thoughts») — är en metod inom prompt engineering för stora språkmodeller (LLM), där modellen genererar programkod som mellanliggande steg i lösningen av en uppgift, istället för en textbaserad förklaring<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_paper-1)</sup>. Detta tillvägagångssätt gör det möjligt att separera logiskt resonemang från matematiska beräkningar: språkmodellen konstruerar en lösningsplan i form av ett program (exempelvis i Python), medan beräkningarna utförs av en extern, deterministisk kodtolk.

Metoden föreslogs år 2022 av en forskargrupp ledd av **Wenhu Chen** och riktar sig framför allt mot uppgifter av numerisk eller logisk karaktär (matematikuppgifter, finansiella beräkningar), där traditionella resonemangsmetoder som Chain-of-Thought stötte på svårigheter med beräkningsprecision<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_paper-1)</sup>.

## Förutsättningar och koncept

### Begränsningar hos Chain-of-Thought

PoT-metoden är en vidareutveckling av idén bakom **Chain-of-Thought (CoT)** (tankekedja), som tidigare var det huvudsakliga tillvägagångssättet för att förbättra logisk slutledning hos LLM<sup>[\[2\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-cot_paper-2)</sup>. I CoT-metoden genererar modellen en sekvens av mellanliggande steg på naturligt språk. Trots en avsevärd förbättring av resonemangets kvalitet har detta tillvägagångssätt en fundamental begränsning: modellen utför både logiken och själva beräkningarna i textform. Detta leder ofta till inexakta aritmetiska operationer, avrundningsfel och andra brister, eftersom språkmodeller till sin natur inte är precisa räknare.

### Grundidén bakom Program of Thoughts

Grundidén med PoT är att delegera beräkningarna till ett externt system (en kodtolk), och att endast kräva att språkmodellen formaliserar lösningsplanen i form av ett körbart program<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_paper-1)</sup>. Modellen agerar som "programmerare" snarare än "räknare".

Arbetsprocessen ser ut som följer:

1.  Modellen tar emot en uppgift som indata (exempelvis en textbaserad matematikuppgift).
2.  Istället för textbaserade resonemang genererar den ett skript i ett programmeringsspråk (exempelvis **Python**) som löser uppgiften.
3.  Den genererade koden skickas till en extern tolk som kör den.
4.  Resultatet av kodkörningen är det slutgiltiga svaret.

På detta sätt utförs komplexa och precisa beräkningar (operationer med stora tal, anrop till specialiserade bibliotek) inte av modellen själv utan av programmet, vilket säkerställer determinism och hög precision<sup>[\[3\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_ministry_ai-3)</sup>.

## Implementering och användning av bibliotek

Vid implementering av PoT är LLM:ens förmåga att generera korrekt och effektiv kod avgörande. Metodens upphovsmän använde modellen **OpenAI Codex**, som är specialtränad på programmeringsuppgifter. PoT-metoden gör det möjligt för modellen att använda externa bibliotek, vilket väsentligt utökar klassen av lösbara uppgifter. Exempelvis kan modellen vid lösning av symboliska matematikuppgifter generera kod som använder biblioteket **SymPy** för analytisk lösning av ekvationer, vilket går bortom möjligheterna hos rent språkliga metoder<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_paper-1)</sup>.

En prompt för PoT kan ges i två lägen:

- **Few-shot**: Prompten innehåller flera exempel på par av typen "fråga — lösningsprogram".
- **Zero-shot**: Prompten innehåller endast en instruktion som beskriver uppgiften, utan exempel.

Även i *zero-shot*-läget uppvisar PoT hög effektivitet tack vare den tydliga struktur som modellen förväntas generera<sup>[\[4\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_learnprompting-4)</sup>.

## Resultat och effektivitet

PoT-metoden har visat en betydande förbättring av lösningskvaliteten på uppgifter som kräver flerstegsbaserat numeriskt resonemang. I den ursprungliga studien testades den på åtta uppsättningar av matematik- och finansuppgifter, däribland **GSM8K**, **AQUA**, **SVAMP**, **FinQA** med flera.

- **Förbättrad precision**: I samtliga fall överträffade PoT det grundläggande CoT-tillvägagångssättet. I genomsnitt uppnåddes en relativ förbättring på **~12%** i andelen korrekta lösningar.
  - På den populära matematiska datamängden **GSM8K** nådde modellens precision med PoT **71,6%**, medan den med CoT låg på **63,1%**.
  - Vid finansiella uppgifter var förbättringen ännu mer påtaglig: på datasetet **FinQA** ökade precisionen från **40,4%** (CoT) till **64,5%** (PoT)<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_paper-1)</sup>.

<!-- -->

- **Kombination med Self-Consistency**: PoT:s effektivitet kan ytterligare förbättras i kombination med metoden **självkonsistens** (*self-consistency*). I detta fall genererar modellen flera oberoende lösningsprogram, och det slutgiltiga svaret väljs enligt "majoritetsprincipen" utifrån resultaten av deras körning. I kombination med *self-consistency* etablerade PoT ett nytt **state-of-the-art** vid publiceringstillfället för samtliga testade matematik- och finansbenchmarks<sup>[\[1\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_paper-1)</sup>.

## Fördelar och begränsningar

### Fördelar

- **Beräkningsprecision**: Den huvudsakliga fördelen. Att utföra aritmetiska operationer med en extern tolk eliminerar avrundningsfel och de inexaktheter som är inneboende i LLM.
- **Möjlighet att använda bibliotek**: Modellen kan utnyttja kraftfulla externa bibliotek (exempelvis för symboliska beräkningar, statistisk analys, datumhantering) och lösa uppgifter som tidigare var otillgängliga.
- **Tolkningsbarhet och felsökning**: Programkod är en formell och strukturerad representation av lösningslogiken, vilket underlättar granskning och felsökning jämfört med resonemang på naturligt språk.
- **Mångsidighet**: Metoden är effektiv både i *few-shot*- och *zero-shot*-lägen och är tillämpbar inom olika domäner (matematik, finans, naturvetenskap).

### Begränsningar

- **Säkerhet**: Exekvering av genererad kod i en extern tolk skapar säkerhetsrisker. Modellen kan i teorin generera skadlig kod (exempelvis för att radera filer). Praktisk tillämpning av PoT kräver därför isolering av körningsmiljön (*sandbox*) och noggrann filtrering av koden<sup>[\[4\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pot_learnprompting-4)</sup>.
- **Begränsat tillämpningsområde**: Metoden är mest effektiv för uppgifter som tydligt kan formaliseras som en algoritm. För uppgifter som kräver förståelse av språkliga nyanser, sunt förnuft eller ett kreativt tillvägagångssätt är direkt tillämpning av PoT svår.
- **Beroende av kodkvalitet**: Metodens effektivitet beror direkt på LLM:ens förmåga att generera syntaktiskt korrekt och logiskt riktig kod.

## Relaterade metoder

Idén att använda kod för att förbättra LLM:ens resonemang har utvecklats även inom andra liknande metoder.

- **Program-Aided Language Models (PAL)**: En metod som föreslogs nästan samtidigt med PoT och som också använder generering av Python-kod för att lösa uppgifter<sup>[\[5\]](https://systems-analysis.info/int/Program_of_Thoughts_Prompting_(SV)#cite_note-pal_guide-5)</sup>. Konceptuellt är PAL och PoT mycket nära varandra och bekräftar effektiviteten hos strategin "resonemang genom kod".
- **Tree of Thoughts (ToT)**: En mer komplex metod som föreslår att man genererar och utforskar ett "träd" av möjliga lösningssteg, vilket är en vidareutveckling av idén om den linjära "tankekedjan". PoT kan användas inom trädets noder för att verifiera hypoteser.

## Hänvisningar

- Originalet vetenskaplig artikel om Program of Thoughts Prompting
- Guide till PoT på portalen Learn Prompting

## Litteratur

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

## Noter

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