より効果的なプロンプトを作成する

完了

Azure OpenAI モデルは、自然言語のクエリに対して驚くべき精度で応答を生成できます。 ただし、応答の品質は、どのくらい適切にプロンプトを作成したかに応じて決まります。 開発者は、プロンプトにさまざまな手法を使うことで Azure OpenAI モデルのパフォーマンスを最適化し、より正確で適切な応答を得ることができます。

明確な指示を提供する

Azure OpenAI のモデルに対して求めていることを明確に聞くことは、目的の結果を得る方法の 1 つです。 できるだけわかりやすく説明することで、求めているものに最も近い応答をモデルから生成できます。

たとえば、新しい水筒の製品説明を作成するとします。 各プロンプトに関連付けられた答えを考えてみましょう。

プロンプト

Write a product description for a new water bottle

Response

Introducing the latest addition to our product line - the innovative and eco-friendly water bottle.
Made from high-quality, BPA-free materials, this bottle is designed to keep your beverages at the
perfect temperature for hours. Its sleek and stylish design makes it the perfect accessory for any
outdoor activity or workout session. With its convenient carrying handle and leak-proof lid, you 
can take it with you wherever you go, without worrying about spills or leaks. Plus, its easy-to-clean
design ensures that you can use it again and again, making it the perfect choice for anyone looking 
for a reliable and sustainable water bottle.

同じようなプロンプトで、明確な指示がある場合と比較します。

プロンプト

Write a product description for a new water bottle that is 100% recycled. Be sure to include that
it comes in natural colors with no dyes, and each purchase removes 10 pounds of plastic from our 
oceans

Response

Introducing our newest water bottle, the eco-friendly choice for the conscious consumer. Made from 
100% recycled materials and available in natural colors with no dyes, this bottle is not only 
stylish but also sustainable. Each purchase of this bottle removes 10 pounds of plastic from 
our oceans, making it a responsible choice for those who care about the environment. Its durable 
and leak-proof design makes it perfect for outdoor activities, while its easy-to-carry handle 
makes it convenient to take on the go. Join us in our mission to reduce plastic waste and choose 
this eco-friendly water bottle for your daily hydration needs.

必要な具体的な内容を含めることで、モデルは新製品の説明に追加すべき情報を把握し、より正確にすることができます。

この方法は、含める詳細の箇条書き、応答の長さ、出力に含める目的の形式など、複雑な指示を含むように拡張できます。 結果に表示したい内容を正確に聞いてみてください。その要求をモデルがどのくらい満たしているかに驚くかもしれません。

指示の書式

指示の書式を設定する方法は、モデルがプロンプトを解釈する方法に影響する可能性があります。 最新性バイアスがモデルに影響する可能性があり、プロンプトの末尾近くにある情報の方が、先頭にある情報よりも出力に与える影響が大きい可能性があります。 プロンプトの末尾にある指示を繰り返し、生成された応答にどのような影響するかを評価することで、より適切な応答が得られる可能性があります。

この最新性バイアスは ChatCompletion をチャット シナリオで使う場合にも影響する可能性があり、プロンプトに含まれる会話の中でより新しいメッセージの方が、応答に与える影響が大きくなります。 次のユニットでは、応答の品質を高めるように会話を使う方法について詳しく説明しますが、重要な情報をプロンプトの末尾近くに置くと、より良い応答が得られます。

セクション マーカーを使う

指示の書式を設定する場合の具体的な手法は、プロンプトの先頭または末尾で指示を分割し、ユーザー コンテンツを --- または ### ブロック内に含めることです。 これらのタグを使うと、モデルは指示とコンテンツをより明確に区別できるようになります。 次に例を示します。

Translate the text into French

---
What's the weather going to be like today?
---

Note

セクション マーカーのベスト プラクティスは、将来のバージョンで変更される可能性があります。

プライマリ、サポート、および基礎コンテンツ

モデルが応答に使うコンテンツを含めることで、より正確に答えられるようになります。 このコンテンツは、プライマリ コンテンツとサポート コンテンツという 2 つの方法で考えることができます。

プライマリ コンテンツとは、翻訳する文章や要約する記事などの、クエリの対象となるコンテンツのことです。 このコンテンツは、プロンプトの先頭または末尾に含まれることが多く (指示として含まれ、--- ブロックで区別されます)、その処理方法を説明する指示も含まれています。

たとえば、要約したい長い記事があるとします。 それをプロンプトの --- ブロック内に配置し、指示で終了することもできます。

---
<insert full article here, as primary content>
---

Summarize this article and identify three takeaways in a bulleted list

サポート コンテンツとは、応答を変える可能性があり、プロンプトの焦点や主題ではないコンテンツです。 サポート コンテンツの例としては、応答に含める名前、好み、将来の日付などがあります。 サポート コンテンツを提供することで、モデルの応答をより完全で正確にすることができます。また、必要な情報が含まれる可能性が高くなります。

たとえば、非常に長い販売促進メールがある場合、モデルで重要な情報を抽出できます。 次に、プロンプトにサポート コンテンツを追加し、探している具体的な情報を提供すると、モデルはより有用な応答を提供できるようになります。 この場合、メールがプライマリ コンテンツで、興味のあることの具体的な内容がサポート コンテンツになります。

---
<insert full email here, as primary content>
---
<the next line is the supporting content>
Topics I'm very interested in: AI, webinar dates, submission deadlines

Extract the key points from the above email, and put them in a bulleted list:

基礎コンテンツを使って、モデルが答えを導き出すためのコンテンツを提供することで、モデルが信頼できる答えを提供できるようになります。 基礎コンテンツは、質問するエッセイや記事、会社の FAQ ドキュメント、モデルのトレーニングに使われたデータよりも新しい情報などがあります。 より信頼性の高い最新の応答が必要な場合や、未公開の情報や特定の情報を参照する必要がある場合は、基礎コンテンツを強くお勧めします。

基礎コンテンツはプライマリ コンテンツとは異なり、要約や翻訳などの目的で操作されるコンテンツではなく、プロンプト クエリに答えるための情報源です。 たとえば、AI の歴史に関する未発表の研究論文を提供した場合、その基礎コンテンツを使って質問に答えることができます。

---
<insert unpublished paper on the history of AI here, as grounding content>
---

Where and when did the field of AI start?

このような基礎データによって、トレーニングに使ったデータセットにはない、より正確で情報に基づいた答えをモデルから返すことができるようになります。

キュー

キューは、モデルを構築するための先導的な言葉であり、多くの場合、応答を正しい方向に形作るのに役立ちます。 多くの場合、指示と共に使われますが、必ずしもそうとは限りません。 キューは、モデルにコード生成を求める場合に特に役立ちます。 現在の Azure OpenAI モデルでも、ある程度興味深いコード スニペットを生成できますが、今後のモジュールではコード生成についてさらに詳しく説明します。

たとえば、SQL クエリの作成について支援が必要な場合、クエリの先頭と共に必要なことの指示を提供します。

Write a join query to get customer names with purchases in the past 30 days between tables named orders and customer on customer ID. 

SELECT

モデルの応答は、プロンプトが中断したところから始まり、特定の言語を要求しなくても、SQL で続行されます。 他の例としては、目的のアプリに関するコード コメントを指定し、プロンプトの末尾に先導する単語として import を含めて python コードを支援したり、目的の言語で同様のことをしたりすることができます。

別の例として、プロンプトに顧客レビューの大規模なコレクションを指定し、末尾を次のようにすることができます。

Summarize the reviews above:
Most common complaints:
- 

すると、モデルは、レビューで提供されたコンテキストに基づいて文を完成させることを認識します。