手順に分けて考えさせる技法
答えだけを急がず、計算の途中をメモに分けながら確かめる。チェーンオブソート(Chain-of-Thought)は、LLM に「まず〜を確認し、次に〜を判断する」というように、問題を小さな手順に分けて扱わせるプロンプトエンジニアリングの技法です。複数の段階を踏む計算や論理の問題、条件分岐の多い判断をチェックリストのように整理したいときに使われてきました。
「ステップごとに考えて」って付け足せば、どの AI でも答えが正確になるんでしょ?
そう紹介されることが多い技法だけど、モデルによって事情が違うんだ。書いても変わらない場合もあるよ。
リーズニングモデルでは前提が変わる
この技法は、特に非リーズニングモデルに対して、答えにたどり着くまでの作業の順番を促す方法として説明されてきました。
一方、リーズニングモデルには、内部で推論を進めてから答えるように訓練されたものがあります。その場合、「段階的に考えて」と明示したり、内部の推論をそのまま出力させたりする必要がないことがあります。OpenAI も、リーズニングモデルの CoT は、従来の「think step by step」で引き出す手順とは性質が異なると説明しています(Evaluating chain-of-thought monitorability)。
使うかどうかは、モデル名だけで決めず、提供元の仕様と、実際に試した評価で確かめます。
手順を書かせても正しさは別に確かめる
手順を明示すると整理しやすくなる課題はありますが、書けば常に正確になるわけではありません。手順そのものが誤っていることもあれば、モデルが知らない事実をもっともらしく補うこともあります。チェーンオブソートは、モデルの知識の外にある事実を補ってくれるものではなく、ハルシネーションは引き続き起こりえます。
業務で使うなら、モデルの推論そのものより、確かめる手順のほうを設計します。
- モデルの種類と提供元を確かめ、手順を求める必要があるかを試験する
- 生の推論を利用者にそのまま見せる前提にしない。必要なら、要点や根拠だけを別の形で返させる
- 業務の判断基準をチェック項目として明示し、最終的な結論は人や別の検証処理で確かめる
- 長い出力はトークンの消費と応答時間を増やすので、必要な細かさに抑える