長い計算を含む質問では、モデルが途中で数字を取り違えます。考え方を文章で書かせたうえで、計算の部分だけをコードに置き換えると、間違いの入る余地を減らせます。Learn Prompting が Program of Thoughts と呼ぶ型を、手元で再現できる順番に直します。

手順1:計算が要る問題かを見分ける
最初に、問いに数値の計算が含まれるかを見ます。合計、比率、期間の重なり、順位の入れ替えなどが入っていれば対象です。文章の要約や言い換えだけなら、この手順は不要です。見分けたら、計算に使う数値を問題文から抜き出し、単位も一緒に書き出します。単位の取り違えは、コードにしても直りません。
手順2:解き方だけを文章で書かせる
数値を入れずに、解く順番だけを文章で書かせます。何を求めて、そのために何を先に出すのかを並べる形です。ここで数値を出させないのが要点になります。文章の段階で計算までさせると、そこに誤りが混ざり、あとから切り分けられなくなります。
手順3:コードとして書かせる
手順2の順番を、そのまま計算するコードにします。入力の数値は変数として先に置き、最後に結果を出力する形にします。使う言語は、手元で実行できるものを指定します。表の集計なら、表計算の関数でも構いません。外部のライブラリが要る場合は、その名前も指定しておきます。
手順4:手元で実行して結果を取る
出てきたコードを、自分の環境で実行します。実行できない場合は、その時点で止めます。動かさずに結果だけを読むと、モデルの暗算に戻ってしまいます。エラーが出たときは、エラーの文言をそのままモデルに返し、直させる範囲を最小にします。数式の立て方から書き直させると、別の誤りが入ります。
手順5:答えの桁と単位を検算する
実行結果の桁と単位を、問題文と突き合わせます。桁が大きく違う場合は、単位の変換か、割合の掛け忘れが原因です。結果を文章に戻すときは、計算の途中経過を消し、結論と根拠の数値だけを残します。途中の式をそのまま載せると、読み手が検算できず、誤りが見えにくくなります。
うまく回らないときに見る場所
コードが動かないときは、エラーの文言をそのまま返します。数式の立て方から書き直させると、別の誤りが入ります。結果の桁が合わないときは、単位の変換を先に疑います。金額と件数のように、同じ数字でも単位が違う値が混ざると、式は合っていても答えがずれます。
FAQ
Q. コードを書かせずに、式だけ書かせても同じですか?
A. 式だけでは、計算の実行をモデルに任せることになります。式の立て方が正しくても、最後の計算で誤ることがあります。実行できる形にするほうが、誤りの入る場所を減らせます。
Q. 出てきたコードをそのまま実行して安全ですか?
A. 外部に接続する処理やファイルを消す処理が混ざる場合があります。実行する前に、読み込みと出力の部分だけかどうかを目で確認します。業務の環境では、隔離した実行環境を用意するのが無難です。
出典
出典:Learn Prompting「Program of Thoughts:計算をコードに任せる推論」(原題 Program of Thoughts Prompting: Enhancing Accuracy in Reasoning and Computation、2024年10月1日更新)。表の形で整理する考え方はChain of Verificationの頁も参考になります。
あわせて使いたいツール
本記事の手順を実際に回すときに、候補になるツールを挙げます。いずれも無料から試せる範囲があり、料金や機能は各サービスの公式情報で確認してください。
関連ガイド
同じ時期に公開した実務ガイドと、用語の定義ページです。手順の前提が分からない場合は、用語ページから確認してください。コピーして使える依頼文が欲しいときは、プロンプト集も参照してください。
- 考える過程を短く保つ:Chain of Draft の5手順
- 調べてから答える順番を組む:ReAct の5手順
- 推論モデル(用語辞典)
- AI用語辞典(五十音順の一覧)
- はじめての LLM 活用(学習ルート)
- ガイド一覧(実務手順をまとめて読む)
- AIツール一覧(道具から探す)
- 比較記事一覧(料金と機能で比べる)
- レビュー一覧(使った記録を読む)
最新のAI情報をメールで受け取る
新着のAIツール比較・ランキング・ニュースを、まとめてお届けします。
ご登録後、確認メールをお送りします。配信停止はいつでも可能です。
