思考の連鎖
Chain-of-Thought Prompting
概要(サマリー)
思考の連鎖とは、LLMに最終の答えだけを出させず、途中の考えを順に出させてから結論へ到達させる方法である。英語では chain-of-thought prompting と呼ばれる。
人が複数段の計算で、途中式を書いてから答えるのに近い。2022年の論文では、途中の手順が書いてある見本を数個見せると、大きなモデルの算数、常識、記号の問題で成績が上がった、と報告されている。
チャットで「ステップバイステップで考えて」と頼むのも、この系統の使い方として広まった。ただし、途中の文章が滑らかでも、結論が正しいとは限らない。
詳細解説
論文でのやり方
Weiらの論文が扱った思考の連鎖は、ただ「よく考えて」と書くことではない。フューショットの見本を、入力と答えの対ではなく、入力、途中の考え、答えの3つ組にする。
モデルは、その見本と同じように、自分の出力でも途中の文を生成してから結論を書く。論文は、十分な大きさのモデルで、この方法が複数段の推論に効いたと示している。小さいモデルでは、それらしい途中式を書いても、論理が崩れることがある、とも述べている。
見本の手順が間違っていると、その間違い方を真似る。最終の数だけが正しい見本より、途中が追える見本のほうがこの方法では重要になる。
チャットでの短い頼み方
見本を用意できないとき、人は「手順を書いてから答えて」と一文だけ足す。これは見本なしの頼み方で、論文のフューショットとは同じ操作ではない。同じ2022年に、東京大学などの小島らが、答えの前に「Let's think step by step」と足すだけでも推論の成績が上がると報告し、これを Zero-shot-CoT と呼んだ。条件を飛ばして結論だけを書かせるより、抜けに気づきやすいことがある。
次の条件を番号つきで確認してから、最後の行にだけ「可能」または「不可」と書いてください。
1. 返品期限は到着から14日以内か
2. 商品は未使用か
3. 両方を満たすときだけ可能
到着: 10月1日
今日: 10月20日
状態: 開封済み
手順を書かせる目的は、読んだ人、または次の処理が、どの条件で落ちたかを見られるようにすることである。手順そのものを利用者へ見せる必要がなければ、内部で使って、画面には結論だけを出す。
推論モデルとの違い
推論向けのモデルは、こちらが頼まなくても、応答の前に内部で考えのトークンを使うことがある。OpenAIの推論モデルや、Claudeの拡張思考(extended thinking)がその例である。その内部の過程は、APIによっては返ってこない。
そのモデルに、さらに長い思考の連鎖を文章で書かせると、同じ検討を二重にすることになる。待ち時間とトークンが増え、結論が良くなるとは限らない。内部で考えるモデルなら、見えてほしいのは途中式の全文ではなく、確認した条件と最終判断であることが多い。
それらしい手順は検証ではない
ハルシネーションは、途中式にも起きる。存在しない仕様を引用し、その仕様から結論を導く、という形になる。手順があるぶん、人が正しそうに感じて見落としやすい。
計算、日付、ファイルの有無は、モデルの文章ではなく、別の処理で確認する。思考の連鎖は、確認項目を漏らさず並べる手助けであり、実行結果の代わりにはならない。
秘密にしておきたいシステムプロンプトや、内部の判断ルールを「思考過程として全部書いて」と頼むと、隠しておきたい文面が出力へ出ることがある。見せてよい過程と、出してはいけない情報は分けて指示する。
AIコーディングとの関係
バグの原因を聞くとき、「考えられる原因を自信の強い順に3つ、それぞれに確認コマンドを添えて」と頼むと、思考の連鎖をコードの調査へ使える。いきなり修正パッチだけを書かせると、確認前の推測がファイルへ入る。
見本を添えるなら、過去の調査メモの「症状、見た場所、結論」を1件だけ使う。長い思考の全文を毎回貼ると、窓を占有する。
AIにレビューさせるときは、手順を無限に増やさない。確認するファイル、実行するテスト、完了とみなす条件を、こちらが先に限る。モデルが手順を追加し始めると、関係の薄い修正まで提案しやすい。
よくある勘違い
手順を書かせれば正解になる?
複数段の問題で漏れに気づきやすくなる、という方法である。手順の文が正しく見えても、前提が間違っていれば結論もずれる。
フューショットと同じ?
フューショットは見本を見せる方法全般である。思考の連鎖は、その見本や出力に途中の考えを含める使い方である。形式だけを合わせたい分類では、途中式は不要なことがある。
推論モデルなら、この頼み方はいつも有効?
内部ですでに考えているモデルでは、長い途中式を追加で書かせることが改善になるとは限らない。トークンと待ち時間が増える。
思考過程は見せたほうが信頼できる?
人が確認できる、という意味では役立つ。ただし、滑らかな文章は正しさの証拠ではない。秘密の指示を思考過程として出させると、漏えいの経路にもなる。
まとめ
- 思考の連鎖は、最終回答の前に途中の考えを生成させるプロンプトの方法である
- 論文のやり方は、途中手順つきの見本を数個見せるフューショットである
- 「ステップごとに考えて」という一文は、見本なしの近い頼み方であり、同じ操作ではない
- 手順が滑らかでも、事実や計算の正しさは別途確認する
- 推論モデルへ長い途中式を重ねると、費用が増えるだけで改善しないことがある
情報ソース
- Wei et al. 2022: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
- Kojima et al. 2022: Large Language Models are Zero-Shot Reasoners
- Claude Docs: Prompt engineering(examples)
より詳しくAIに聞いてみよう
- 思考の連鎖を、途中式のある計算のたとえで説明してください。
- 論文のフューショットと、「ステップバイステップで」という一文の違いを整理してください。
- 手順が詳しくても答えが間違える例を、日付の条件で作ってください。
- 推論モデルに思考の連鎖を重ねると、何が増えて何は保証されないか教えてください。
- バグ調査で、修正コードの前に確認手順だけを出させる指示文を書いてください。