このページでは、プロンプトの設計時に採用できる一般的なプロンプトの設計戦略について説明します。
大規模言語モデル(LLM)は、言語間のパターンと関係を学習するために、膨大なテキストデータでトレーニングされています。テキスト(プロンプト)を受け取った言語モデルは、高度な予測入力ツールのように、次に来ると思われるものを予測できます。
Google AI Studio には、このガイドで説明する多くのコンセプトをインタラクティブに紹介するシンプルなプロンプト ギャラリーが用意されています。このガイドの残りの部分では、次のプロンプト設計戦略について説明します。明確で具体的な指示にする
何をすべきかモデルに指示することは、モデルの動作をカスタマイズする効果的かつ効率的な方法です。指示は明確かつ具体的にしてください。指示には手順のリストのような単純なものもあれば、ユーザー エクスペリエンスやマインドセットを示すような複雑なものもあります。
実行するタスクを定義する
モデルに実行させたいタスクを詳しく記述します。タスクには段階的な手順のリストのような単純なものもあれば、ユーザー エクスペリエンスや考え方を示すような複雑なものもあります。次のプロンプトは、テキストのブロックを要約するようモデルに指示しています。
Summarize this text: Text: A quantum computer exploits quantum mechanical phenomena to perform calculations exponentially faster than any modern traditional computer. At very tiny scales, physical matter acts as both particles and as waves, and quantum computing uses specialized hardware to leverage this behavior. The operating principles of quantum devices is beyond the scope of classical physics. When deployed at scale, quantum computers could be used in a wide variety of applications such as: in cybersecurity to break existing encryption methods while helping researchers create new ones, in meteorology to develop better weather forecasting etc. However, the current state of the art quantum computers are still largely experimental and impractical. Quantum computers leverage the wave-particle duality of matter at tiny scales to perform calculations exponentially faster than traditional computers. They harness quantum phenomena, which are beyond the scope of classical physics, to achieve this speed advantage. While promising for applications like cybersecurity, weather forecasting, and beyond, current quantum computers are still experimental and not yet practical for widespread use. |
制約を指定する
プロンプトの読み取りやレスポンスの生成に関する制約を指定します。行うべきことと、行うべきでないことをモデルに指示できます。前の例では、要約が元のテキストよりも短くなっていますが、さらに短い要約がほしい場合もあります。その場合、必要な要約の長さについてプロンプトで制約を指定できます。
Summarize this text in two sentences: Text: A quantum computer exploits quantum mechanical phenomena to perform calculations exponentially faster than any modern traditional computer. At very tiny scales, physical matter acts as both particles and as waves, and quantum computing uses specialized hardware to leverage this behavior. The operating principles of quantum devices is beyond the scope of classical physics. When deployed at scale, quantum computers could be used in a wide variety of applications such as: in cybersecurity to break existing encryption methods while helping researchers create new ones, in meteorology to develop better weather forecasting etc. However, the current state of the art quantum computers are still largely experimental and impractical. Quantum computers harness the wave-particle duality of matter at the quantum level to perform computations exponentially faster than traditional computers. While these machines hold immense potential for fields like cybersecurity and weather forecasting, they are currently in their early stages of development and not yet practical for widespread use. |
レスポンスの形式を定義する
指示の中でレスポンスの形式を指定することもできます。たとえば、表、箇条書き、エレベーター ピッチ、キーワード、文、段落の形式でレスポンスを求めることができます。次のシステム メッセージは、レスポンスでより会話的な表現を使用するようにモデルに指示します。
All questions should be answered comprehensively with details, unless the user requests a concise response specifically. Respond in the same language as the query. What is a smart way to create a lemonade business? Launching a Successful Lemonade Stand: A Smart Approach Creating a lemonade business, whether a simple stand or a larger operation, requires strategic thinking. Here's a breakdown of how to approach it smartly: 1. Define Your Business: Scope: Are you aiming for a small, seasonal lemonade stand, a food truck, a delivery service, or something else entirely? Target Audience: Who are you selling to? Families, office workers, tourists? Unique Selling Proposition: What sets your lemonade apart? Special flavors, organic ingredients, a unique recipe? Pricing: Research competitor prices and determine a profitable pricing structure. Location: Consider foot traffic, accessibility, and regulations for your chosen location. ..... |
概要
- 何をすべきかについてモデルに指示を与えます。
- 指示は明確かつ具体的にしてください。
- 出力の制約またはフォーマット要件を指定します。
少数ショットの例を含める
プロンプトには、モデルに期待する動作の例を含めることができます。モデルは、パターンと関係を例から識別し、レスポンスを生成する際にそれらを適用します。いくつかの例を含むプロンプトは少数ショット プロンプトと呼ばれ、例のないプロンプトはゼロショット プロンプトと呼ばれます。少数ショット プロンプトは、モデルのレスポンスの形式、フレーズ、範囲、一般的なパターンを規制するためによく使用されています。具体的で多様な例を使用して、モデルが焦点を絞り込み、より正確な結果を生成できるようにします。
プロンプトには、常に少数ショットの例を含めることをおすすめします。少数ショットの例がないプロンプトは効果的でない可能性があります。タスクを説明するのに十分な例が含まれていれば、プロンプトから指示を削除することも可能です。
ゼロショット プロンプトと少数ショット プロンプト
次のゼロショット プロンプトでは、モデルに最良の説明を選択するよう求めます。
Please choose the best explanation to the question: Question: How is snow formed? Explanation1: Snow is formed when water vapor in the air freezes into ice crystals in the atmosphere, which can combine and grow into snowflakes as they fall through the atmosphere and accumulate on the ground. Explanation2: Water vapor freezes into ice crystals forming snow. Answer: Explanation 1 is the best explanation. |
ユースケースでモデルが簡潔なレスポンスを生成する必要がある場合は、簡潔なレスポンスを優先する例をプロンプトに含めることができます。
次のプロンプトでは、短い説明を優先する例を 2 つ示します。レスポンスでは、前の例のような長い説明(説明 1)ではなく、短い説明(説明 2)を選択するように例がモデルをガイドしたことがわかります。
Below are some examples showing a question, explanation, and answer format: Question: Why is sky blue? Explanation1: The sky appears blue because of Rayleigh scattering, which causes shorter blue wavelengths of light to be scattered more easily than longer red wavelengths, making the sky look blue. Explanation2: Due to Rayleigh scattering effect. Answer: Explanation2 Question: What is the cause of earthquakes? Explanation1: Sudden release of energy in the Earth's crust. Explanation2: Earthquakes happen when tectonic plates suddenly slip or break apart, causing a release of energy that creates seismic waves that can shake the ground and cause damage. Answer: Explanation1 Now, Answer the following question given the example formats above: Question: How is snow formed? Explanation1: Snow is formed when water vapor in the air freezes into ice crystals in the atmosphere, which can combine and grow into snowflakes as they fall through the atmosphere and accumulate on the ground. Explanation2: Water vapor freezes into ice crystals forming snow. Answer: Answer: Explanation2 |
最適なサンプル数を求める
最も望ましい結果が得られるように、プロンプトに表示するサンプルの数をテストできます。Gemini のようなモデルでは、多くの場合、いくつかの例を使用してパターンを検出できますが、望ましい結果につながる例の数をテストすることが必要な場合があります。同時に、過剰に多くの例を追加すると、モデルが例に対するレスポンスを過学習し始める可能性があります。
例を使用してアンチパターンではなくパターンを示す
回避すべきアンチパターンを例示するよりも、従うべきパターンをモデルに例示するほうが効果的です。
⛔ ネガティブ パターン:
Don't end haikus with a question: Haiku are fun A short and simple poem Don't you enjoy them? |
✅ ポジティブ パターン:
Always end haikus with an assertion: Haiku are fun A short and simple poem A joy to write |
サンプル全体で一貫した形式を使用する
レスポンスが望ましくない形式で返されないように、少数ショットの例の構造と形式を同じにする必要があります。プロンプトに少数ショットの例を追加する主な目的の 1 つは、モデルにレスポンスの形式を示すことです。そのため、すべてのサンプルで形式を統一することが重要になります。特に、XML タグ、空白、改行、サンプルの分割子には注意してください。
まとめ
- モデルが応答方法を効率的に学習できるように、プロンプトにはプロンプト / レスポンスの例を含めてください。
- 回避するパターンの例ではなく、従うべきパターンの例をモデルに提示します。
- 表示するプロンプトの数を調べてみてください。モデルによっては、例が少なすぎると、モデルの動作の変更は期待できません。サンプルが多すぎると、モデルが過学習する原因となります。
- サンプル全体で一貫した形式を使用してください。
コンテキスト情報を追加する
モデルに必要な情報がすべて与えられていると仮定するのではなく、モデルが問題を解決するために必要な情報をプロンプトの手順と情報に含めることができます。このコンテキスト情報により、モデルは、要求された内容の制約と詳細を理解できます。
次の例では、モデルにルーターのトラブルシューティング ガイダンスを提供するよう求めています。
What should I do to fix my disconnected wifi? The light on my Google Wifi router is yellow and blinking slowly. A yellow blinking light on your Google Wifi router usually indicates a problem with the internet connection. Here are some steps to troubleshoot and fix the issue: 1. Restart your router and modem: - Unplug your modem from the power outlet and wait for 30 seconds. - Plug your modem back in and wait for it to fully boot up. - Unplug your Google Wifi router and wait for 30 seconds. - Plug your Google Wifi router back in and wait for it to fully boot up. ..... |
Answer the question using the text below. Respond with only the text provided. Question: What should I do to fix my disconnected wifi? The light on my Google Wifi router is yellow and blinking slowly. Text: Color: Slowly pulsing yellow What it means: There is a network error. What to do: Check that the Ethernet cable is connected to both your router and your modem and both devices are turned on. You might need to unplug and plug in each device again. Color: Fast blinking yellow What it means: You are holding down the reset button and are factory resetting this device. What to do: If you keep holding down the reset button, after about 12 seconds, the light will turn solid yellow. Once it is solid yellow, let go of the factory reset button. Color: Solid yellow What it means: Router is factory resetting. What to do: This can take up to 10 minutes. When it's done, the device will reset itself and start pulsing white, letting you know it's ready for setup. Color: Solid red What it means: Something is wrong. What to do: Critical failure. Factory reset the router. If the light stays red, contact Wifi customer support. Check that the Ethernet cable is connected to both your router and your modem and both devices are turned on. You might need to unplug and plug in each device again. |
概要
- レスポンスの生成時にモデルが使用するように設定するプロンプトに情報(コンテキスト)を追加します。
- コンテキスト情報の用途について、モデルに指示を与えます。
接頭辞を追加する
接頭辞は、プロンプト コンテンツに追加する単語またはフレーズであり、接頭辞を付加する場所に応じてさまざまな目的で使用できます。
- 入力接頭辞: モデルへの入力の意味的に重要な部分である入力シグナルに接頭辞を追加します。たとえば、接頭辞「English:」と「French:」は 2 つの異なる言語を識別可能にします。
- 出力接頭辞: 出力はモデルによって生成されますが、プロンプトで出力に接頭辞を追加できます。出力接頭辞は、レスポンスとして期待される内容に関する情報をモデルに与えます。たとえば、出力接頭辞「JSON:」は、出力を JSON 形式にする必要があることをモデルに伝えます。
- 接頭辞の例: 少数ショット プロンプトでは、例に接頭辞を追加すると、モデルが出力の生成時に使用できるラベルが提供されます。これにより、出力内容の解析が容易になります。
次の例では、「Text:」が入力接頭辞であり、「The answer is:」が出力接頭辞です。
Classify the text as one of the following categories. - large - small Text: Rhino The answer is: large Text: Mouse The answer is: small Text: Snail The answer is: small Text: Elephant The answer is: The answer is: large |
モデルに部分的な入力を任せる
生成言語モデルは、高度な予測入力ツールのように機能します。部分的なコンテンツを提供すると、モデルは残りのコンテンツ、またはコンテンツの継続として認識したコンテンツをレスポンスとして提供できます。その場合、例やコンテキストを含めると、モデルはそれらの例やコンテキストを参考にできます。
次の例では、指示とエンティティ入力を含むプロンプトを示しています。
For the given order, return a JSON object that has the fields cheeseburger, hamburger, fries, or drink, with the value being the quantity. Order: A burger and a drink. ``` { "hamburger": 1, "drink": 1 } ``` |
モデルはプロンプトに従って動作しましたが、自然言語での指示は難しい場合があり、モデルの解釈に多くの負担が残ります。たとえば、レストランのメニューに多くのアイテムが含まれているとします。JSON レスポンスのサイズを小さくするには、オーダーされていないアイテムを省略します。この場合、例とレスポンス接頭辞を指定して、モデルに完成させることができます。
Valid fields are cheeseburger, hamburger, fries, and drink. Order: Give me a cheeseburger and fries Output: ``` { "cheeseburger": 1, "fries": 1 } ``` Order: I want two burgers, a drink, and fries. Output: ``` { "hamburger": 2, "drink": 1, "fries": 1 } ``` |
「cheeseburger」は注文に含まれていないため、出力から除外されています。
レスポンスの書式設定をモデルに指示する
完了戦略は、レスポンスの書式設定にも活用できます。次の例では、小論文の概要を作成するようにモデルに指示しています。
Create an outline for an essay about hummingbirds. Hummingbirds: A Symphony of Speed and Color I. Introduction A. Hummingbirds are fascinating creatures known for their dazzling colors, lightning-fast flight, and unique feeding habits. B. Brief overview of the diversity of hummingbird species and their geographic distribution. C. Thesis statement: Hummingbirds are an embodiment of resilience, adaptation, and the wonders of the natural world. ..... |
プロンプトでアウトラインの形式が指定されていないため、モデルによって形式が選択されています。モデルが特定の形式でアウトラインを返すようにするには、アウトラインの始点を表すテキストを追加し、開始パターンに基づいてモデルを完成させます。
Create an outline for an essay about hummingbirds. I. Introduction * Hummingbirds: Jewels of the Air **I. Introduction** * **Hook:** Begin with a captivating image or anecdote about hummingbirds, emphasizing their vibrant colors, rapid flight, and unique feeding habits. * **Background:** Briefly introduce hummingbirds as the smallest birds in the world and their fascinating adaptations for a nectar-rich diet. * **Thesis:** State the main argument or focus of the essay. Examples: * **The incredible adaptations of hummingbirds enable them to thrive in diverse ecosystems.** * **Hummingbirds play a crucial role in pollination and biodiversity.** * **The beauty and grace of hummingbirds make them captivating subjects for both scientific study and artistic appreciation.** |
概要
- モデルに部分的な入力を与えると、モデルはプロンプトの利用可能な例やコンテキストに基づいて、入力を補完します。
- モデルに入力を完成するよう求めるほうが、自然言語でタスクを記述するよりも簡単な場合があります。
- プロンプトに部分的な回答を追加すると、モデルが目的のパターンや形式に従うように指示できます。
プロンプトを単純なコンポーネントに分割する
複雑なプロンプトを必要とするユースケースでは、プロンプトをより単純なコンポーネントに分割することで、モデルでこの複雑さを管理できるようになります。
指示を分割する
1 つのプロンプトに複数の指示を記述するのではなく、指示ごとに 1 つのプロンプトを作成します。ユーザーの入力に基づいて、処理するプロンプトを選択できます。
プロンプトを連結する
複数の連続したステップを含む複雑なタスクの場合は、各ステップをプロンプトにして、プロンプトを順番に連結します。このプロンプトのチェーンでは、シーケンス内の 1 つのプロンプトの出力が次のプロンプトの入力になります。シーケンスの最後のプロンプトの出力が最終出力になります。レスポンスを集計する
集計とは、データのさまざまな部分に対して異なる並列タスクを実行し、結果を集計して最終出力を生成することです。たとえば、データの最初の部分に対して 1 つのオペレーションを実行し、残りのデータに対して別のオペレーションを実行して、結果を集計するようにモデルに指示できます。
まとめ
- 複雑な指示を指示のプロンプトに分解します。また、ユーザーの入力に応じて適用するプロンプトを決定します。
- 連続した複数のステップを別々のプロンプトに分割し、前のプロンプトの出力が次のプロンプトの入力になるように連結します。
- 並列タスクを分解し、レスポンスを集計して最終出力を生成します。
さまざまなパラメータ値を試す
モデルに送信するそれぞれの呼び出しに、モデルがどのようにレスポンスを生成するかを制御するパラメータ値が含まれています。このモデルは、パラメータ値によって異なる結果を生成できます。さまざまなパラメータ値を試して、タスクに最適な値を取得します。使用可能なパラメータはモデルに世代によって異なる場合があります。最も一般的なパラメータは次のとおりです。
- 最大出力トークン
- 温度
- Top-K
- Top-P
最大出力トークン
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 20 語に相当します。レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。
温度
温度は、レスポンス生成時のサンプリングに使用されます。レスポンスの生成は、topP
と topK
が適用された場合に行われます。温度は、トークン選択のランダム性の度合いを制御します。温度は低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度 0
は確定的であり、最も高い確率のレスポンスが常に選択されることを表します。ほとんどのユースケースでは、温度 0.2
から始めてみることをおすすめします。モデルが返すレスポンスが一般的すぎたり、短すぎたり、フォールバック レスポンスが返ってきたりする場合は、温度を高くしてみてください。
トップ K
Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が1
の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が 3
の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。トップ K のデフォルト値は 40
です。
トップ P
Top-P は、モデルが出力用にトークンを選択する方法を変更します。トークンは、確率の合計が Top-P 値に等しくなるまで、確率の高いもの(Top-K を参照)から低いものへと選択されます。たとえば、トークン A、B、C の確率が 0.3、0.2、0.1 であり、トップ P 値が0.5
であるとします。この場合、モデルは温度を使用して A または B を次のトークンとして選択し、C は候補から除外します。ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。トップ P のデフォルト値は 0.95
です。
プロンプトの反復処理に関する戦略
プロンプトの設計は反復プロセスであり、多くの場合は、望ましいレスポンスを一貫して取得できるように何度か反復が必要になります。このセクションでは、プロンプトを反復処理する際に試すことができるいくつかのガイダンスについて説明します。
別の言い回しを使用する
多くの場合、プロンプトで異なる単語やフレーズを使用すると、すべて同じ意味であってもモデルのレスオンスが異なります。プロンプトから期待される結果が得られない場合は、言い換えてみてください。
Version 1: How do I bake a pie? Version 2: Suggest a recipe for a pie. Version 3: What's a good pie recipe? |
似たタスクに切り替える
モデルに対してタスクの指示に従わせることができない場合は、同じ結果が得られる同様のタスクの指示を出してみてください。
このプロンプトは、事前定義されたカテゴリを使用して書籍を分類するようモデルに指示します。
Which category does The Odyssey belong to: thriller sci-fi mythology biography The Odyssey belongs to the category of **mythology**. Here's why: * **Mythology:** The Odyssey tells the story of Odysseus, a hero from Greek mythology, and his journey home after the Trojan War. It features gods, monsters, and supernatural events common to Greek mythology. ..... |
レスポンスは正解ですが、モデルがオプションの境界内に収まっていません。また、完全な文ではなく、いずれかのオプションのみを使用して応答するようにモデル化する必要があります。この場合、指示を多肢選択式の質問として言い換えて、モデルにオプションの選択を求めることができます。
Multiple choice problem: Which of the following options describes the book The Odyssey? Options: - thriller - sci-fi - mythology - biography The correct answer is **mythology**. |
プロンプトのコンテンツの順序を変更する
プロンプト内のコンテンツの順序がレスポンスに影響する場合があります。コンテンツの順序を変更して、レスポンスにどう影響するかを確認してみます。
Version 1: [examples] [context] [input] Version 2: [input] [examples] [context] Version 3: [examples] [input] [context]
フォールバック レスポンス
フォールバック レスポンスは、プロンプトまたはレスポンスのいずれかが安全フィルタをトリガーした場合に、モデルが返すレスポンスです。フォールバック レスポンスの例としては、「私は言語モデルにすぎないため、それについては対応できません」が挙げられます。
モデルがフォールバック レスポンスを返す場合は、温度を上げてみてください。
非推奨事項
- 事実に基づく情報の生成についてモデルに頼ることは回避してください。
- 数学や論理の問題では慎重に使用してください。
次のステップ
- プロンプトの設計について理解を深めたところで、Google AI Studio を使用して独自のプロンプトを作成してみましょう。
- マルチモーダル プロンプトの詳細については、メディア ファイルを使用したプロンプトをご覧ください。