Microsoft が「Prompt Project」の高度なゲームプレイをマスターするためのチュートリアルを正式に公開しました。

 データホエール乾物 

最新: プロンプト チュートリアルコンパイル: Heart of the Machine

大きなモデルの場合、次のステップはプロンプトを設計することです。

ここ数カ月の間に、ChatGPTやGPT-4といった大型モデルが相次いでリリースされた。これらのモデルは強力な創発能力を示しますが、モデルによって生成される結果はランダムで、良い場合も悪い場合もあり、その理由の一部は Prompt の設計と密接に関係しています。

多くの人が Prompt を大規模なモデルの呪文に例えますが、これはモデルによるコンテンツ生成の誘導に大きな影響を及ぼし、Prompt をどのように選択するかはすべての AI 研究者の関心事となっています。最近、Microsoft はチュートリアルを正式にリリースしました。このチュートリアルでは、システム メッセージ、少数サンプル学習、非チャット シナリオなどをカバーする、プロンプトのデザインとエンジニアリングにおける高度なゲームプレイを紹介しています。

70d334c85125285d425af3da09fe33de.png

各コンテンツには技術的な紹介や表示例が記載されており、以下では具体的な内容を見ていきましょう。

プロンプトについて、次のことを知っておく必要があります

システムインフォメーション

システム メッセージはプロンプトの先頭に含まれており、モデルにコンテキスト、指示、またはユースケースに関連するその他の情報を提供します。ユーザーは、システム メッセージを通じてモデルが何を応答すべきか、何を応答すべきでないかを説明し、モデルの応答の形式を定義できます。

次の図は、システム メッセージとモデル生成の応答の例を示しています。

9dd7e2eb5d4ed2b8c18da0abd3756009.png

通常、システム メッセージは次のようになります。

  • 上の表のアシスタントは、OpenAI によってトレーニングされた大規模な言語モデルです。

  • アシスタントは、ユーザーが質問に回答できるように設計されたインテリジェントなチャットボットです。与えられたコンテキストのみを使用して質問に答えることをモデルに要求します。答えがわからない場合は、「わかりません」と言うことができます。

  • Assistant は、ユーザーが税関連の質問に回答できるように支援するインテリジェントなチャットボットです。

  • 別の例として、あなたはテキストからエンティティを抽出するように設計されたアシスタントです。ユーザーはテキスト文字列を貼り付け、あなたはテキストから抽出したエンティティを JSON オブジェクトの形式で応答します。

出力形式の例を次に示します。

{
"name": "",
"company": "",
"phone_number": ""
}

上記はシステム メッセージの導入に関するものですが、重要な詳細は、適切に設計されたシステム メッセージであっても、モデルはシステム メッセージの指示と矛盾するエラー応答を生成する可能性があるということです。

数回の学習

言語モデルを新しいタスクに適応させる一般的な方法は、少数ショット学習を使用することです。フューショット学習では、追加のコンテキスト情報をモデルに提供するためのプロンプトの一部としてトレーニング サンプルのセットが提供されます。

ユーザーとアシスタントの間の一連のメッセージ (新しいプロンプト形式で書かれた) は、数ショット学習の例として役立ちます。これらの例は、モデルが特定の方法で応答するようにガイドしたり、特定の動作をシミュレートしたり、一般的な質問に対するシード回答を提供したりするために使用できます。

ab433573229f10c03137d2f9d4584c09.png

プロンプトの基本構造。

会話のないシーン

現在の大規模モデルの主なアプリケーション シナリオはダイアログ生成シナリオですが、非ダイアログ シナリオでも使用できます。たとえば、感情分析シナリオの場合は、次のプロンプトを使用できます。

2b324bd7aa5b1dbd3210502f7ad6ae40.png

明示的な指示を使用する

一般に、プロンプトに情報が表示される順序は重要です。GPT のようなモデルは特定の方法で構築されるため、構築プロセスによってモデルが入力に対して何を行うかが定義されます。研究によると、追加のコンテキスト情報や例を共有する前に、プロンプトの冒頭でモデルに何をしてもらいたいかを伝えることで、モデルがより高品質の出力を生成できることがわかっています。

f75c7ae7a9a4f4941467f221a3814af3.png

最後にもう一度コマンドを繰り返します

モデルは最近のバイアスの影響を受けやすく、その場合、終了プロンプト情報が開始プロンプト情報よりも出力に大きな影響を与える可能性があります。したがって、プロンプトの最後に指示を繰り返すことは、試してみる価値があります。

出力に対する操作

これは、目的の形式に準拠した模範応答を取得するために、プロンプトの最後に複数の単語またはフレーズが含まれている場合に当てはまります。たとえば、「キー ポイントの箇条書きリストは次のとおりです:\n-」のようなプロンプトを使用すると、出力が箇条書きリストとしてフォーマットされるようにすることができます。

dc7d70b3e387d4ad7576bab206d999f9.png

構文を追加

句読点や見出しなどの構文をプロンプトに追加します。これにより、出力が解析しやすくなります。

以下の例では、異なる情報ソースまたはステップの間に区切り文字 (この場合 ---) が追加されています。この操作により、生成の停止条件として --- を使用できるようになります。また、一部の見出しや特殊変数は区別するために大文字で表記されています。

afbff35ba3656cb2030cb381cbff7372.png

タスクを細分化する

大規模言語モデル (LLM) は、多くの場合、タスクを小さなステップに分割するとパフォーマンスが向上します。

40aebfa77b60077ac141116adddaaa36.png

ここでは、さまざまな部分を区別し、出力を初期化するために構文が使用されていることに注意してください。この単純な例では、タスクを 1 つのステップから 2 つのステップに分割することはすぐにはわかりませんが、多くの事実に基づく記述を含む大きなテキスト ブロックに対してこれを実行しようとする場合、タスクを分割することで大きな違いが生じます。

思考の連鎖のヒント

これは、分割タスク手法のバリエーションです。このアプローチでは、タスクを小さなステップに分割するのではなく、モデルは段階的に応答し、関連するすべてのステップを提示するように指示されます。そうすることで、不正確な結果が減り、モデルの応答の評価が容易になります。

f760d057bcb483bf532d7578413143d6.png

実際のコンテキストを提供する

この方法の下で、この論文はモデルに実際のデータを提供することを提案します。一般に、生データが最終的な答えに近づくほど、モデルが実行する必要がある作業が少なくなり、モデルが間違いを犯す可能性が低くなります。以下の例では、システム メッセージが最新の記事を提供し、その後モデルに初期の顧客を何人か提供するように要求し、モデルは正確に答えを返します。

819c288b378a760de15b83cfe2085322.png

さらに、Microsoft はこのガイドで Prompt に関する他のヒントも紹介しています。詳細については、原文を参照してください。

学習アドレス: https://learn.microsoft.com/en-us/azure/cognitive-services/openai/concepts/advanced-prompt-engineering?pivots=programming- language-chat-c​​ompletions#specifying-the-output-struction


さらなる学習 (Wu Enda + Datawhale):
「Wu Enda ChatGPT 最新コース」、中国語版が登場します

「ChatGPT 開発およびアプリケーション ガイド」、Datawhale オープンソース

6e2bc305d19fd0587b70f66a20f1dd62.png

乾物学習、3回分

おすすめ

転載: blog.csdn.net/Datawhale/article/details/130664336