AI・機械学習
上級

Program of Thoughts(PoT)(プログラムオブソーツ)

LLMが数値計算や論理的推論をPythonコードとして生成し、コードインタープリタで実行して正確な答えを得るプロンプト手法。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
コード生成
数学的推論
Chain of Thought
AI

Program of Thoughts(PoT)とは

Program of Thoughts(PoT)は2022年にChen et al.が提案したLLM推論フレームワーク。Chain of Thought(CoT)がLLMの内部計算で推論を行うのに対し、PoTはLLMにPythonコードを生成させ、それを外部インタープリタで実行することで計算を行う。

核心的な洞察は「LLMは論理的な構造を書くのが得意だが、数値計算は苦手」という点。Pythonコードへの変換によって、演算精度を100%にしながら複雑な推論も処理できる。

CoTとPoTの比較

問題: 「30人のクラスで60%が女子、女子の40%がメガネをかけている。メガネをかけた女子は何人?」

Chain of Thought: LLMが直接計算 → 丸め誤差が発生する場合あり。

Program of Thoughts: Pythonコードを生成して実行。girls = 30 * 0.60、girls_with_glasses = girls * 0.40、print(int(girls_with_glasses)) → 確実に正確な答えを出力。

実装方法

LLMにPythonコード生成プロンプトを送り、出力コードをサンドボックス環境(subprocess + tempfileまたはRestrictedPython)で実行する。実行結果をそのまま答えとして返す。セキュリティのためexec()の直接使用は禁止し、必ずサンドボックス化が必要。

ベンチマーク性能

GSM8K(小学校算数レベルの文章題)での比較:

  • Standard Prompting(GPT-3): 56.4%
  • Chain of Thought(GPT-3): 56.9%(+0.5%)
  • Program of Thoughts(GPT-3): 71.6%(+15.2%)

特に計算ステップが多い問題での差が顕著。4ステップ以上の計算ではPoTがCoTを大幅に上回る。

PoTの強みと適用場面

適用に最適なタスク: 多ステップの算術・代数計算、統計・確率の計算、物理・化学方程式の数値解法、ファイナンス計算(複利・NPV・IRR)、日付・時間計算。

弱点: 常識的推論や曖昧な質問には不向き。コード実行環境の整備が必要。セキュリティリスク(コードインジェクション対策必須)。コード生成に失敗すると全く答えられない。

PoTとReActの組み合わせ

実際のエージェント設計では、PoTをReActのActionの一つとして組み込むケースが多い。計算が必要なThoughtが出たらPoTを呼び出し、一般検索が必要なら通常の検索ツールを使う、というハイブリッドアプローチが現在主流になっている。OpenAI Code Interpreterはこの思想の商用実装で、サンドボックス化された安全な実行環境を提供している。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7