プロンプト エンジニアリングについて理解する
Azure OpenAI で使用できるような AI モデルに送信する入力プロンプトの品質は、受け取る応答の品質に直接影響します。 モデルに送信するプロンプトを慎重に構築することで、モデルからより適切で興味深い応答を提供することができます。
プロンプト エンジニアリングとは
生成 AI モデルは、大量のデータでトレーニングされており、プロンプトの続きとして最も可能性が高いものに基づいて、テキスト、画像、コード、クリエイティブ コンテンツを生成できます。
プロンプト エンジニアリングとは、AI モデルをより適切に活用するようにプロンプトを設計し、最適化するプロセスです。 効果的なプロンプトの設計はプロンプト エンジニアリングの成功に不可欠であり、特定のタスクに対する AI モデルのパフォーマンスを大幅に向上させることができます。 関連性があり、具体的、明確であり、適切な構造のプロンプトを指定することで、モデルはコンテキストをより適切に理解し、より正確な応答を生成できます。
たとえば、OpenAI モデルで製品の説明を生成するには、製品の特徴やベネフィットを説明する詳細な説明を提供できます。 このようにコンテキストを提供することで、モデルはより正確で適切な製品の説明を生成できます。
プロンプト エンジニアリングは、AI モデルの偏りを軽減し、公平性を向上させるのにも役立ちます。 多様で包括的なプロンプトを設計することで、モデルが特定のグループや視点に偏らないようにすることができます。
重要
どのように優れたプロンプトを設計できても、AI モデルからの応答を事実である、または偏見がまったくないと考えないでください。 AI は常に責任を持って使ってください。 詳細については、Microsoft の Azure OpenAI に関する透過性のためのメモと Microsoft の AI の基本原則のページを参照してください。
さらに、プロンプト エンジニアリングは、モデルが応答を生成するために使う参照を理解するのに役立ちます。 生成 AI モデルには多数のパラメーターがあり、その従うロジックはユーザーにほとんど知られていないため、その応答にどのようにたどり着いたのかがわかりづらいことがあります。 理解しやすく解釈しやすいプロンプトを設計することで、モデルが応答を生成する方法をユーザーが理解しやすくなります。 これは、医療のような分野で特に重要と考えられます。モデルがどのように決定を下しているかを理解することが不可欠だからです。
プロンプトを設計する際にはさまざまな方法を利用できます。このモジュールの今後のユニットでは、その多くについて取り上げます。 たとえば、指示、コンテキストに応じた内容、キューまたはフューショットの例、正しい順序の内容をプロンプトで指定する方法などです。 この分野は微妙で流動的なトピックなので、ここで取り上げる方法はすべてを網羅しているわけではありません。
API エンドポイントに関する考慮事項
このモジュールの残りの部分の例では、ChatCompletion
に重点を置きます。 ChatCompletion
は、すべての指示をシステム メッセージに含めて、ユーザー ロール メッセージにユーザー コンテンツを表示するという、チャット以外のシナリオにも使用できることに留意してください。 これらの例のほとんどは、必要に応じて Completion
エンドポイントを使用するように変更できます。
モデルの可用性については、Completion
エンドポイントは gpt-3
以前の、ChatCompletion
は gpt-35-turbo
以降のモデルで使用できます。
モデル パラメーターの調整
このモジュールで説明した手法に加え、モデルのパラメーターを調整することも、応答に大きな影響を与える可能性があります。 特に temperature
と top_p
(top_probability) は、いずれもモデルのランダム性を制御するので、モデルの応答に影響を与える可能性が最も高いものですが、その方法はさまざまです。
値を高くすると、より創造的でランダムな応答が得られますが、一貫性が失われたり、焦点がぼけたりする可能性があります。 架空の、またはユニークな応答が望ましい場合はこれらのパラメーターの値を高くし、より一貫性のある具体的な応答が望ましい場合は低い値を使うことをお勧めします。
同じプロンプトを使ってこれらのパラメーターを調整し、応答にどのような影響が出るかを試してみてください。 一度に temperature
または top_p
を変更し、両方を変更しないことをお勧めします。