JA EN
体系LLM — 大規模言語モデル
·無料·論文·10分で読めます

プロンプトエンジニアリングの科学 — 何が実証され、何が迷信か

「ステップバイステップで考えて」は効くのか。Chain-of-Thought論文(Wei et al., 2022)の本文だけを根拠に、実験で実証されたこと(規模の閾値を超えたモデルでのみ効く創発)と、巷の呪文の多くが未検証であることの線引きをする。

対象textタスクprompting

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

一次資料 — この記事の根拠

論文の発表 2022-01-28この解説の公開 2026-08-064年6か月後

Chain-of-Thought Prompting Elicits Reasoning in Large Language ModelsJason Wei, Xuezhi Wang, Dale Schuurmans ほか · 2022-01-28 · v6arXiv:2201.11903論文ページ·PDF
原文の要旨(Abstract)を読む

We explore how generating a chain of thought -- a series of intermediate reasoning steps -- significantly improves the ability of large language models to perform complex reasoning. In particular, we show how such reasoning abilities emerge naturally in sufficiently large language models via a simple method called chain of thought prompting, where a few chain of thought demonstrations are provided as exemplars in prompting. Experiments on three large language models show that chain of thought prompting improves performance on a range of arithmetic, commonsense, and symbolic reasoning tasks. The empirical gains can be striking. For instance, prompting a 540B-parameter language model with just eight chain of thought exemplars achieves state of the art accuracy on the GSM8K benchmark of math word problems, surpassing even finetuned GPT-3 with a verifier.


呪文と実験の違い

プロンプト集が売られ、「あなたは世界的な専門家です」で始める作法が広まり、丁寧に頼むと精度が上がるという話が流れてきます。どれかは本当かもしれません。問題は、その多くが誰にも検証されていないことです。

一方で、きちんと実験され条件まで特定されたプロンプト手法もあります。その代表が Chain-of-Thought(CoT)プロンプティングです。この記事の主題は CoT の解説ではなく、この論文が実証したことと、実証していないことの境界を引くことにあります。

CoT論文が実際にやったこと

やったことは驚くほど素朴です。few-shot の例示それぞれに、答えだけでなく答えに至る途中の推論ステップを自然言語で書き添えた。数学の文章題なら8つの例示を手で書いた、それだけです(§3.1)。そして論文は括弧書きで、これらの例示にプロンプトエンジニアリングは一切行っていないと明記しています。磨き上げた呪文の効果ではなく、形式そのものの効果を測ろうとしているわけです。

効果は確かに大きい。GSM8K(数学の文章題)で PaLM 540B は標準プロンプトの17.9%から56.9%へ、GPT-3 175B(text-davinci-002)は15.6%から46.9%へ(付録B、表1・表2)。ただし一様ではありません。難しい問題ほど利得が大きく、1ステップで解ける MAWPS の SingleOp では改善が負または非常に小さい(§3.2、付録表3)。常識推論の CSQA でも利得は最小だったと論文自身が書いています(§4)。

効くのは「モデルが十分大きいとき」だけ

この論文でいちばん再現性のある発見は、効き目そのものではなく効き目が出る条件です。

同じプロンプトを小さいモデルに与えると、GSM8K の正解率はこうなります(付録B、表2)。

小さいモデルでは下がっています。論文の説明は率直で、小規模モデルは「流暢だが非論理的な思考の連鎖」を生成した、というもの(§3.2)。付録A.1はさらに踏み込み、CoT は10B未満のほとんどのモデルで性能を害すると書いています。

だから論文はこれを創発(emergent ability)と呼びます。小規模モデルの性能を外挿しても予測できず、およそ100Bパラメータ規模で初めて現れる(§3.2、§8)。「この手法は効く/効かない」という問いの立て方自体が間違っているわけです。効くかどうかはモデル規模の関数でした。

アブレーションが潰した3つの説明

この論文が信頼できるのは、「なぜ効くのか」の対抗説明を自分で用意して潰しているからです(§3.3)。ここが本記事の核心です。

説明1: 式を書かせているから効くのでは。 途中の文章を省き数式だけを出力させたところ、GSM8K ではほとんど改善しませんでした(1〜2ステップの簡単なデータセットでは改善します)。GSM8K の問題は、そのまま式に翻訳するには意味的に難しすぎるというのが論文の解釈です(付録A.4)。

説明2: 単にトークンを多く使うから計算量が増えて賢くなるのでは。 これを切り離すため、必要な式の文字数と同じ数の「…」だけを出力させました。結果はベースラインと同等計算を余分に使うこと自体は理由ではない(§3.3)。

説明3: 単に関連知識を引き出しているだけでは。 推論の連鎖を答えの後に書かせました。結果はベースラインと同等。最終的な答えは、その場で生成された推論に依存している(§3.3)。

3つとも潰れたので、残ったのは「途中のステップを、自然言語で、答えの前に、順に書くこと」そのものです。これが実証された部分。この種のアブレーションを持っているかどうかが、「効いた気がする」と「効くと分かっている」の差になります。

頑健なもの、脆いもの

プロンプトの善し悪しはどれくらい効くのか。論文は分けて答えています(§3.4、付録A.2)。

頑健なもの(=効く向き)。 共著者3人が独立に書いた推論の連鎖はどれも、ベースラインを大きく上回りました。特定の文体に依存しない、というのが論文の結論です(§3.4)。機械学習の背景を持たないクラウドワーカーが GSM8K 訓練セットに書いた推論をそのまま使っても同等。例示の順序を変えたときの標準偏差も、ほぼ全ケースで小さい(付録A.2)。

脆いもの(=効き幅)。 同じ論文が「プロンプトエンジニアリングは依然として重要だ」とも書いています。コイン投げタスクでは注釈者Aが99.6%、注釈者Cが71.4%——どちらも標準プロンプトの50.0%は上回るが28ポイント差がある(付録A.2、表7)。さらに5要素のリストを逆順にするタスクでは、共著者2人がどれだけ試しても解けるCoTを書けず、3人目が書けたという報告まであります(付録A.2)。

線引きはこうなります。方向は頑健で、幅は不安定。 「プロンプトの書き方は関係ない」も「呪文が全てを決める」も、どちらもこの論文の内容ではありません。

温度は、機構が分かっている数少ないつまみ

プロンプトの文言と違い、生成の温度は何をしているかが数式で分かります。ロジットを温度で割ってから softmax を取るので、温度が低いほど分布は最頻語に尖り、高いほど平らになります。

FIG 1温度を下げるほど分布は1点に尖り、上げるほど平らになる。「創造的にして」と頼むより温度を上げるほうが確実なのは、こちらには機構があるから。ただしCoT論文自身の実験は貪欲デコーディング(=最頻語を常に選ぶ設定)で行われている

ただし温度は本論文が検証した変数ではありません。実験はすべて貪欲デコーディングです(§3.1)。論文が触れているのは、後続研究の self-consistency——温度0.7で21本の推論をサンプルし最終答えの多数決を取る手法——が CoT を改善する、という点だけです(§3.1)。

何が未検証なのか

この論文が実験したのは、例示に途中の推論を書き添えること、ただ1つです。裏返すと、次のものはこの論文では検証されていません

さらに効果の転移も保証されていません。同じプロンプトで LaMDA・GPT-3・PaLM の3モデルとも改善しましたが、GPT-3 の CSQA と StrategyQA だけは例外。論文はこれを限界として明示し、事前学習データやアーキテクチャの違いがなぜ効き幅を変えるのかは今後の課題だと書いています(付録A.2)。

ここから実務的な原則が1つ出ます。「Xで精度が上がった」という報告は、モデル・タスク・規模とセットでなければ意味がない。

評価のないプロンプト改善は迷信に戻る

以下は論文の主張ではなく一般論です。プロンプトを手で回して良くなったか判断するとき、手元の例が20件しかなければ、その20件に合わせて選んでいるだけかもしれません。試した候補の数が増えるほど、手元の成績と未知データの成績は乖離していきます。

FIG 2次数を上げるほど手元のデータには合うのに、未知のデータでは悪化する。プロンプトを何十通りも試して少数の例で選ぶ行為は、これと同じ構造になる(※この対応づけは論文の主張ではなく、筆者による類比)

限界(論文自身の記述)

現場ではこう使う

プロンプトを触るのは、いまやLLMを使う機能を作る全エンジニアと、品質に責任を持つプロダクト担当です。順序があります。まず評価セットを作り、それから文言をいじる。逆にすると、以降の判断がすべて感触になります。

触るパラメータ名。 temperaturetop_pmax_tokensseed(再現性の確保)、構造化出力の response_formattemperaturetop_p を同時にいじらないのは実務上の定石です。評価側は promptfoo や DeepEval のようなツールで、変更前後を同じデータで比較できる形にしておきます。

落とし穴を3つ。 1つ目は小さいモデルに CoT をそのまま持ち込むこと。表2のとおり規模が足りないと正解率は下がるので、安いモデルへ切り替えるときはプロンプトも検証し直します。2つ目はモデル更新でプロンプトを据え置くこと。効果の転移は保証されていません(付録A.2)。3つ目は推論を出させたまま本番に流すこと。CoT は出力トークンを何倍にも増やすので、レイテンシと課金に直撃します。

設計レビューでよく問われるのは「CoT を入れれば精度は上がるのか」です。論文の条件をそのまま答えれば足ります。CoT が最も効くのは、①タスクが多段階の推論を要し難しい、②十分大きいモデルを使っている、③そのタスクのスケーリング曲線が平らである、の3条件が揃うときで、欠けるほど利得は小さい(付録A.3)。1ステップで解ける問題では改善が負にすらなる。「まず自分のタスクがこの3条件に当てはまるか」から始めるべきだと答えられれば十分です。

なお、推論と道具使用を交互に置くという発想はここから直接派生しています——LLMエージェントの基礎を参照してください。温度と softmax の関係そのものはAIのための確率で扱っています。

まとめ

原論文: Wei et al., "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" (arXiv:2201.11903, 2022)

参考文献

  1. Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma et al.. (2022-01-28) Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です