Skip to content

プロンプティングリファレンス

以下のセクションでは、Few-shotプロンプティングに関する基本的なガイダンスとより高度なガイダンスを提供します。

プロンプトエンジニアリングのベストプラクティス

プロンプトエンジニアリングは、LLMに与える入力プロンプトを慎重に作成して、生成される出力の有用性を最大化するプロセスを指します。 これは、これらのモデルを最大限に活用するための重要なステップです。プロンプトの言い回しが回答に大きく影響するからです。 以下は、プロンプトエンジニアリングのベストプラクティスの一部です。

特性 説明
具体性 プロンプトはできる限り具体的にします。 「天気はどうですか?」と尋ねるのではなく、 「カリフォルニア州サンフランシスコの現在の気温は何度ですか?」 と尋ねます。 後者の方が、探している情報が得られる可能性が高くなります。
明示的な指示 特定の形式またはタイプの回答を念頭に置いている場合は、その旨をプロンプトで明確にしてください。 たとえば、リストが必要な場合は、リストを要求します。 「はい」または「いいえ」の答えが必要な場合は、それを質問してください。
コンテキスト情報 該当する場合、モデルをガイドするコンテキストを質問に入れます。 たとえば、科学的なタイプのコンテンツの記述に関する助言が必要な場合は、プロンプトにその旨を必ず記載してください。
例の使用 特定のスタイルまたは形式でモデルを生成する場合、例を挙げると出力のガイドに役立ちます。 たとえば、二行連句の韻が必要な場合は、プロンプトにその例を含めるとよいでしょう。
プロンプトの長さ 文脈を提供することは有用ですが、プロンプトが長くなると、モデルがプロンプトの後半部分に集中し、前半の情報が無視される可能性があることに留意してください。 簡潔かつ的確に表現しましょう。
偏見と倫理に関する注意事項 プロンプトの表現方法は、偏見と有害な反応の観点から出力に影響を与える可能性があることに注意してください。 プロンプトが可能な限り中立で公平であることを確認し、モデルはトレーニングデータに存在する偏見を反映している可能性があることに注意してください。
TemperatureとTop Pの設定 プロンプト自体に加えて、‘temperature’および‘Top P’設定を調整することもできます。 Temperature値が高いほど出力はランダムになり、値が低いほど決定性が向上します。 Top Pは、最も可能性の高い次の単語の特定のパーセンタイルのみを考慮するようにモデルを制限することによって、出力の多様性を制御します。
トークンの制限 モデルの最大トークン制限に注意してください。 たとえば、GPT-3.5 Turboのトークン数の上限は4096個です。 プロンプトが長すぎる場合、モデルのレスポンス長が制限されることがあります。

これらは、プロンプトエンジニアリングにおける主要な考慮事項の一部ですが、正確なアプローチは、探している特定のユースケース、モデル、出力の種類によって異なります。 これは多くの場合、試行錯誤のプロセスであり、問題の領域とモデルの機能と制限の両方を十分に理解する必要があります。

効果的なプロンプティング戦略

このセクションでは、次の例を使用して、プロンプトエンジニアリングの要素を識別します。

あなたは1800年代初頭の世界的に著名な詩人です。 エドガー・アラン・ポーのスタイルで詩を書いてください。 10文の長さで、「押韻」の形式を使用する必要があります。

以下の画像から要素を検討してみましょう。

ペルソナ

ペルソナは、回答全体で特定の相手に似ていること(職業名、著名人)を保証する役割または音声を提供します。

コンテキストと感度

コンテキストは、モデルを特定の設定(時間、対象など)に誘導できる情報またはニュアンスです。 特異度は、より良い結果(トーンやスタイルなど)につながる可能性のあるコンテキストの一部として追加の詳細を提供します。

指示

指示は、モデルに実行させる特定のタスクです(記述、翻訳、要約など)。

ルール

ルールは、回答を制限または制約する仕様を提供します(語句の制限、回避すべきトピックなど)。

出力形式

出力形式は、出力のタイプおよび形式です。 オプションで、目的の回答をさらに絞り込むための例 (質問/回答、見出しなど)を提供できます。

回答の例

Few-shotプロンプティング

Few-shotプロンプティングは、「コンテキスト内学習」で限られた数の例またはプロンプトに基づいてテキストを生成または分類する手法です。実例、すなわち「ショット」は、与えられたコンテキストのパターンにモデルが従うように条件を設定します。トレーニング中に同様の実例を見たことがなくても、コンテキストに関連する一貫したテキストを生成できます。 これは、モデルにラベル付けされた大量のトレーニングデータが通常必要となる従来の機械学習とは異なります。 Few-shotプロンプティングでは、特定のデータセットでファインチューニングを行う必要なく、モデルをテキスト生成、テキストサマリー、変換、質問への回答、センチメント分析などのタスクに適した候補にすることができます。

Few-shotプロンプティングの簡単な例は、顧客のフィードバックを肯定的または否定的に分類する際に使用します。 モデルに肯定的と否定的のフィードバックの例を3つ表示することによって、分類されていないフィードバックを表示したときに、最初の3つの例に基づいてモデルが評価を割り当てることができます。 Few-shotプロンプティングは、モデルに2つ以上の例を表示するときに使用します。Zero-shotとOne-shotのプロンプティングは、同様の手法です。

以下は、DataRobotでのFew-shotプロンプティングの使用を示しています。 システムプロンプトフィールドで、プロンプトと学習例が表示されます。

``` 
Given text in a customer support ticket text, determine the name of the product it refers to, as well as the issue type. The issue type can be "hardware" or "software". Format the response as JSON with two keys, "product" and "issue type".

---------------
Examples:

Input: I'm encountering a bug in TPS Report Generator Enterprise Edition. Whenever I click "Generate", the application crashes. Are there any updates or fixes available?
Output: {"product": "TPS Report Generator Enterprise Edition", "issue_type": "software"}

Input: The screen is flickering on my Acme Phone 5+, and I'm unable to use it. What should I do? I want to install a few games and performed a factory reset, hoping it would resolve the problem, but it didn't help.
Output: {"product": "Acme Phone 5+", "issue_type": "hardware"}
--------------- 
```

LLMにそのコンテキストを入力した後、いくつかのプロンプトの例を試してください。

プロンプト:PrintPro 9000の画面に異様なエラーメッセージが表示されています。 "PC LOAD LETTER"と書かれてあります。 これは何を意味しますか?

プロンプト:Print Pro 9002にファームウェアv12.1をインストールできません。"Incompatible product version"と書かれています。

詳細については、 MIT Prompt Engineering Guideを参照してください。