一般ユーザーと開発者のための ChatGPT プロンプト エンジニアリングの究極ガイド

ChatGPT の可能性を最大限に活用する準備はできていますか? 質問に答えたり、興味深いコンテンツを作成したり、パーソナライズされた推奨事項を提供したりするまで、さまざまな方法で役立つ AI ツールがあることを想像してみてください。ここで「プロンプト エンジニアリング」が登場します。プロンプトとガイダンスを注意深く作成することで、ChatGPT の動作を改善する効果的かつ強力な方法です。

この記事では、プロンプト エンジニアリングのエキサイティングな世界を探求し、チャットボットを作成するための基本、ヒント、ベスト プラクティス、および高度な戦略を取り上げます。言語モデルの可能性に興味がある場合は、この記事が ChatGPT を使用して最大限に活用するためのガイドになります。

プロンプト エンジニアリングの秘密を解明し、ChatGPT の使用方法を変える準備はできていますか? はじめましょう!

プロンプトエンジニアリングの基礎知識

ChatGPT についてはもう紹介する必要はないと思いますが、ChatGPT について知らない場合は、以前の関連記事を読んでください。

https://blog.csdn.net/jeansboy/article/details/131689471?spm=1001.2014.3001.5501テクノロジーが進化し続けるにつれて、私たちの働き方も進化しています。プログラマーとして、私たちはしばしば退屈なタスクに直面し、複雑なコードを理解し、困難な問題を解決しなければなりません。ただし、新しいアシスタント ChatGPT が追加されました。ChatGPT は、強力な言語モデルに基づいたチャット ロボットです。これは、コードを記述する際の効率と品質を向上させ、さらには面倒な作業を自動化するのに役立ちます。この記事では、プログラマーとして ChatGPT を活用する方法についての私の経験とヒント、そしてそれが私の仕事にもたらした実際的な利点を共有します。https://blog.csdn.net/jeansboy/article/details/131689471?spm=1001.2014.3001.5501プログラマーとして、コードの作成に ChatGPT を使用するにはどうすればよいですか_Yidan Grocery Store Blog-CSDN Blog 成功したいという願望、そして 1 つ成功を達成するための最も効果的な方法は、できるだけ多くの人の問題、特に誰もが抱えている問題をできるだけ短い時間で解決することです。私たちは身近な優れた製品を観察して、その製品がどのような問題を解決するのかを知ることができます。https://blog.csdn.net/jeansboy/article/details/131707126?spm=1001.2014.3001.5501 ChatGPT を効果的に使用してソフトウェアの第 2 の爆弾の開発を支援する方法 — コードの潜在力を解放するまだ最初の部分があることをご存知ない場合は、最初に前の部分を読むことをお勧めします。私たちは皆、成功することに熱心であり、成功を達成するための最も効果的な方法の 1 つは、できるだけ多くの人の問題を解決することです。特に誰もが抱く疑問をできるだけ早く解決します。私たちは身近な優れた製品を観察して、その製品がどのような問題を解決するのかを知ることができます。最近、OpenAI は GPT-4 モデルをリリースし、AI 機能がより強力かつ多様になりました。この進歩は、特にプログラマー コミュニティの間で幅広い好奇心と懸念を引き起こしました。人々は検索エンジンで「ChatGPT はプログラマーに取って代わるのでしょうか?」と尋ね始め、人気の検索推奨事項になりました。https://blog.csdn.net/jeansboy/article/details/131762514?spm=1001.2014.3001.5501

OpenAI の言語モデル ChatGPT の有用性を最大限に高めるには、プロンプト エンジニアリングが不可欠です。このセクションでは、プロンプト エンジニアリングの定義、ChatGPT との対話におけるプロンプトの役割、プロンプトの選択に影響を与える多くの要素など、プロンプト エンジニアリングの基本概念を紹介します。

プロンプトエンジニアリングとは何ですか?

ChatGPT を通じて必要な関連結果を取得するための対話型プロセスは、プロンプト エンジニアリングと呼ばれます。これには、モデルの動作を制御し、生成される出力の品質と関連性を形成する一連の命令と入力の作成が含まれます。一部のシナリオでは、Prompt はモデルの出力を制御する入力パラメーターであると理解できます。

プロンプト エンジニアリングの重要性は、ChatGPT の機能を向上させ、特定のキャンペーンやターゲットに応じて対応を調整することです。ユーザーは、適切に設計されたプロンプトを提供することで、意図を最大限に解釈し、モデルから正確なコンテキスト情報を取得できます。それは高性能車をコントロールするようなもので、車に慣れると、その車の能力を最大限に引き出すことができます。

ChatGPT との対話にプロンプ​​トが重要なのはなぜですか?

プロンプトは、ユーザーと ChatGPT の間の対話において非常に重要です。これらは、関連する応答を作成するために必要なコンテキストをモデルに提供し、会話の開始点として機能します。ユーザーは、明確かつ正確な指示によって ChatGPT を望ましい結果に導くことができます。

研究によると、プロンプト エンジニアリングは言語モデルのパフォーマンスに大きな影響を与えます。適切に設計されたプロンプトは、有害な出力や偏った出力を防止し、生成される応答の精度を向上させ、モデルの動作をより詳細に制御するのに役立ちます。言語モデルを強化するためのプロンプト エンジニアリングに関する OpenAI の研究がこれを実証しています。

次に、次の 2 つのクエリとそれに対応する ChatGPT 応答を見てみましょう。

プロンプト 1:

プロンプト 2:

2 番目のプロンプトでは、より具体的で意味のある回答が生成されます。

この例は、プロンプト エンジニアリングにおける正確さと明確さの重要性を強調しています。

プロンプトカテゴリとは何ですか?

Prompt は、AI 言語モデルとのシームレスなコミュニケーションのための重要なツールです。

高品質のプロンプトを作成するには、まずプロンプトがどのように分類されているかを理解する必要があります。これにより、特定のターゲットの応答に焦点を合わせて効率的に構造化することができます。

主なプロンプト カテゴリには次のものがあります。

1. 情報検索のプロンプト

これらのプロンプトは、「何を」および「どのように」質問することで情報を収集するように設計されています。これらは、AI モデルから特定の詳細や事実を抽出するのに最適です。例えば:

  • 菜食主義の食事の健康上の利点は何ですか?
  • どうすれば生産性を向上させることができますか?

2. 指示ベースのプロンプト

命令ベースのプロンプトは、AI モデルが特定のタスクを実行するようにガイドするプロンプトです。これらのプロンプトは、Siri、Alexa、Google アシスタントなどの音声アシスタントとの対話方法に似ています。例えば:

  • 来週火曜日の午前10時に歯医者の予約です。
  • 空港への最速ルートを検索します。

3. コンテキスト情報を提供するプロンプト

これらのプロンプトは AI モデルにコンテキスト情報を提供し、ユーザーが期待する応答を AI モデルがよりよく理解できるようにします。コンテキストを提供することで、AI からより正確で関連性の高い回答を得ることができます。例えば:

  • 私はガーデニングについて何も知りません。初心者でも育てやすい植物は何ですか?
  • 彼女のためにロマンチックなディナーを計画したいと思っています。雰囲気を良くするためにいくつかの提案やアイデアを提供してもらえますか?

4. 比較プロンプト

比較プロンプトは、ユーザーが情報に基づいた意思決定を行えるように、さまざまなオプションを評価または比較するために使用されます。これらは、さまざまなオプションの長所と短所を比較検討するときに特に役立ちます。例えば:

  • 賃貸と住宅購入のメリットとデメリットは何ですか?
  • 電気自動車と従来のガソリン車の性能。

5. 視点を求めるよう促す

これらのプロンプトは、AI が特定のトピックについて意見や見解を表現できるように導きます。創造的なアイデアを生み出したり、示唆に富むディスカッションを行ったりするのに役立ちます。例えば:

  • AI は雇用市場にどのような潜在的な影響を与える可能性がありますか?
  • テレポーテーション技術が現実になったら世界はどう変わるでしょうか?

6. リフレクティブプロンプト

内省的なプロンプトは、個人が自分自身、自分の信念、行動についてより深く理解するのに役立ちます。特定のトピックや個人的な経験に基づいて、自己成長と内省を奨励することがよくあります。理想的な回答を得るには、背景情報の提供が必要になる場合があります。例えば:

  • どうすれば自信を持ち、自信喪失を克服できるでしょうか?
  • 健全なワークライフバランスを維持するにはどのような戦略を採用できますか?

プロンプトの選択に影響を与える要因は何ですか?

効果的なプロンプトを作成する場合、ChatGPT 回答の品質、関連性、正確性に影響を与える考慮すべき要素が数多くあります。重要な要素には次のようなものがあります。

  1. モデルの知識: ChatGPT の長所と短所を理解しますChatGPT のような最先端のモデルでも、特定のタスクでサポートが必要な場合や、誤ったデータが生成される場合があります。この理解は、モデルの長所を活かし、欠点を最小限に抑えるキューを作成するのに役立ちます。
  2. ユーザーの意図: 関連する回答を生成するというユーザーの意図を理解することが重要です。プロンプトはユーザーの期待を明確に反映し、ChatGPT が関連性のある正しい情報を提供できるようにする必要があります。
  3. 明確で曖昧さのないものにする: 応答が不十分になる可能性があるあいまいさや不確実性を減らすために、プロンプトが明確で曖昧さのないものであることを確認します。
  4. ドメインの特異性: 高度に専門化されたドメインを扱う場合は、モデルを期待される答えに導くためにドメイン固有の語彙やコンテキストを使用することを検討してください。コンテキストや例を追加すると、モデルがより正確で関連性の高い結果を生成するのに役立ちます。
  5. 制約: 望ましい結果を得るために制約 (回答の長さや形式など) が必要かどうかを決定します。文字制限や構造化フォーマットなどの制約を明示的に指定すると、モデルが特定のニーズを満たす応答を生成できるようになります。

これらの要素を念頭に置いたプロンプト エンジニアリングにより、ChatGPT の有効性が向上し、生成された回答が望ましい目標に厳密に一致することが保証されます。

プロンプト エンジニアリングは、言語モデル (ChatGPT など) の対話性と実用性を強化するために継続的に改善および洗練されている進行中の研究トピックであることは注目に値します。

結論は:

主なヒント:

  1. 問題または目標を特定する: ChatGPT に何を支援してほしいか、および期待する回答の種類を明確に述べます。
    例: ファッション業界の若い専門家を対象としたマーケティング キャンペーンのキャッチーな見出しを作成します。
  2. 関連するキーワードとフレーズを追加する: ChatGPT が目的の出力を生成できるように、最も関連性の高い業界固有の用語やトピック関連の用語をプロンプトに含めます。
    例: 快適さ、耐久性、パフォーマンスに焦点を当てた、スニーカーの説得力のあるマーケティング コピーを作成します。フィットネス愛好家やアスリート向け。「パフォーマンス」、「快適性」、「耐久性」、「アスリート」などのキーワードを含めます。
  3. 作成のヒント: 前の手順で特定したキーワードとフレーズを使用して、必要な情報とタスクを効果的に伝える簡潔なプロンプトを作成します。
    例: 「『自然』、『栄養補給』、『環境に優しい』、『滑らかな肌』などの成分を強調し、新しいオーガニック スキンケア シリーズの利点を強調する魅力的なソーシャル メディア投稿を作成します。」
  4. テスト、評価、反復: ChatGPT を使用して回答を生成し、結果を評価し、必要に応じてプロンプトを変更して、目的の出力を取得します。期待される応答を一貫して生成するプロンプトが正常に作成されるまで、このプロセスを繰り返します。

適切なプロンプトの要素:

優れた出力は主にトレーニング データ、モデル パラメーター、効果的なプロンプトに依存します。ユーザーに影響を与える要素の 1 つ、つまりプロンプトにのみ影響を与えることができます。優れたプロンプトを構成する要素は次のとおりです。

  1. 曖昧さのない、明確かつ簡潔な言葉。
  2. ChatGPT に割り当てられた役割、プロンプトで果たす役割。
  3. あなたが提供する情報と例はあなたの入力です。(ChatGPTは過去のチャット履歴の情報や例を参照できます)
  4. ChatGPT に完了を要求する特定のタスク、つまり期待する出力。
  5. 最初の応答を受け取った後、必要に応じて調整します。つまり、目的の出力が得られるまで繰り返します。

迅速なエンジニアリングのヒント

この章では、プロンプト エンジニアリングを最適化し、ChatGPT との対話を最大化するために使用できるいくつかのプロンプト テクニックを検討します。これらのヒントを詳しく見て、その重要性を理解しましょう。

明確な指示

明確で明確な指示は、効果的な迅速なエンジニアリングの基礎です。明確なガイダンスを提供することで、ユーザーは ChatGPT 回答の品質を向上させることができます。OpenAI の調査では、明確に定義されたプロンプトが言語モデルのパフォーマンスに大きな影響を与えることが示されています。

プロンプト 1:

シンプルプロンプト

プロンプト 2:

具体的かつ明確なプロンプト

明確な制約を使用する

プロンプトに明確な制限を追加すると、ChatGPT の思考プロセスをガイドし、より正確で根拠のある回答を保証できます。制約は、モデルの動作を形成し、生成される出力の関連性を向上させる追加の指示として機能します。

たとえば、段階的なガイダンスを求める場合、「詳細な連続プロセスを提供してください」などの制約を追加すると、ChatGPT が一貫したわかりやすいガイダンスを生成するのに役立ちます。OpenAI の調査によると、明確なルールを使用すると、より制御可能で期待される出力が得られることがわかりました。

さまざまなコンテキストや例を試してみる

プロンプトエンジニアリングではコンテキストが重要な役割を果たします。プロンプトで関連するコンテキストと例を提供することで、ユーザーは ChatGPT の理解を強化し、より正確でコンテキストに応じた回答を生成するように導くことができます。

たとえば、関連するコンテキストをプロンプトに組み込むと、ChatGPT が特定のトピックに関する情報を求めるときに、より洞察に富んだ回答を提供できるようになります。

プロンプト 1:

コンテキストのないプロンプト

プロンプト 2:

コンテキストを含むプロンプト

コンテキストが入力されたプロンプトにより、ChatGPT は対象となる特定のドメインと一致する回答を生成できます。

システム 1 とシステム 2 の使用に関する問題

システム 1 とシステム 2 の質問は、プロンプト エンジニアリングに対するバランスの取れたアプローチを提供します。システム 1 の質問は迅速で直感的な回答を引き出しますが、システム 2 の質問は思慮深く詳細な回答を必要とします。これら 2 種類の質問を組み合わせると、ChatGPT との対話に多様性と深みが加わります。

したがって、プロンプト エンジニアリングでシステム 1 とシステム 2 の質問を使用することは、ChatGPT が与える回答の種類に影響を与える方法です。

ユーザーは、プロンプトにシステム 1 とシステム 2 の質問を含めることで、ニーズを満たす回答を生成するように ChatGPT に指示できます。この概念を説明するために、次の例を考えてみましょう。

例: 旅行アドバイス AI アシスタント

プロンプト: 「旅行推奨アシスタントとしてのあなたの目標は、パーソナライズされた情報に基づいた旅行推奨をユーザーに提供することです。システム 1 とシステム 2 の質問を使用して関連する回答を生成します。システム 1 の質問は簡単な推奨事項に重点を置く必要があり、システム 2 の質問はその理由推奨事項を検討する必要があります。

システム1の質問「パリで人気の観光スポットは何ですか?」

システム 2 の質問「エッフェル塔の歴史的重要性とその建築上の特徴を説明できますか?」

この例では、システム 1 の問題により、ChatGPT がパリの主要な観光スポットに関する推奨事項を迅速に提供するようになりました。短期旅行の旅程のアドバイスを求めているユーザーは、簡潔でわかりやすい情報から恩恵を受けるでしょう。答えには、ルーブル美術館、ノートルダム大聖堂、シャンゼリゼなどの観光スポットが含まれる場合があります。

一方、システム 2 の質問は、ChatGPT がエッフェル塔などの特定の場所の歴史的重要性と建築的側面を調査することを奨励しました。このような回答は、魅力をより深く理解し洞察を得たいユーザーにとって非常に役立ちます。答えには、1889 年の万国博覧会のために塔が建設された歴史的背景、ギュスターヴ エッフェルのデザイン、有名な鉄格子などが含まれるかもしれません。

システム 1 とシステム 2 の質問を含めることで、ユーザーは迅速な推奨事項とより詳細な説明を得ることができます。これにより、旅行アドバイス アシスタントがさまざまなユーザーの好みに適応し、実用的なアドバイスを提供できると同時に、観光スポットの歴史や建築上の特徴に興味のあるユーザーの好奇心を満たすことができます。

制御出力長

ChatGPT 応答の長さを制御することは、高速プロンプト エンジニアリングの重要な要素です。これにより、ユーザーは生成される出力の冗長性と長さを制御できます。出力の長さを管理する方法を確認するには、次の例を検討してください。

プロンプト 1:

ショート出力

プロンプト 2:

詳細な出力

この回答では、ChatGPT は強力な冗長性を示し、詳細なステップバイステップのレシピを提供します。ユーザーがベーキングプロセスを進めるのに役立つ追加の説明と提案が含まれています。この深さは、詳細な指導が必要な人、特にパン初心者やより総合的なアプローチを好む人に適しています。

このように、ChatGPT は多様なユーザーの好みに適応し、回答の冗長性を調整することで会話エクスペリエンスを最適化し、チャットボットがユーザーのニーズに適切な回答を提供し、ユーザーとのつながりを強化できるようにします。

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

プロンプト エンジニアリングは、最良の結果を得るために十分な思考と実験を必要とする動的なプロセスです。このセクションでは、ユーザーが ChatGPT との対話を最大限に活用できるようにするための Prompt Engineering のベスト プラクティスを見ていきます。これらの実践を見て、どれだけ効果があるかを見てみましょう。

継続的なテストと改善

効果的な即時エンジニアリングは、継続的なテストと改善に大きく依存しています。ユーザーは定期的に出力を確認し、それに応じてプロンプトを調整することで、指示を継続的に改善し、ChatGPT 回答の品質を向上させることができます。

反復 1:

反復 2:

中国語のプロンプトはまだ試行中ですが、英語のプロンプトは書式設定されたリマインダーを直接生成できます。

反復 3:

意図と創造性のバランス

プロンプトエンジニアリングでは、ユーザーの意図とモデル自体の創造性のバランスをとることも重要です。以下のライティング インスピレーション チャットボットをご覧ください。このチャットボットは、適切なプロンプトを提供しながら創造性を促進するよう努めています。

ChatGPT は、ユーザーの意図の一致とモデルの創造性の向上のバランスをとることで適切なプロンプトを提供し、ユーザーの執筆目標との一貫性を維持しながら想像力を促進します。

外部リソースとAPIを統合する

外部リソースと API の活用は、ChatGPT が追加情報を活用して応答機能を強化できるようにするプロンプト エンジニアリングの強力な手法です。例を通して外部リソースと API の使用方法を理解しましょう。

例: 気象情報アシスタント

プロンプト: 「気象情報チャットボットとして、外部リソースと API を活用して、正確で最新の気象データをユーザーに提供します。」

ユーザーの質問: 「今日の上海の天気はどうですか?」

このチャットボットは、外部の天気 API (Weather.com など) と統合して、正確な天気情報を提供できます。API を呼び出すことで、チャットボットは指定された場所のリアルタイムの気象データを取得できます。

API統合

import requests

def get_weather(city):
    api_key = "YOUR_API_KEY"
    url = f"https://api.weatherapi.com/v1/current.json?key={api_key}&q={city}"
    response = requests.get(url)
    data = response.json()
    return data["current"]["condition"]["text"], data["current"]["temp_c"]

上記の get_weather() 関数は、特定の都市の気象条件と気温を摂氏で返す WeatherAPI との統合例を示しています。

回答テンプレート:

city = "Shanghai"
weather_condition, temperature = get_weather(city)
response = f"The weather in {city} today is {weather_condition}. The temperature is {temperature}°C."

回答結果:

「今日の上海の天気は曇りです。気温は22℃です。」

外部リソースと API を活用することで、チャットボットは正確な気象情報を取得し、応答に組み込むことができます。これにより、ユーザーは指定した場所に適したリアルタイムの天気情報を更新できます。

外部リソースおよび API との統合により、ChatGPT はトレーニング データを超える膨大な量の情報を取得し、ユーザーのクエリに対してより価値のある信頼できる回答を提供できるようになります。

OpenAI API の例

OpenAI API を使用すると、開発者は ChatGPT をアプリケーション、製品、またはサービスに統合できます。OpenAI API の使用方法を示す例は次のとおりです。

import openai

# Set up your OpenAI API credentials
openai.api_key = 'YOUR_API_KEY'

# Define a function for interacting with ChatGPT
def ask_chatbot(question, chat_history=None):
    if chat_history is None:
        chat_history = []

    # Format the input for the API call
    input_text = '\n'.join(chat_history + [f'User: {question}'])

    # Call the OpenAI API to generate a response
    response = openai.Completion.create(
        engine='text-davinci-003',
        prompt=input_text,
        max_tokens=50,
        temperature=0.7,
        n=1,
        stop=None,
        temperature=0.7
    )

    # Extract the generated response from the API response
    answer = response.choices[0].text.strip()

    # Append the user's question and the chatbot's answer to the chat history
    chat_history.append(f'User: {question}')
    chat_history.append(f'Chatbot: {answer}')

    return answer

# Example usage
chat_history = []
user_question = "What is the capital of France?"
response = ask_chatbot(user_question, chat_history)
print(response)

この例では、ユーザーの質問とオプションのチャット履歴を入力として受け取る ask_chatbot() 関数を定義します。この関数はチャット履歴とユーザーの質問をフォーマットし、openai.Completion.create() メソッドを使用して OpenAI API への API 呼び出しを開始します。

API からの応答には、ChatGPT から生成された回答が含まれています。回答から回答を抽出し、ユーザーの質問とチャットボットの回答をチャット履歴に追加します。最後に、生成された回答が返されます。

ChatGPT OpenAI API を使用すると、開発者は ChatGPT の機能をアプリケーションに統合できるため、ユーザーはチャットボットと対話し、クエリに基づいて回答を受け取ることができます。

偏見を避け、倫理原則の範囲内で使用してください。

ChatGPT は倫理的に、偏見なく使用する必要があります。以下に重要な例を示します。

例: AI を活用した候補者スクリーニング

ChatGPT を使用して面接の回答を分析し、求職者を選別できる AI システムがあると想像してください。審査プロセスは倫理的であり、偏見があってはならない。

次の手順により、偏見を軽減し、公平性を確保できます。

  1. トレーニング データの多様性: さまざまな人種、性別、民族のデータを使用して ChatGPT を最適化します。トレーニング データのバイアスはバイアスにつながる可能性があるため、最初からそれに対処することが重要です。
  2. バイアス評価: モデルの応答を定期的に評価して、バイアスを手動で特定して軽減します。「バランスと機会均等」を使用して、モデルの推奨事項が性別や人種などの要素のバランスをとる効果があるかどうかを確認します。バイアスを減らすために調整を行います。
  3. 透明性の高いガイドライン: システムのガイドラインを人間のレビュー担当者や開発者に伝えます。これらのガイドラインでは、公平性、倫理、偏見の回避を強調する必要があります。スクリーニングプロセス中に特定のグループを優遇したり差別したりしないように明確な指示を提供します。
  4. 人間による介入のレビュー: システムの応答を人間に分析させます。このステップは、モデルのバイアスを明らかにし、人間がコンテキストを考慮して公正な決定を下せるようにするのに役立ちます。
  5. 継続的な監視とフィードバック: システムのパフォーマンスを継続的に監視し、ユーザーやレビュー担当者からのフィードバックを収集します。システム出力にバイアスや意図しない影響がないか確認してください。フィードバック ループは問題を迅速に解決するのに役立ちます。
  6. 多様なレビュー担当者チーム: システム出力のレビューと最適化を担当するチーム メンバーが多様な背景を持っていることを確認します。多様なチームは、同質的なグループが見逃してしまう可能性のあるバイアスを発見し、対処することができます。

これらのプラクティスは、AI 支援の候補者スクリーニング システムがバイアスを回避し、スキルと資格に基づいて候補者を評価するのに役立ちます。

高度な即時エンジニアリング戦略

Prompt Engineering はさらに一歩進んで、ChatGPT のパフォーマンスと適応性をさらに最適化するための革新的な戦略を組み込むことができます。このセクションでは、温度とトークンの制御、複数ラウンドのダイアログのプロンプト リンク、特定のドメイン アプリケーションのプロンプト変更、混乱を招くまたは矛盾するユーザー入力の処理など、高度なプロンプト エンジニアリング戦略をいくつか紹介します。

温度とトークンの管理

温度とトークンの制御は、ChatGPT の動作を調整する効果的な方法です。ユーザーは、温度コントロールを通じて、生成される出力のランダム性を変更できます。0.2 などの低い温度では、より焦点が絞られた決定的な答えが生成され、1.0 などの高い温度では、より多様で探索的な結果が生成されます。この値は、制御モデルの創造性と合理性も表します。

OpenAI の調査により、ChatGPT の回答の多様性に対する温度制御の影響が明らかになりました。さまざまな温度設定を試すことで、ユーザーは、わかりやすい回答を提供することと、生成された回答に新しい機能を組み込むこととの間の理想的なバランスを達成できます。

プロンプト 1:

プロンプト 2 :

もっと詩的ですか?

トークン制御では、応答の長さを制限するためにトークンの最大数を指定する必要があります。これにより、ユーザーは ChatGPT 出力の冗長性を制御し、簡潔で簡潔な回答を得ることができます。適切なトークン制限を設定することで、ユーザーは ChatGPT が予想される回答の長さに対応する回答を提供することを保証できます。

プロンプトチェーンと複数ラウンドのダイアログ

プロンプト チェーンと複数ラウンドのダイアログにより、よりインタラクティブで動的な ChatGPT 通信が可能になります。ユーザーは複数のプロンプトをリンクして、継続的な会話フローを形成できます。各プロンプトは以前の入力または以前の ChatGPT 回答を参照できるため、コンテキストに富んだ会話が可能になります。

プロンプト チェーンを使用すると、ユーザーはより会話的なエクスペリエンスを作成し、ChatGPT と繰り返し対話することができます。この手法は、複数のステップからなる指示や詳細な議論が必要なタスクに適しています。

ドメイン固有のアプリケーションのプロンプトを調整する

ドメイン固有のアプリケーション向けにプロンプ​​トをチューニングすることは、プロンプト エンジニアリングにおける重要なアプローチです。これには、回答が関連性があり正確であることを確認するために、プロンプトを特定の業界または分野に合わせて調整することが含まれます。例を使用して、ドメイン固有のアプリケーションのプロンプトを調整する方法を説明します。

例:医療診断AIアシスタント

プロンプト: 「ユーザーが症状を評価し、最初のアドバイスを提供できるようにする医療診断 AI アシスタントのプロンプトを設計します。」

医療診断 AI アシスタントのプロンプトを調整するには、関連する医学用語、症状、診断上の考慮事項を追加する必要があります。

プロンプト: 「症状と病歴について説明してください。AI アシスタントが、提供された情報に基づいて初期評価を提供します。この評価は専門的な医学的アドバイスに代わるものではないことに注意してください。医療上の緊急事態が発生している場合は、すぐに救急サービスに連絡してください。」

ユーザー: 「頭痛、熱、喉の痛みがあります。」

調整されたプロンプトでは、ユーザーの症状が考慮され、評価の限界がユーザーに通知されます。AI アシスタントによって生成された回答は、提供された情報に基づいて最初の推奨事項を提供できます。

回答: 「頭痛、発熱、喉の痛みの症状によっては、インフルエンザなどの一般的なウイルス感染症、または喉頭炎の可能性があります。正確な診断のためには、医療専門家に相談することが重要です」 「適切な治療を受けてください。その間は、休息し、水分を補給し、症状を緩和するために市販の鎮痛剤を服用してください。症状が悪化したり持続する場合は、さらなる検査のために医師の診察を受けてください。」

Prompt を医療診断 AI アシスタントとして採用することで、回答は特定分野のアプリケーションと一致し、専門的な医療アドバイスの重要性を強調しながら予備的な提案を提供します。

矛盾するユーザー入力を難読化または解決する

プロンプト エンジニアリングでは、曖昧な概念や矛盾したユーザー入力に対処する必要がありました。ChatGPT は、そのような入力を慎重に処理し、有意義に応答する必要があります。以下の方法を説明する例を見てみましょう。

例: レストランのおすすめチャットボット

プロンプト: 「レストランのおすすめチャットボットとして、曖昧または矛盾したユーザー入力を処理して、正確で役立つ回答を保証します。」

ユーザー: 「ベジタリアン料理とステーキのオプションがある町のレストランを探しています。」

この場合、ユーザーはステーキとベジタリアンのオプションを希望します。チャットボットは次のことを明確にします。

答え: 「はい! レストラン探しを喜んでお手伝いさせていただきます。ベジタリアン中心のレストランをご希望ですか、それともステーキなどさまざまなメニューをご希望ですか?」

チャットボットは、ユーザーのリクエストをよりよく理解し、より正確な推奨事項を提供するために説明を要求します。

ユーザー: 「ベジタリアン料理とステーキ料理があるレストランが好きです。」

ユーザーが好みを指定すると、チャットボットは次のように応答できます。

回答: 「素晴らしいです。ベジタリアン料理と牛肉料理を提供するレストラン『ザ グリル ハウス』をお勧めします。豊富なメニューで美味しいベジタリアン料理と牛肉料理を提供しています。お楽しみください。」

ユーザーと積極的に関わり、説明を求めることで、チャットボットは最初のクエリのあいまいさを処理し、ユーザーの希望を理解し、要件に合ったレストランを推奨します。

競合するユーザー入力の処理も同様です。チャットボットはユーザーの目的を明確にし、安くて豪華なレストランを希望するときにユーザーをガイドします。

例: 現実世界での迅速なエンジニアリング

実際のアプリケーションでは、プロンプト エンジニアリングは肯定的な結果をもたらしました。さまざまな分野でのプロンプト エンジニアリングの事例をいくつか見てみましょう。

カスタマーサポートチャットボット

カスタマー サポート チャットボットは、顧客サービスと応答性を向上させます。プロンプト エンジニアリングにより、チャットボットの精度と効率が向上し、顧客エクスペリエンスが向上します。

プロンプト エンジニアリングは、チャットボットが顧客の入力を学習して応答できるようにすることで、対話をより個人的で効果的なものにします。

ケース: HubSpot Chatbot Builder。会議をスケジュールし、KB にリンクし、作業指示システムと統合できます。

コンテンツの作成と編集

コンテンツの作成と編集にも迅速なエンジニアリングが必要です。ChatGPT は、ユーザーが優れたブログ投稿、電子メール、創造的な作品を書くのに役立ちます。

具体的かつ詳細なプロンプトを提供することで、ユーザーは ChatGPT が自分のスタイル、口調、目標に合ったテキストを作成できるように支援できます。ヒントでは、生成されたコンテンツが要件を満たしていることを確認するための背景情報、例、または明確な制約を提供できます。

OpenAI は、コンテンツの一貫性と関連性を向上させるためにプロンプ​​ト エンジニアリングに関する研究を実施しました。これにより、ユーザーはさまざまなプロンプトを試し、編集時間を節約することで、より魅力的でトピックに関連したテキストを生成できるようになります。

ドメイン固有の知識の検索

Prompt Engineering は、ドメイン固有の知識を効率的に取得できます。ChatGPT は、大量のドメイン固有のデータでトレーニングして、正確で関連性のあるトピック情報を提供できます。

ユーザーは、プロンプトをカスタマイズし、キーワードやコンテキストを追加することで、ChatGPT をガイドして特定の分野の知識を取得できます。医療、法律、金融、テクノロジーなどの業界では、正確な情報が非常に重要です。

プロンプト エンジニアリング戦略により、ドメイン固有の知識の検索が容易になり、ユーザーに正確で最新の情報が提供されます。

インタラクティブなストーリーテリングとゲーム

プロンプト エンジニアリングにより、インタラクティブなストーリーテリングとゲームがさらに楽しくなります。ChatGPT はユーザー入力に応答し、ストーリーを前進させます。

以前、ゲーム業界におけるChatGPTの応用に関する記事を投稿しました: ナラティブ機能と対話性の強化_Yitang Grocery Storeのブログ - CSDN Blog ChatGPTとは「Conversational Generation Pre-training Converter」の略称で、OpenAIによって開発された強力な言語モデルです。これは、テキストなどの連続データを処理できるニューラル ネットワークであるトランスフォーマー アーキテクチャに基づいています。基本的に、ChatGPT は与えられた入力に基づいて人間のようなテキストを生成できるため、ゲームを含む多くのアプリケーションにとって価値のあるツールになります。ゲーム業界では、ChatGPT はストーリーテリングとインタラクションを強化するために使用されています。たとえば、NPC (ノンプレイヤー キャラクター) の動的な対話オプションを生成したり、リアルな NPC インタラクションを作成したり、非線形分岐ストーリーの開発にも使用できます。https://blog.csdn.net/jeansboy/article/details/131754661?spm=1001.2014.3001.5501

ユーザーはプロンプトを使用して、ストーリー要素、ユーザーの選択、またはゲームの仕組みを導入して、没入型のストーリーやゲームを構築できます。プロンプト チェーンとマルチターン ダイアログにより、豊かな物語とゲームのインタラクションが可能になります。

ケーススタディ: OpenAI の AI Dungeon は、 Prompt Engineering がインタラクティブなストーリーテリングとゲームをどのように変革できるかを示しています。AI Dungeon を使用すると、ユーザーはプロンプトを通じて動的な物語に共同参加できます。

ChatGPT プロンプト エンジニアリングが開発者にとって意味するもの

Deep Learning AI は最近、Isa Fulford と Andrew Ng (Ng Enda) が教える「開発者のための ChatGPT プロンプト エンジニアリング」というコースを開始しました。

ショートコースicon-default.png?t=N6B9https://www.deeplearning.ai/short-courses/?ContinueFlag=40c2724537472cbb3553ce1582e0db80

このコースでは、開発者ツールとしての大規模言語モデル (LLM) の可能性を強調し、LLM への API 呼び出しを活用して、まだ十分に注目されていない迅速なソフトウェア アプリケーション開発を実現します。彼らの目標は、LLM を効果的に使用するための可能性とベスト プラクティスを共有することです。このコースでは、ソフトウェア開発の迅速なベスト プラクティスだけでなく、要約、推論、変換、拡張などの日常的な使用例も取り上げ、LLM を使用してチャットボットを構築する方法を示します。

コースでは主に OpenAI の ChatGPT モデル、特に GPT 3.5 Turbo が使用され、デモには Python (特に Jupyter Notebook) が使用されます。

学んだ教訓は次のとおりです。

2 つの原則:

原則 1: 明確で明確な指示を書く

明確で曖昧さのない指示を表現することは、モデルを効果的に導き、無関係または不正確な応答の可能性を減らすために重要です。一般に、長いプロンプトの方がより明確でコンテキストが提供され、詳細で関連性の高い出力が得られるため、明確なプロンプトと短いプロンプトを混同しないようにしてください。

  • 戦略 1:区切り記号を使用して、三重引用符 (''')、3 つのバッククォート ('*')、3 つのダッシュ (' — -')、山かっこ (‹ ›)、XML タグなどの入力のさまざまな部分を示します。 («タグ› «/タグ›)。区切り文字は、一貫性のないユーザー指示がモデルを誤解させる可能性があるプロンプト インジェクションを防ぐのにも役立ちます。
text = f"""
You should express what you want a model to do by \ 
providing instructions that are as clear and \ 
specific as you can possibly make them. \ 
This will guide the model towards the desired output, \ 
and reduce the chances of receiving irrelevant \ 
or incorrect responses. Don't confuse writing a \ 
clear prompt with writing a short prompt. \ 
In many cases, longer prompts provide more clarity \ 
and context for the model, which can lead to \ 
more detailed and relevant outputs.
"""

prompt = f"""
Summarize the text delimited by triple backticks \ 
into a single sentence.
```{text}```
"""
  • 戦略 2:モデルの回答を解析しやすくするために、HTML 形式や JSON 形式などの構造化された出力をリクエストします。これにより、モデルの回答の処理と情報の抽出が容易になります。
prompt = f"""
Generate a list of three made-up book titles along \ with their authors and genres.
Provide them in JSON format with the following keys: book_id, title, author, genre.
"""
response = get completion (prompt)
print (response)

  • 戦略 3:タスクの前提条件が満たされていることを確認します。まず、プロンプト モデルはこれらの前提条件をチェックし、タスクを完全に完了しようとすることなく、満たされていない条件を指摘します。潜在的なエッジケースを考慮し、モデルがそれらを適切に処理できることを確認し、予期しないエラーや結果を回避します。これにより、モデルの信頼性と堅牢性が向上します。

  • 戦略 4:モデルに必要なタスクの実行を依頼する前に、数回のヒントを活用して、成功したタスクの例を提供します。例を使用して、同様のタスクの処理方法をモデルに知らせ、必要なガイダンスを提供します。これにより、モデルの学習と適応性が加速され、ユーザーの意図を理解し、正確な応答を生成することが容易になります。
prompt = f"""
Your task is to answer in a consistent style.

<child>: Teach me about patience.

<grandparent>: The river that carves the deepest \ valley flows from a modest spring; the \ grandest symphony originates from a single note; \ the most intricate tapestry begins with a solitary thread.

<child>: Teach me about resilience.
"""
response = get completion (prompt)
print (response)

原則 2: モデルに考えるのに十分な時間を与える

推論エラーや時期尚早の結論を防ぐために、モデルが問題について考え推論するのに十分な時間を確保します。複雑なタスクでは、モデルが最終的な答えを提供する前に、段階的なガイダンスまたは一連の関連する推論ステップが必要になる場合があります。

  • 戦略 1:特に直接答えることが難しい場合は、タスクを完了するための手順を明確にしてください。人間が問題を解決するのと同じように、モデルは最終的な解決策を提供する前に、一連の適切な推論ステップを経る必要があります。これにより、モデルが答えを生成する前に十分に考えて推論できるようになり、応答の精度と妥当性が向上します。
prompt 2 = f"""
Your task is to perform the following actions:
1 - Summarize the following text delimited by <> with 1 sentence.
2 - Translate the summary into French.
3 - List each name in the French summary.
4 - Output a json object that contains the following keys: french_ summary, num names.

Use the following format:
Text: <text to summarize>
Summary: <summary>
Translation: <summary translation>
Names: <list of names in Italian summary>
Output JSON: <ison with summary and num names>

Text: <{text!>
response = get_completion (prompt_2)
print "InCompletion for prompt 2:")
print (response)

  • 戦略 2:結論に達する前に解決策を見つけるようにモデルに指示します。答えを提供する前に推論して考えるようにモデルに明示的に指示すると、多くの場合、より良い結果が得られます。このアプローチにより、モデルが処理して正確な応答を導き出すのに十分な時間を確保できます。

これらの原則と戦略に従うことで、開発者は LLM の使用を最適化し、ソフトウェア開発で望ましい結果を達成できます。これにより、モデルのパフォーマンスと柔軟性が向上し、ユーザーのニーズをより適切に満たすことができます。

反復的なプロンプト開発:

反復的なプロンプト開発のプロセスは、プログラミングの練習に似ています。それには、さまざまなアプローチを試し、必要に応じて改善し、再試行することが含まれます。必要な手順は次のとおりです。

  1. 解決策を試してください。
  2. 結果を分析して、期待される結果との矛盾を特定します。
  3. 指示を明確にし、熟考する時間を増やします。
  4. サンプルのバッチを使用してプロンプトを調整します。
  5. このプロセスを繰り返します。

コースの例では、インストラクターが製品仕様からマーケティング コピーを作成するケース スタディを紹介しました。彼らは、各ステップでのプロンプトを最適化することで、3 つの重要な問題を繰り返し解決しました。

問題 1: テキストが長すぎます -> 解決策: テキストを最大 50 単語に制限します。

問題 2: 無関係な詳細に焦点を当てる -> 解決策: 「この説明は家具小売業者に適用されます…」など、ターゲット ユーザーを追加します。

問題 3: サイズ表がありません -> 解決策: すべてを HTML にフォーマットします。

能力:

読書の要約:

大規模な言語モデルは、テキストの要約に広く使用されています。特定のプロンプトを入力して、価格と価値の概要をリクエストできます。

prompt = f"""
Your task is to generate a short summary of a product \
review from an ecommerce site to give feedback to the \
pricing deparmtment, responsible for determining the \
price of the product.  

Summarize the review below, delimited by triple 
backticks, in at most 30 words, and focusing on any aspects \
that are relevant to the price and perceived value. 

Review: ```{prod_review}```
"""

また、複数のテキストを要約するループを作成することもできます。

reviews = [review_1, review_2, review_3, review_4]

for i in range(len(reviews)):
    prompt = f"""
    Your task is to generate a short summary of a product \ 
    review from an ecommerce site. 

    Summarize the review below, delimited by triple \
    backticks in at most 20 words. 

    Review: ```{reviews[i]}```
    """

    response = get_completion(prompt)
    print(i, response, "\n")

推論:

大規模な言語モデルは、特別なトレーニングなしでさまざまな側面を推論できます。センチメントやセンチメントを判断したり、製品名や会社名を抽出したり、テーマを見つけたりすることができます。

変換:

大規模な言語モデルは、言語翻訳、スペルと文法チェック、トーン調整、形式変換などのテキスト変換タスクに優れています。

prompt = f"""
Translate the following text to French and Spanish and English pirate: \
```I want to order a basketball```
"""

response = get completion (prompt)
print response

拡張機能:

大規模な言語モデルを使用すると、各顧客のレビューに合わせてカスタマイズされたカスタマー サービス メールを生成できます。

prompt = f"""
You are a customer service AI assistant.
Your task is to send an email reply to a valued customer.
Given the customer email delimited by ```,\
Generate a reply to thank the customer for their review.
If the sentiment is positive or neutral, thank them for \
their review.
If the sentiment is negative, apologize and suggest that \
they can reach out to customer service.
Make sure to use specific details from the review.
Write in a concise and professional tone.
Sign the email as `AI customer agent`.
Customer review: ```{review}```
Review sentiment: (sentiment}
"""

response = get completion (prompt, temperature=0.7)
print(response)

チャットボットを開発します。

大規模な言語モデルを活用することの魅力的な側面の 1 つは、カスタム チャットボットを簡単に作成できることです。ChatGPT の Web インターフェイスは、強力な言語モデルによってサポートされる会話プラットフォームを提供します。しかし、本当にエキサイティングなのは、大規模な言語モデルの力を活用して、レストランの AI カスタマー サービス エージェントや AI 注文ボットなどの独自のチャットボットを構築できることです。

ここでは、このチャットボットを「OrderBot」と呼びます。目標は、ユーザーのプロンプトとアシスタントの応答を自動的に収集して、この効率的な「OrderBot」を構築することです。主なステップは、ユーティリティ関数を定義することです。この機能はユーザー メッセージの収集に役立ち、手動入力の必要がなくなります。ユーザー インターフェイスから収集されたプロンプトは、「コンテキスト」と呼ばれるリストに追加されます。その後、インタラクションごとに、このコンテキストを使用してモデルが呼び出されます。

モデルの応答がコンテキストに追加されるため、モデルとユーザーのメッセージの両方が確実に保持され、コンテキストの成長に役立ちます。この情報の蓄積により、モデルは適切なアクションを決定できるようになります。

最後に、OrderBot を表示するためのユーザー インターフェイスを設定して実行します。コンテキストにはシステム メッセージとメニューが含まれており、言語モデルとのすべての対話にわたって一貫しています。対話が増えるにつれてコンテキストは進化し続け、会話の包括的な記録が維持されます。

要約する

Prompt Engineering は ChatGPT のゲームチェンジャーです。このテクニックをマスターすると、特定のニーズを満たすように言語モデルの応答を形成し、操作することができます。

継続的な研究とコラボレーションがこの分野のイノベーションを推進することで、プロンプト エンジニアリングの未来は明るいと思われます。言語モデルが進化し続けるにつれて、プロンプト エンジニアリングはその可能性を最大限に引き出す上で重要な役割を果たすことになります。

ChatGPT のプロンプト エンジニアリングは無限の可能性を開きます。効果的な手法を実装し、高度な戦略を模索することで、言語モデルとの対話方法を変えることができます。Prompt Engineering は、顧客サービスのチャットボット、コンテンツ開発、ゲームを変革し、AI と人間のコラボレーションを促進します。

よくある質問

プロンプトエンジニアリングとは何ですか?

プロンプト エンジニアリングは、ChatGPT などの言語モデルにユーザーの意図を伝えるための効果的なプロンプトと指示を設計するプロセスです。これは、モデルから正確で関連性のある有用な応答を取得するのに役立ちます。

ChatGPT にとってプロンプト エンジニアリングが重要なのはなぜですか?

ChatGPT の効果を最大化するには、迅速なエンジニアリングが不可欠です。慎重に作成されたプロンプトを設計することで、ユーザーはモデルがより正確で関連性の高い出力を生成するようにガイドでき、さまざまなアプリケーションにとって価値のあるツールになります。

プロンプトエンジニアリングに関する優れたヒントは何ですか?

適切なプロンプト エンジニアリングのヒントは次のとおりです。

  • 明確かつ具体的な指示を提供する
  • 明示的な制約を使用する
  • コンテキストと例を使用してみる
  • システム 1 とシステム 2 の問題を利用する
  • 出力の冗長性を制御します

より良い結果を得るためにプロンプ​​トを改善するにはどうすればよいですか?

プロンプトを改善するには、次のことができます。

  • 反復的なテストと調整を行う
  • ユーザーの意図とモックアップの創造性のバランスを取る
  • 外部リソースと API を使用して ChatGPT の機能を強化する
  • プロンプトと出力にバイアスがかからないように注意してください

より良いプロンプトを作成するのに役立つChatGPT プロンプト チート シートもあります。

高度なプロンプト エンジニアリング戦略にはどのようなものがありますか?

高度なプロンプト エンジニアリング戦略には次のものが含まれます。

  • 温度とトークンの設定を制御することで、ランダム性と応答の長さを調整します
  • プロンプトチェーンを通じて複数ラウンドのダイアログを作成する
  • プロンプトをドメイン固有のアプリケーションに合わせて調整する
  • 曖昧または一貫性のないユーザー入力を処理する

追記

読んでいただきありがとうございます。この記事は非常に長いです。これを読んでいただけるということは、プロンプト エンジニアリングの重要性を認識しており、そのスキルを習得したいと考えていることを意味します。私には才能がなく、まだ勉強中です。開発担当者としては、イテレーション、チェーン(Chain)、パラメーターの制御などのエンジニアリング手法を理解し、習得する方が簡単かもしれません。ここの記事のほとんどは次の記事から翻訳されたものです

開発者向け究極の ChatGPT プロンプト エンジニアリング ガイド

元の記事の著者にとても感謝しています。そこから多くのことを学びました。また、この記事のいくつかの例を完成させるために、元の記事の多くの即時テクニックも使用しました。Prompt Engineering と Prompt に関するヒントを交換したい場合は、お気軽にご連絡ください。

おすすめ

転載: blog.csdn.net/jeansboy/article/details/131797658