2-1. 効果的なプロンプト設計

プロンプトとは、生成AIに対する指示や質問のことです。プロンプトの質が、そのまま応答の質に直結します。プロンプトはAIとのコミュニケーションの中核であり、ユーザーの意図を明確に伝えられるよう設計します。ここでは、AIの研究・教育・技術の民主化を目指す DAIR.AI という団体の「Prompt Engineering Guide」による4分類を使います。

基本的なプロンプトの構成は4要素です。Instruction(指示)は実行してほしい具体的なタスクで、「翻訳して」「要約して」「分類して」などがこれにあたります。Context(文脈)は回答を作成する際に参考にしてほしい背景情報で、「小学生でもわかるように」「日本での状況を踏まえて」などです。Input Data(入力データ)は指示を実行する際に必要な情報やデータ、つまり要約してほしい文や分類してほしいデータそのものを指します。Output Indicator(出力形式)は出力のタイプや形式で、「箇条書きで」「200文字程度で」「体言止めで」などです。

4要素のうち、プロンプトに最低限必須なものは Instruction(指示)だけです。残る3つは要件に応じて組み合わせます。必須の要素がどれかは名称とあわせて問われやすいので、ここは正確に覚えてください。

プロンプトを設計する際に考慮すべき点は4つあります。1つ目は「具体的な指示をする」です。曖昧なプロンプトではAIが誤解し、意図と異なる結果を返すことがあります。「挨拶文を作成して」ではなく「メールの文頭に添える8月の時候の挨拶を作成して」とします。2つ目は「目的を明確にする」です。何を知りたいのか、どんな成果物が必要なのかをプロンプトに組み込みます。3つ目は「段階的にアプローチする」です。複雑な指示を一度にすべて求めると応答が不完全になりがちなので、情報を段階ごとに整理して取得します。4つ目は「コンテキストを提供する」です。分野・年代・地域・対象などの背景情報を加えると、AIは状況や条件を考慮した応答ができます。

この基本構成をもとに、目的に応じてさまざまな形式のプロンプトを使い分けます。ロールプレイングは特定の役割や専門家として振る舞うよう指示する形式で、複数のロールを比較させれば異なる視点を同時に検討できます。比較は複数の項目を比較・対照させ、相違点やメリット・デメリットを明確にします。文章補完は提示した文章の続きを書かせる形式で、元の文章に矛盾点があると一貫性を保ちにくい点に注意します。ファクトベースは事実に基づく情報のみを求める形式、ステップバイステップは段階的に思考を進めさせる形式、反復改善は対話しながら応答を段階的に改善させる形式です。

同じ内容でも、トーン・スタイル・フォーマットを指定すると目的に適した結果が得られます。トーンには「フォーマル vs カジュアル」「専門的 vs 一般的」「感情的 vs 論理的」「創造的 vs 事実ベース」の軸があります。スタイルでは視点の取り方(一人称か三人称か)、文末表現(ですます調か体言止めか)、文の長さを指定します。フォーマットでは箇条書きや表などの形式に加え、CSV形式・JSON形式といったファイル形式も指定できます。

  • 基本構成4要素は Instruction(指示)/ Context(文脈)/ Input Data(入力データ)/ Output Indicator(出力形式)
  • 最低限必須なのは Instruction のみ。他の3つは要件に応じて組み合わせる
  • 設計時の考慮点は「具体的な指示・目的の明確化・段階的アプローチ・コンテキストの提供」の4つ
  • 形式は6種(ロールプレイング/比較/文章補完/ファクトベース/ステップバイステップ/反復改善)を目的で使い分ける

2-2. 応答の評価と改善

応答の品質評価基準は4つです。正確性は、提供された情報が事実に基づいているかを検証する観点です。データや統計を必要とする場合は、信頼できる情報源を参考にすることが重要です。関連性は、得られた回答が与えられたプロンプトに対して適切であるかを確認する観点です。明瞭さは、応答が分かりやすく明確に表現されているかをチェックします。一貫性は、応答が論理的に整合しているかを確認する観点で、特に長文では主題がブレていないかを見極めます。

不正確な応答やエラーが発生したときの対処法は3つあります。「情報源を明示させる」は、情報源を含めて回答するよう指示する方法です。応答が改善されたり、正しい情報へのアクセス方法を提案されたりします。「プロンプトを追加する」は、具体的な修正点を考慮してプロンプトを再設定する方法です。「もう少し具体的な例を挙げて回答してください」のように追加情報を与えます。意図しない形式で回答される場合は、選択肢から回答させるなど制約を設けるのも効果的です。ただし、LLMは提示した中に適した選択肢がなくても、いずれかを正解であると回答する場合があるため注意が必要です。

3つ目は「具体的なフィードバックを提供する」です。「この部分が間違っている」「この情報はもっと詳しく説明してほしい」といった具体的な指摘を行うと、次回の応答が改善されやすくなります。

継続的な改善のためのヒントは4つです。「プロンプトのテスト」は、複数のプロンプトを作成して結果を比較し、どの表現がより効果的かを確認することです。異なる言い回しや視点を試します。「A/Bテストの実施」は、2つの異なるプロンプト(AとB)を用意して応答を収集し、どちらがより良い結果をもたらすかを分析して効果的なプロンプトを特定する方法です。「エッジケースの考慮」は、予期せぬ入力や極端なケースでもプロンプトを試し、AIの柔軟性を高めることです。「定期的な見直し」は、一定の期間ごとにプロンプトの効果を見直し、新しい知見や技術の進展を取り入れて更新することです。

  • 品質評価基準は「正確性・関連性・明瞭さ・一貫性」の4つ。名称のまま問われる
  • エラーへの対処は「情報源を明示させる・プロンプトを追加する・具体的なフィードバックを提供する」
  • 選択肢で制約しても、適した選択肢がなければLLMはいずれかを正解として答えることがある
  • 改善のヒントは「プロンプトのテスト・A/Bテストの実施・エッジケースの考慮・定期的な見直し」

2-3. 高度なプロンプト技術の理解と実践

高度な手法は数が多いため、「どんなときに使うか」と「利点・課題」の対で覚えると整理できます。まずは例示の有無で Zero-Shot と Few-Shot を分け、次に推論を深める系統(Chain-of-Thought とその発展形)、そして工程を分ける系統(Prompt Chaining など)と捉えると見通しが立ちます。

Zero-Shot プロンプティングは、一切の事前例示を行わず直接モデルに質問や指示を与える手法です。LLMは大量データで事前学習され、さらに指示に従うよう調整(Instruction Tuning)されているため、例が無くても多くのタスクに答えられます。利点は、プロンプトが簡潔で手間がかからないこと、モデルのベースラインの実力を把握しやすいこと、コンテキスト長を浪費せずトークン効率が良いことです。課題は、複雑な推論や専門性の高いタスクでは誤答や不十分な回答になりやすいこと、例示がないため意図を誤解して出力がブレたり期待する形式にならないことです。対話の最初の問いかけや、特定の文脈が不要な一般知識の質問に適します。まず Zero-Shot で試し、品質を確認したうえで必要に応じて Few-Shot などへ移行するのが一般的な流れです。

Few-Shot プロンプティングは、プロンプト内に少数の例(ショット)を示し、モデルに文脈からタスクのパターンを読み取らせる手法です。ここで起きているのは文脈学習であり、モデルを追加学習させているわけではありません。例は次の入力で参照されるだけで、モデルの中身は変わりません。利点は、追加の学習やデータ調達なしに出力を制御・調整できること、Zero-Shot より高品質で安定したフォーマットを得られること、期待する出力例を明示できるため認識を共有しやすいことです。課題は、プロンプトが長くなりトークン数を圧迫すること(コンテキストウィンドウの制限)、与える例の選択が品質を大きく左右し不適切な例は誤答を誘導しうること、例に過度適合すると想定外の入力への対応力が落ちることです。特定領域のスタイルや専門知識を反映させたいときに使います。

Role Prompting(ロールプロンプティング)は、モデルに特定の役割や人格を与えて応答のスタイルや視点を制御する手法です。「あなたは~である」と設定してからタスクを指示します。利点は、一貫した視点・口調を持たせられること、知識領域を限定したロールで分野特化の回答を引き出しやすいこと、人格付けによりユーザー体験が向上することです。課題は、役割設定が内容の保証にはならず専門家ロールでも不正確な情報を返しうること、研究によれば単純なロール指定だけでは事実質問の正確性向上に大きな効果がない場合もあることです。カスタマーサポートや教育など、トーンの一貫性が要る場面に向きます。

Emotion Prompting(感情プロンプティング)は、心理学的理論(自己モニタリング・社会的認知理論・認知的感情調整理論)に基づき、感情的な表現や語調を含める手法です。「あなたならやり遂げられます」「これは私のキャリアにとって非常に重要な質問です」といったフレーズを組み込みます。利点は、回答に温かみや説得力を持たせられること、一部研究では正確さの向上も示されていること、共感を得やすい応答になることです。課題は、効果がタスクによってまちまちで常に性能が上がるわけではないこと、過度な感情入力が回答の焦点を逸らしうること、客観的な回答が必要な場面では不適切になり得ることです。

Chain-of-Thought(チェイン・オブ・ソート)プロンプティングは、中間の思考過程を逐次的に出力させて複雑な推論を可能にする手法です。モデルの内部推論を顕在化させて検証可能な形にします。利点は、答えに至る根拠が明示され信頼性が増すこと、中間ステップにより複雑な問題でも精度が上がること、ユーザーが思考を追跡でき検証や途中修正がしやすいことです。課題は、簡単な質問では冗長になり創造的文章生成では自由度を奪いうること、途中で誤った方向に進むと自信ありげな誤答になること、トークン消費が増え制限長を超えることがあることです。数学計算、論理パズル、常識推論、文章読解などに向きます。

Self-Consistency(自己一貫性)は、Chain-of-Thought を強化する手法です。単一の推論に代えて、同じ質問を複数回投げかけて回答を集め、頻出する情報を集計し、最も一貫性のある回答を選びます。利点は、多数決的アプローチにより偶発的な誤りを減らし正答率が上がること、「一度の推論が外れると誤答になる」という Chain-of-Thought の弱点を補えることです。課題は、多数決で選ばれた回答が必ずしも正解とは限らないこと、回答群に多様性が出ない場合は効果がないこと、複数回の実行で計算資源と時間のコストが増えることです。明確な正解があるタスク(数値計算、事実問答)と相性が良く、答えが一意でない創造的タスクには適用しづらい手法です。

Tree of Thoughts(ToT、思考の木)は、木の枝のように分岐する複数の思考パスを探索・評価して最適な解決策を導く手法です。Chain-of-Thought が単一直線なのに対し、ToT はある段階で複数の案(ノード)を生成し、それぞれについて次の思考を展開します。モデル自身に「この方針でゴールに近づけそうか」を判定させ、候補の中から最適解を選びます。利点は、複雑で入り組んだ問題でも解決策を見出しやすいこと、途中で自己評価と修正ができること、どの経路を辿ったか後から検証できることです。課題は、経路評価やバックトラッキングで計算負荷が増し、処理時間やメモリ消費が大きくなることです。リアルタイム応答が求められる環境では制約が大きくなります。

Generated Knowledge Prompting(知識生成プロンプティング)は、最終的な回答を求める前に、関連する知識をモデル自身に一度生成させてから回答させる手法です。知識を生成する段階と、その知識を使って回答させる段階の2段構えで進めます。利点は、内部知識を体系立てて活用でき正確性や一貫性が向上しやすいこと、回答に根拠を添えられること、曖昧なまま回答するのを防げることです。課題は、生成された「知識」が必ずしも正確とは限らず検証が必要なこと、その知識に引きずられて他の可能性を無視するバイアスがかかりうることです。専門知識を要するQAや複雑な読解、コード生成に有効です。

Reflection(リフレクション)は、モデル自身に直前の回答を振り返らせる手法です。通常どおり回答させたあと、「この回答の内容をもう一度検証し、不明瞭な点や誤りを指摘してください」のように追加の問いを与えます。利点は、一発では間違えた回答も修正され精度が上がること、ロバスト性が高まること、反省点や理由を述べるため透明性の高いやり取りになることです。課題は、モデルが誤った反省をしてかえって悪化する場合があること、対話ステップが増えて応答までの時間が延びること、過剰に自己否定的になり正しい答えまで疑うリスクがあることです。コード生成のエラー修正ループや、要約の抜け漏れ補完に使われます。

Meta-Prompting(メタプロンプティング)は、プロンプトそのものの生成・改善にLLMを使う手法です。タスクの概要を説明して適したプロンプトを作らせる使い方と、人間が書いた初稿を渡してより明確で効果的にする方法を尋ねる使い方があります。利点は、人間が思いつかない視点でプロンプトを設計してくれること、非専門家でも高度なプロンプトを入手しやすいことです。課題は、提案されたプロンプトが常に最良とは限らず人間の評価と調整が必要なこと、依存しすぎると設計スキルを磨く機会が減りブラックボックス化することです。最終的な責任は人間が持つことを忘れないようにします。

Prompt Chaining(プロンプト・チェイニング)は、タスクを論理的なサブタスクに分け、各ステップの出力を次のプロンプトに投入していく手法です。長文から質問に答えるタスクなら、1)関連情報を抜き出すプロンプト、2)抜き出した情報をもとに回答を作るプロンプト、という2段のチェインにします。利点は、各ステップに集中させることで精度と信頼性が向上すること、中間出力を確認・修正できデバッグしやすいこと、途中に外部ツールを挟めることです。課題は、タスク分割に高度な判断が必要で誤った分割では効果が出ないこと、ステップ間の受け渡しフォーマットを設計しないと情報の齟齬が生じることです。段階ごとにチェックしたい業務プロセスに向きます。

  • 例示なしが Zero-Shot、少数の例示が Few-Shot。まず Zero-Shot で試し、必要に応じて Few-Shot へ移行する
  • Few-Shot は文脈学習であり、モデルを追加学習させているわけではない
  • 推論を深める系統は Chain-of-Thought →(複数回の多数決)Self-Consistency →(分岐探索)Tree of Thoughts
  • 各手法は「利点」と「課題」の対で押さえる。万能な手法はなく、簡単なタスクに重い手法を使うと逆効果になる

出題の傾向と勉強のコツ

  • 基本構成4要素は英語名(Instruction / Context / Input Data / Output Indicator)で問われる。必須が Instruction だけである点まで覚える
  • 品質評価基準の4つ(正確性・関連性・明瞭さ・一貫性)は、名称と定義の組み合わせで問われやすい
  • 手法名は「利点」と「課題」の対で覚える。名前だけの暗記だと、どの場面で不向きかを問う設問で迷う
  • Zero-Shot と Few-Shot は必ず対で理解する。Few-Shot を「追加学習」と誤って覚えないよう注意する
  • 練習問題の「プロンプト基本」「プロンプト技術」カテゴリで確認する

この章の重要用語