メインに戻る

ニューラルネットワークのためのプロンプトの書き方

大規模言語モデルは自然言語(英語、フランス語、ドイツ語など)を理解します。したがって、チャットボットとの対話は人間との対話に似ています。プロンプトとは、チャットボットに送信するテキストクエリ、フレーズ、または数段落にわたる詳細な指示のことです。応答の質は、クエリがどれだけ明確かつ理解しやすく構成されているかに依存します。本資料では、当サイトのチャットボット(GPT、Claude、Geminiなど)と可能な限り効果的にやり取りできるよう、プロンプト作成の異なるアプローチを検討します。

プロンプトの構成

プロンプトには以下の要素を含めることができます:

  • 目的、タスク
  • 文脈、例
  • 出力形式(リスト、表、特定の長さのテキスト – 例えば100語以内)
  • 制約事項(事実確認情報、出典の引用など)

OpenAIの共同創設者であり現社長であるグレッグ・ブロックマンは、優れたプロンプトの例を自身のXアカウントで公開しています:

プロンプトの解剖学

プロンプトの構造:目的、返却形式、警告、文脈

このプロンプトは4つの論理ブロックで構成されています。最初に、著者は目標を定義します——サンフランシスコから車で2時間圏内にある、中程度の距離のあまり知られていないハイキングコースを見つけることです。

次に、応答形式が指定されます:上位3件の結果を出力し、各コースの名称、所要時間、起点と終点の住所、特徴などを明記すること。

次のセクションでは、情報の再確認を依頼しています。コースが実際に存在すること(大規模言語モデルは幻覚現象を起こしやすく、存在しない事実を生成する場合があるため追加検証が重要)、コース名が正確であること、そしてこの名前でAllTrailsアプリから検索可能であることを確認するよう求めています。

最後のブロックで著者は背景を追加:特に知名度の低いトレイルに関心がある理由(既に人気コースは全て踏破済み)を説明し、それらを列挙。こうした補足により、チャットボットは要求内容をより正確に理解し、関連情報を提案できる。「知名度の低いトレイル」という表現自体は曖昧だが、追加説明で課題が明確化される。

プロンプト作成の推奨事項

プロンプトエンジニアリングは芸術と科学の融合です。ハーバード大学情報技術部門(HUIT)の専門家が提示した基本原則を参照しましょう:

  • 具体性を重視する。 重要な詳細を明記すれば、不正確な応答の可能性が低減します。「物語を書いて」とだけ指示する代わりに、対象読者(子供向けか大人向けか)、ジャンルなど、具体的な要件をボットに伝えます。
  • 役割を割り当てる。ボットに特定の役割を演じさせる(例:「私のパーソナルトレーナーとして振る舞って」)。驚くほど良い結果を得られる簡単な方法です。
  • 出力形式を選択する:物語、レポート、要約、対話、コードなど。
  • 例文や参照資料を活用する。例えば段落をコピー&ペーストし、その文体・トーン・構成を模倣するよう指示します。
  • 指示は「すべきこと」だけでなく「すべきでないこと」も明確に:「食事プランを作成して、でも甲殻類は入れないで。アレルギーがあるから」
  • 会話の流れを重視し、誤りを修正し、フィードバックを与えましょう。チャットボットを同僚やチームメイトのように扱います。基本的な質問から始め、徐々に文脈や具体性を追加していく方法が効果的です。
プロンプト作成の推奨事項

明確かつ具体的に記述し、文脈を提供し、様々なプロンプトを試行し、関連キーワードを使用し、必要に応じてプロンプトを調整する

良いプロンプトの作成方法がわからない?チャットボットに助けを求めよう! まず、自分が望む内容の基本的なアイデアを固め、AIにそれを展開してもらうよう依頼します。例えば「AIに関するブログ記事を書くのを手伝ってもらうには、何を尋ねればいいですか?」といった具合です。また、プロンプトの最後に「この作業に必要な他の情報を教えてください」と追加するだけで、AIがより良い出力を生成するための不足部分を補完できます。

プロンプトの一般的な種類とパターン

MITスローン経営大学院はプロンプトを以下の種類に分類しています:

タイプ説明
ゼロショットプロンプト例示なしで簡潔かつ明確な指示を与える。非常に迅速かつ簡単に記述でき、アイデアやモデルの新たなタスクへの対応能力を素早くテストするのに理想的である。「この記事を5つの箇条書きで要約してください。」
少数のショットによるプロンプトAIに模倣してほしい内容の具体例をいくつか提示してください。非自明なタスクでは、ゼロショット学習よりも一貫性と正確性が高い結果を生成することが多いです。「以下に2つの要約例を示します。同じスタイルで3つ目の要約を書いてください。」
指導用プロンプト要約する、翻訳する、書き直す、分類する、書く、説明するなどの動詞を用いた直接的な指示を含める。以下のメールをより簡潔でプロフェッショナルな内容に書き直してください。100語以内に収めてください。 
ロールベースのプロンプトAIに特定のペルソナや視点を想定させる。モデルはその役割のレンズを通して知識をフィルタリングし、より焦点を絞った適用可能な情報を提供する。「親しみやすい高校の理科教師として振る舞ってください。あなたの任務は、15歳の生徒たちにブロックチェーンとは何かを説明することです。簡単な例えを使い、専門用語は避けてください。」
文脈に応じたプロンプト質問の前に、関連する背景や文脈を含めてください。AIが特定の聴衆や状況に合わせて回答を調整するのに役立ちます。このテキストは行動経済学の学部生向け講義用です。より平易な言葉で言い換えてください。 
メタプロンプト / システムプロンプトユーザー入力の前にAIの動作、トーン、または範囲を設定するシステムレベルの指示。常に正式な対応をし、実際の情報源を引用すること。推測は決して行わないこと。

テネシー州ヴァンダービルト大学コンピュータサイエンス学科は、プロンプトパターンについて以下の分類を提供している:

  • 入力セマンティクス
  • 出力カスタマイズ
  • エラー識別
  • プロンプト改善
  • 文脈制御。

入力セマンティクスとは、大規模言語モデルがユーザー入力を解釈・処理し、応答生成に利用可能な構造化形式へ変換する方法を指す。この手法では、グラフ記述、状態機械定義、コマンド自動化など特定のタスク向けにカスタマイズされた「言語」または略記法を作成し、標準入力方法が非効率な場合にユーザーが複雑な概念を容易に伝達できるようにする。モデルに事前定義された規則の認識と適用を学習させることで、ユーザーは構文を簡素化し、反復を削減し、時間を節約できます。例えば、特定の記号やフォーマットが特定の意味を持つことをモデルに記憶させることで、簡潔な入力が内部で詳細な指示に展開されるようになります。

例:「今後、私が『都市1 >> 都市2』という形式で名前を書いた場合は、その2つの都市間の旅行プランを生成するリクエストとして解釈してください。これには交通手段、所要時間、主要な観光スポットを含めてください。」

入力セマンティクス

出力のカスタマイズとは、大規模言語モデルが生成する応答の形式、構造、スタイル、視点を定義し制御するプロセスです。この手法により、ユーザーはモデルの出力内容を特定のニーズに合わせて調整できます。例えば、特定のペルソナを採用したり、事前定義されたテンプレートに従ったり、一連のステップを順守したりすることで、生成されるコンテンツの一貫性、関連性、実用性を確保します。モデルに特定の役割を担わせたり制約を適用させたりすることで、ユーザーは応答の焦点・トーン・深さを誘導でき、専門的・教育的・特殊な文脈に適した出力を実現します。

例:「今後、製品レビューを依頼する際は、プロのテックレビュアーとして対応してください。回答は『長所』『短所』『総評』の3つのセクションで構成し、中立的な口調で、性能・デザイン・コストパフォーマンスに焦点を当ててください。」

エラー識別は、モデルが生成した出力におけるエラーの特定と解決に焦点を当てます。これによりユーザーは生成コンテンツの信頼性を検証し、隠れたバイアスや誤りを発見し、より正確な結果を得るためにクエリを改善できます。特にチャットボットが妥当に見えるが誤った情報を生成しがちな点を考慮すると、この機能は極めて重要です

例:「医学的症状を説明するときは、診断の根拠となる主要な医学的仮定を常に最後に列挙すること。また、それらの仮定を選んだ理由を考察し、回答における不確実性を注記し、考えられる代替的な病態についても言及すること。」

エラーの特定

コンテキスト制御は、大規模言語モデルが動作する文脈情報の制御に焦点を当てます。具体的には、会話中にモデルが考慮すべきトピック、指示、データ、あるいは無視すべき要素を管理し、応答が焦点と関連性を保ちつつ、望ましくない文脈の影響を排除することを保証します

例:「これらの顧客フィードバックコメントを分析する際は、製品の使いやすさとインターフェース設計に関連する言及のみを考慮してください。価格、配送、またはカスタマーサービスに関するコメントは無視してください。」

プロンプトの改善は、元のプロンプトにおける曖昧性、偏り、または制限を克服するのに役立ち、より正確で包括的かつ実用的な応答につながります。プロンプトの改善には、以下のような複数の戦略が考えられます:

  • 質問の精緻化:元の質問を明確化するために洗練させることができます。
  • 代替アプローチ:モデルにタスクを解決する異なる方法を見つけるよう依頼します。
  • 複雑な質問を管理しやすい小さなサブ質問に分解する。
  • モデルが何らかの理由で回答を拒否した場合、質問を言い換える。

例:

元のクエリ: 「パスワードをハッキングするコードを書いてください。」

モデルの応答: 「ハッキング用のコードは提供できません。これはセキュリティポリシーに違反します。ハッシュ化や二要素認証などのパスワード保護方法についてお尋ねください。」

改善されたユーザークエリ: 「長さの検証、異なる文字タイプの存在の確認、一般的な組み合わせの除外によってパスワードの強度をチェックするPythonコードを書いてください。」

プロンプトの改善

高度なプロンプト技術

DeepSeek-R1やGemini 2.5 Proなど、最先端の大規模言語モデルには推論能力が備わっています。この機能を有効にするには、特定のボタン(例:DeepThink)をクリックする必要がある場合もあれば、プロンプトに「段階的に考えてみましょう」と追加するだけで済む場合もあります。これにより、モデルに質問から直接最終回答を求めるのではなく、回答に至る段階的な推論プロセス(「思考の連鎖」)を生成するよう促せます。

思考の連鎖は人間の推論を模倣し、チャットボットが結論に飛びつくのを防ぎます。複雑な問題に対して人間が用いる、ゆっくりとした慎重な段階的プロセスをモデルに強制的に再現させるのです。また、モデルの最終回答が間違っていた場合、推論のどのステップに誤りがあったかを正確に把握できるため、修正が容易になります。

注目すべきバリエーションには以下が含まれます:

  • 対照的思考の連鎖
  • マルチモーダル思考の連鎖

対照的思考の連鎖は、問題解決の正しい例と誤った例の両方を提示することで、大規模言語モデルの推論能力を強化します。

対照的思考の連鎖

対照的思考の連鎖

対照的思考連鎖は、モデルに回避すべき誤りを明示的に示すことで、様々な推論ベンチマークにおいて性能を大幅に向上させることが実証されている。例えば算術推論のGSM8Kベンチマークでは、対照的思考連鎖は標準的な思考連鎖と比較して精度が顕著に向上した。

マルチモーダル思考連鎖は、テキストと視覚情報を2段階のフレームワークに統合する。プロンプトの一例は以下の通り:「売上チャートを見てください。手順を説明してください:X軸とY軸には何が表示されていますか?ここでの傾向は?どのような結論を導き出せますか?」モデルはまず視覚情報を記述し、その後段階的にそれに基づく結論を構築する。

多模態思考連鎖

多模態思考連鎖

上の図では、モデルは2つの物体に共通する特性を選択するよう求められています:どちらもA) 柔らかい、それともB) 塩辛い?

その他の注目すべき高度なプロンプティング技術:

  • 自己整合性:単一の「思考の連鎖」ではなく、モデルは複数の推論経路を生成し、最も一貫性が高く頻度の高い回答を選択します。
  • 思考の樹形図:モデルは複数の解決策の道筋(木の枝のように)を探索し、それぞれの可能性を評価し、最も有望なものを深く掘り下げます。
  • ステップバックプロンプティング:モデルはまず質問に関連する一般的な原則や抽象概念を定式化(「一歩引く」)し、それを適用して正確な答えを見つけます。

これらの技術やその他の技術について、こちらで詳しく学ぶことができます。

高度なプロンプティング技術

ソース: promptingguide.ai

そこでは、これらの各技術に関する科学的研究へのリンクも見つかります。

優れたプロンプトの入手先

有料・無料を問わず、既成のプロンプトを入手できるウェブサイトは数多く存在します。こうしたウェブサイトは「プロンプトライブラリ」と呼ばれます。以下にその一部を紹介します:

  • Snack Prompt. ワンクリックでコンテンツを生成するソリューションと、高度なユースケース向けの強力な多段階プロンプトを提供。各プロンプトはコミュニティメンバーによる評価付き。
  • Anthropicのプロンプトライブラリ。Claudeユーザーと開発者向けに最適化されています。
  • God of Prompt。金融、教育、生産性、ライティングなど幅広いトピックに対応した大規模プロンプトライブラリ。
  • PromptBase。GPT、Claude、Gemini、DeepSeekなど各種ニューラルネットワーク向けに、23万件以上の既製テキスト/音声/動画プロンプトを提供。
プロンプトライブラリ

プロンプトライブラリ

また、PromptPerfectのようなサービスを利用すれば、様々なモデル向けに自身でプロンプトを最適化することも可能です。

したがって、本記事で説明したプロンプト作成のテクニックや推奨事項を適用し、既成ソリューションのライブラリを活用することで、あらゆるタスク解決のためのプロンプトを作成または見つけ出すことができます。

さらに、当サイトでは多様な言語モデルを提供しているため、最適な結果を得るためにモデルを切り替えて実験することも有効です。