見出し画像

生成AIのプロンプトに「ステップバイステップで考えよう」と追加すると回答精度が高まる【トリガープロンプト】

AIの利用が当たり前になる時代においては、効果的な指示や質問(プロンプト)ができることが、AIを使いこなすための必須条件となります。

特にユーザーが最初に質問文を投げかける必要のある生成AI(チャットAI)の場合、プロンプトのクオリティがそのまま回答や生成物のクオリティに直結します。

人間同士のコミュニケーションでは行間や暗黙の了解、「あれ」とか「これ」などなんとなく伝わる表現で意思疎通ができたかもしれませんが、それらはいまのところAIに通用しません。

なるべく正確な言葉、文法、表現、さらにAIの回答精度を高めるプロンプトで伝えなければ、得たい結果を得られないのがAIとのコミュニケーションです。

つまり、AI時代には質問力が大事であり、プロンプトリテラシーが不可欠になります。

いまなお発展途上のAIを利用するにあたり、現時点ではどの程度のプロンプトリテラシーを身につけておけばいいのでしょうか。

今回紹介する書籍は『AI時代の質問力 プロンプトリテラシー 「問い」と「指示」が生成AIの可能性を最大限に引き出す』(翔泳社)です。

本書ではAIに適切な質問をし、効果的な対話を行なうためのノウハウが紹介されています。どのサービスでも通用する、基本となるプロンプトばかりなので、本書で押さえておけばさまざまな機会に応用ができます。

この記事では本書から、AIの回答精度を高めるのに役立つプロンプトである「トリガープロンプト」の一例を紹介します。

取り上げるのは「Chain-of-Thoughtパターン」です。AIに質問をする際に、質問の文脈や背景を説明して推論のステップ(思考の連鎖、Chain-of-Thought)を辿ると、回答の精度が高まります。これは、質問に対する情報が増えることで、より回答を予測しやすくなるからだと考えられています。

このほかにも、本書では「Chain-of-Verificationパターン」や「ステップバックプロンプトパターン」などのトリガープロンプトを解説しています。

また、プロンプトのフレーズと構造をまとめたプロンプトパターンも紹介されているので、「AIにどう質問すれば質の高い回答を得られるのか分からない」という方は、ぜひ本書を参考にしていただければと思います。

※なお、本書ではOpenAIが提供しているChatGPT 4とChatGPT 3.5を利用しています。

◆著者について
岡 瑞起(Mizuki Oka)

研究者。筑波大学システム情報系 准教授/株式会社ConnectSphere代表取締役。2003年、筑波大学第三学群情報学類卒業。2008年、同大学院博士課程修了。博士(工学)。同年より東京大学 知の構造化センター特任研究員。2013年、筑波大学システム情報系 助教を経て現職。専門分野は、人工生命、ウェブサイエンス。著書に『ALIFE|人工生命 より生命的なAIへ』(株式会社ビー・エヌ・エヌ)、『作って動かすALife ― 実装を通した人工生命モデル理論入門』(オライリージャパン)などがある。

橋本 康弘(Yasuhiro Hashimoto)
研究者。会津大学コンピュータ理工学部上級准教授。1995年、東京大学工学部卒業。2000年、同大学院博士課程修了。博士(工学)。学術振興会特別研究員、東京大学工学系研究科講師、筑波大学システム情報系助教などを経て現職。専門分野は、人工生命、計算社会科学。訳書に『ネットワーク科学入門』(丸善出版株式会社)、『人工知能チューリング/ブルックス/ヒントン』(株式会社岩波書店)などがある。


トリガープロンプトの威力

大規模言語モデルに対して、特定のタイプの応答や思考過程を促すためにテンプレート化されたプロンプトをトリガープロンプト(TriggerPrompt)やリーディングプロンプト(LeadingPrompt)と呼ぶ。

たとえば「~のように振る舞ってください」も「ある役割に準じた思考や発言を促す」という意味で、トリガープロンプトの一種と見ることができる。

これまでにさまざまな種類のトリガープロンプトが提案されているが、中でも有名なものは「ゼロショットCoTパターン」だ。

このパターンは、問いたい質問の最後に「一歩一歩問題を解いてみよう。」という文言(トリガープロンプト)を付け加えるだけの単純なものである。「一歩一歩……」の前に「常識に基づいて」や「探偵のように」といった修辞を付けることも可能だ。

この短い魔法の言葉によって、モデルは解を導くまでの論理的なステップを順に生成する。プロンプトは質問に対する答えを要求するだけではなく、その答えを導き出す手順や戦略までをもコンピュータに指示することが可能なのだ。

トリガープロンプトはモデルに内在する知識と推論能力を引き出すための「キュー」または「手がかり」として機能し、その結果、驚くべきことにモデルの推論能力が大きく向上することが確認されている。

Chain-of-Thoughtパターン 順を追って考えよう

数学の問題を解くとき、その解答に至るまでの道筋を思い浮かべることができたら、後はそのステップを一つひとつクリアしていけば、おのずと正解にたどり着くことができる。特に、テストに出る数学の問題は、問題を見たときにその解き方をすばやく見つけることができるかが、点を取るために必要とされるスキルだ。

数学の問題に限らず、自分の主張や思いを客観的な推論で裏打ちすることはとても重要だ。主張は、その理由と、それを裏付けする誰の目にも明らかな客観的な事実や実例が積み重ねられることで、論理的な力を持つ。

この論理的プロセスは、「思考の連鎖(Chain-of-Thought)」、一般に「CoT」パターンとして知られる方法を用いて大規模言語モデルにも応用されている。モデルが解答や結論を出す際に、その背後にある推論のステップを説明すると、最終的な答えの精度が向上する。人間だけでなく大規模言語モデルにおいても、その背後にある理由を説明させることは性能を向上させるのだ。

これは、大規模言語モデルがさまざまな文脈から何が起こるかを予測するように訓練されていることがおそらく関係しているのだろう。その推論プロセスを可視化することで、モデルの予測の正確性をさらに高めることができる。

CoTパターンは、質問と思考過程(CoT)を含む回答の組からなる例を少数ショットで与え、最後に本当に聞きたい質問を提示するというものだ。CoTを例示することで問題をステップバイステップに分解し、論理的な複数のステップを踏まえた解決過程を促す。

プロンプトの例

たとえば、次のような問題を考えてみよう。ジョンが所有する2軒の家に何枚の窓があるかを尋ねる問題だ(ここで挙げる例はすべてS・ユルドゥルム「ChainofThoughtPromptingFacilitateLLMsReasoningAbilities」からの引用)。

【入力するプロンプト】
ジョンは2軒の家を所持している。各家には3つの寝室があり、各寝室には2つの窓がある。各家には2つの窓がついたキッチンが1つあり、さらに、寝室やキッチンにあるもの以外に5つの窓がある。ジョンの家には合計で何枚の窓があるか?

たとえば、ChatGPT 4を使った場合、次のように窓を数え上げることができる。

【モデルからの応答】
ジョンの1軒の家には、寝室の窓が3部屋×2窓=6窓、キッチンの窓が2窓、その他の窓が5窓なので、合計で6+2+5=13窓ある。ジョンが2軒の家を持っているので、合計の窓の数は13窓×2軒=26窓である。

最終的な回答「26窓」は正解だ。ChatGPT 4は2024年5月現在利用可能なモデルの中では最も性能が高いもののひとつで、うまく正解にたどり着くことができた。

ここでは、まず寝室の窓、キッチンの窓、その他の窓を足して、最後に家の数で2倍するという数え方をしたが、もちろん別の順序で窓の合計を計算することもできるし、家の数を掛ける前に種類ごとにグループ化することもできる。

このような問題は、正解にたどり着くまでの過程はひとつではないことが多い。この問題に対して、より性能の低いモデル(ここではChatGPT3.5)を用いると、結果は以下のようになった。

【モデルからの応答】
まず、1軒の家には寝室の窓が3つ、キッチンの窓が2つ、それ以外の窓が5つあるので、1軒の家には合計で10枚の窓があります。2軒の家なので、2軒の家には合計で20枚の窓があります。

こちらは間違った回答を出力してしまった。どうやら1軒の家にある窓の総数を数える際に間違ったようだが、具体的にどのような間違え方をしたのかはわからない。

今度は、同じモデル(ChatGPT3.5)に対して、CoTパターンを使ってこの問題を解かせてみよう。少数ショットで類似の問題を与え、最後に先ほどの窓の数を尋ねる質問を提示する。

【入力するプロンプト】
Q:林には15本の木が生えている。作業員が今日、林に木を植える。作業が終わると、21本の木が生えている。作業員は今日何本の木を植えたか?
A:最初に15本の木が生えていた。それから、さらに木が植えられて21本になった。したがって、21−15=6本植えられたことになる。答えは6本。

Q:駐車場には3台の車があり、さらに2台の車が到着した場合、駐車場には合計で何台の車があるか?
A:最初に3台の車があった。さらに2台の車が到着した。3+2=5。答えは5台。

Q:レアは32個のチョコレートを持っていて、彼女の姉は42個持っていた。もし彼女らが35個食べたら、合計で何個残っているか?
A:最初に、レアは32個のチョコレートを持っていた。彼女の姉は42個持っていた。したがって、合計で彼女らは32+42=74個持っていた。35個食べた後、彼女らは74−35=39個持っている。答えは39個。

Q:ジョンは2軒の家を所持している。各家には3つの寝室があり、各寝室には2つの窓がある。各家には2つの窓がついたキッチンが1つあり、さらに、寝室やキッチンにあるもの以外に5つの窓がある。ジョンの家には合計で何枚の窓があるか?
A:

すると今度は次のように見事に正解を導き出すことができた。

【モデルからの応答】
各家には3つの寝室があり、それぞれ2つの窓があるので、各家の寝室には3×2=6枚の窓がある。また、各家には2つの窓がついたキッチンが1つあり、つまり各家のキッチンには2×1=2枚の窓がある。さらに、各家には寝室やキッチン以外に5つの窓があるので、各家には5枚の窓がある。したがって、各家には合計で6+2+5=13枚の窓がある。2軒の家があるので、合計で13×2=26枚の窓がある。ジョンの家には合計で26枚の窓がある。

また、プロンプトの例でその思考過程を与えている通り、この問題の答えを導き出す具体的な思考過程も説明され、その道筋も正しい答えに向かっていることを確認できる。

ゼロショットCoTパターン

しかし、この正解を導き出すためには上記で用いたような複数の例を提示する必要があった。これは、CoTパターンを活用する上で大きな障壁になり得る。なぜなら、どのような例を与えれば、より正解に近づくことができるのかわからないからだ。トライ&エラーでうまくいく例を探さなければならない。

そこで提案されたのが「ゼロショットCoT(Zero-shotCoT)」パターンという方法だ。これは「一歩一歩問題を解いてみよう。」あるいは「ステップバイステップで考えよう。」というトリガープロンプトを質問文に追加するだけで、思考過程の例を少数ショットで与えなくてもCoTパターンと同じ効果を得ることができる方法だ。早速試してみよう。

【入力するプロンプト】
ジョンは2軒の家を所持している。各家には3つの寝室があり、各寝室には2つの窓がある。各家には2つの窓がついたキッチンが1つあり、さらに、各家には寝室やキッチンにあるもの以外に5つの窓がある。ジョンの家には合計で何枚の窓があるか? ステップバイステップで考えよう

太字の箇所がトリガープロンプトである。ChatGPT3.5の回答は以下だ。

【モデルからの回答】
1.まず、1軒の家には3つの寝室があり、各寝室には2つの窓があるので、1軒の家には3*2=6枚の窓がある。

2.また、1軒の家には2つの窓がついたキッチンが1つあり、つまり2枚の窓がある。

3.さらに、各家には寝室やキッチンにあるもの以外に5つの窓があるので、5枚の窓がある。

4.以上を合計すると、1軒の家には6+2+5=13枚の窓がある。

5.ジョンは2軒の家を所持しているので、2軒の家にはそれぞれ13枚の窓がある。

6.したがって、ジョンの家には合計で2*13=26枚の窓がある。

ひとこと

「ステップバイステップで考えよう。」という言葉で大規模言語モデルに慎重に物事を進める姿勢を求めると正解率が向上する、というのは非常に興味深い現象だ。

どのような態度を大規模言語モデルに求めるかで、その推論の精度にも影響するのだ。大規模なモデルほど、CoTパターンやゼロショットCoTパターンがその威力を発揮するという報告がなされている。

それはつまり、大規模なモデルほどたくさんの知識を持っており、その中にはきっと多くの人格や個性、さまざまな思考の進め方のようなものが含まれているからかもしれない。

普段は少しノリの良い人格で動いているのかもしれず、少し慎重になってほしいときには「ステップバイステップで考えよう。」と伝える。すると、ステップバイステップに考えを進めていけるようになる。

まるで、誰かの能力を引き出すように、大規模現モデルの能力も引き出すことができるのだ。

◆本書の目次
第1章 大規模言語モデルの登場

1-1 社会現象となったChatGPT
1-2 AIによって仕事はどう変わるのか
1-3 AIとの共存の必要性

第2章 プロンプトエンジニアリング
2-1 プロンプトとは
2-2 プロンプトを書くときに気をつけるべきこと
2-3 大規模言語モデルを飼いならす

第3章 プロンプトパターン
3-1 ペルソナパターン
3-2 オーディエンス・ペルソナパターン
3-3 質問精緻化パターン
3-4 認識検証パターン
3-5 反転インタラクションパターン
3-6 少数ショットパターン

第4章 トリガープロンプトの威力
4-1 Chain-of-Thoughtパターン
4-2 Chain-of-Verificationパターン
4-3 ステップバックプロンプトパターン
4-4 メタ認知的プロンプトパターン

第5章 発展的な技術
5-1 自己一貫性パターン
5-2 ReActパターン
5-3 RAG(検索拡張生成)
5-4 LLM-as-Agent

第6章 AIエージェントと社会
6-1 AIエージェントの自律性
6-2 AIエージェントの社会性
6-3 新しい情報生態系

この記事が気に入ったらサポートをしてみませんか?