スタブ OpenAI のプロンプト エンジニアリング ガイド: 高度なアプリケーションのための ChatGPT のマスター - Unite.AI
私達と接続

プロンプトエンジニアリング

OpenAI のプロンプト エンジニアリング ガイド: 高度なアプリケーションのための ChatGPT の習得

mm

公開済み

 on

プロンプトエンジニアリング

プロンプトエンジニアリングを理解する

迅速なエンジニアリング ChatGPT のような AI モデルから目的の出力を得るために入力 (プロンプト) を作成する技術と科学です。これは、これらのモデルの効果を最大化するために重要なスキルです。

OpenAI の GPT-3 および GPT-4 アーキテクチャに基づいて構築された ChatGPT は大幅に進歩し、応答性とコンテキスト認識性が向上しました。その進化を理解することが、プロンプトエンジニアリングを習得する鍵となります。

オーケストラを率いる熟練した指揮者のように、迅速なエンジニアリングにより、これらのモデルに、詳細な技術文書の作成から創造的で魅力的なコンテンツの生成まで、複雑なタスクを実行するよう指示することができます。このガイドでは、AI とのやり取りを変革し、基本的なやり取りから微妙な意味のある会話にまで高める戦略と戦術を説明します。

「Excel で数値を追加するにはどうすればよいですか?」という質問との違いを考えてみましょう。対「Excel で金額の列を自動的に合計し、右側の [合計] 列に合計を表示するにはどうすればよいですか?」後者のより詳細なプロンプトでは、AI による解釈が少なくなり、より正確で役立つ応答が得られます。同様に、ペルソナ、区切り文字、および段階的な指示の使用を理解することは、特に複雑なタスクの場合、AI の出力品質に大きな影響を与える可能性があります。

プロンプト エンジニアリングに関するこのガイドでは、理論的な側面を説明するだけでなく、実践的な実践例も提供します。 AI を捏造から遠ざけるための参考テキストを提供するなどの戦術を効果的に使用する方法や、複雑なタスクをより単純なサブタスクに分割することでより正確な結果を生み出す方法を学びます。

1. 明瞭さと詳細

GPT-4 のような AI モデル用の効果的なプロンプトを作成するには、精度、コンテキスト、明瞭さの組み合わせが必要です。不適切に作成されたプロンプトと、よく考えられたプロンプトの違いは、漠然とした一般的な応答と、関連性の高い具体的な応答の違いとなる可能性があります。

例 1: 技術的な質問に ChatGPT の言語理解を活用する

  • 効果のないプロンプト: 「コードのバグを修正するにはどうすればよいですか?」
    • AI出力: 「コードのバグを修正するには、まずバグを特定し、それが発生する理由を理解し、それからコードを修正して修正する必要があります。」
  • 効果的な技術的な質問: 「Python でコーディングしているのですが、辞書にアクセスしようとすると「KeyError」が発生します。コード スニペットは次のとおりです。このエラーの原因は何ですか?どうすれば修正できますか?」
    • AI出力: 「Python コードの 'KeyError' は、辞書に存在しないキーにアクセスしようとしたことが原因である可能性があります。このエラーを処理するためにコードを変更する方法は次のとおりです: [説明付きの変更されたコード スニペット]。」

例 2: スタイルを模倣したクリエイティブ ライティング

  • 効果のないプロンプト:「短編小説を書いてください。」
    • AI出力「むかしむかし、遠い国に、大きな危機に直面した王国がありました…」
  • 効果的なスタイルの模倣プロンプト: 「思いがけず再会した二人の古い友人の間の会話に焦点を当てた、アーネスト・ヘミングウェイのスタイルで短編小説を書いてください。」
    • AI出力「古い友人であるジャックとトムが偶然出会った、ほこりっぽい道に太陽が照りつけていました。「何年も経ちましたね」とジャックは空気のように乾いた声で言いました。「戦争から何年も経ちます」とトムは答えた。 [物語はヘミングウェイの簡潔で対話中心のスタイルで続きます]。

例 3: 旅行に関するアドバイス

  • 効果のないプロンプト:「パリでは何をすればいいですか?」
    • AI出力: 「パリでは、エッフェル塔、ルーブル美術館、ノートルダム大聖堂などのランドマークを訪れることができます。」
  • 効果的なプロンプト: 「この夏、芸術と歴史に焦点を当てて XNUMX 日間パリを訪れる予定です。詳細な旅程を提案してもらえますか?」
    • AI出力: 「1 日目: 午前中にルーブル美術館を訪れ、その後ノートルダム大聖堂まで散歩します。[詳細な旅程は次のとおりです]。」

より良いプロンプトを作成するための洞察

  1. 特異性: できるだけ具体的にしてください。プロンプトが詳細であればあるほど、よりカスタマイズされた応答が得られます。
  2. コンテキスト情報: 関連するすべてのコンテキストを含めます。これは、AI がリクエストの正確な性質を理解するのに役立ちます。
  3. 明確な目的: 出力として何を期待しているかを明確に述べてください。レシピであれ、旅行計画であれ、技術的な解決策であれ、目的を明確にしてください。
  4. 曖昧さを避ける: 曖昧なプロンプトは一般的な応答につながります。正確な回答を得るには、リクエストを明確にしてください。
  5. 既知のフォーマットを利用する: 該当する場合は、リスト、ステップバイステップのガイド、図などの特定の形式で情報を求めます。

2. リファレンスによる AI 応答の強化

プロンプト エンジニアリングで参考テキストを戦略的に使用すると、GPT-4 などの AI モデルからの応答の品質と精度を大幅に向上させることができます。クエリと一緒に関連性のある信頼できる情報を提供することで、AI が指定された資料に基づいて回答を作成できるようになり、回答の信頼性と文脈がより正確になります。

例 1: 科学的な説明

  • 従来のプロンプト:「ブラックホールはどうやってできるの?」
    • AI出力: 「ブラック ホールは、超新星爆発で死んだ大きな星の残骸から形成されます。核の質量が十分であれば、それは自らの重力で崩壊してブラック ホールになります。」
  • 参照テキストを含む強化されたプロンプト:
    • 提供される参考テキスト: 「[星の進化とブラックホールに関する科学論文]」
    • プロンプト: 「提供された科学論文の情報を使用して、ブラック ホールの形成プロセスを説明します。」
    • AI出力: 「提供された科学論文によると、大質量星が核燃料を使い果たし、その核が崩壊するとブラック ホールが形成されます。論文の詳細: [「論文からの関連抜粋」]。

例 2: 法的解釈

  • 従来のプロンプト: 「知的財産の盗難の法的影響は何ですか?」
    • AI出力: 「知的財産の盗難は、訴訟、罰金、そしてひどい場合には懲役などの法的結果につながる可能性があります。」
  • 参照テキストを含む強化されたプロンプト:
    • 提供される参考テキスト: 「[知的財産法に関する法律雑誌記事]」
    • プロンプト: 「提供された法律雑誌の記事を参照しながら、知的財産の盗難の具体的な法的影響について説明してください。」
    • AI出力: 「法律雑誌の記事では、知的財産の盗難は民事訴訟、法定損害賠償、刑事告発の可能性があると述べています。具体的には、記事では次のように言及されています。['記事からの直接引用']。」

プロンプトでの参照テキストの使用に関する洞察

  1. 関連するテキストを選択する: クエリに直接関連する参考テキストを選択してください。
  2. 即時指定: 回答を作成するために提供された参考テキストを使用するように AI に明確に指示します。
  3. 引用: 正確性と検証のために、AI が応答で参照テキストの特定の部分を引用するように要求します。
  4. 不十分な情報への対処: 提供されたテキストに質問に答えるために必要な情報が含まれていない場合は、明確に述べるように AI に指示します。

3. サブタスク分割による複雑なタスクの簡素化

GPT-4 のような AI モデルで複雑なタスクを効果的に処理する鍵は、複雑なタスクをより単純なサブタスクに分割することにあります。このアプローチはプロセスを合理化するだけでなく、AI の応答の精度と関連性も高めます。以下では、具体的な例を通じてこの戦略を示し、複雑なクエリに対して意図の分類、要約手法、構造化された会話を使用する利点を強調します。

例 1: カスタマー サービスのクエリ

  • 非効果的なアプローチ: 一般的なサポートを求める単一のプロンプト。
    • ユーザープロンプト: 「アカウントに問題があります。」
    • AI出力: 「アカウントの問題の性質を具体的に教えていただけますか?」
  • 効果的なアプローチ: クエリをカテゴリに分類し、対象を絞った支援を提供します。
    • ユーザープロンプト: 「アカウントにアクセスできません。」
    • AI指令: 「クエリを「アカウント管理」に分類し、アクセスの問題をトラブルシューティングするための具体的な手順を提供します。」
    • AI出力: 「アカウントへのアクセスに問題があるようです。まず、パスワードをリセットしましょう。[詳細な手順が続きます]。」

例 2: 長い文書の要約

  • 非効果的なアプローチ: 長い文書を一度に要約しようとしています。
    • ユーザープロンプト: 「この 300 ページの本を要約してください。」
    • AI出力: 「申し訳ありませんが、コンテキスト ウィンドウより長いドキュメントを処理することはできません。」
  • 効果的なアプローチ: ドキュメントを区分的に要約し、完全な要約を再帰的に構築します。
    • AI指令: 「各章を個別に要約してから、要約の要約を作成し、再帰的に進めます。」
    • ユーザープロンプト: 「この本の第 1 章を要約してください。」
    • AI出力: 「第 1 章の概要: [第 1 章の簡単な概要]」。
    • 継続的なプロセス: 同じプロセスが各章に適用され、その後、すべての個別の要約を組み合わせた最終的な要約が続きます。

サブタスク分割とコンテキスト プロンプト エンジニアリングの利点

  1. 精度の向上: 複雑なタスクの特定の側面に焦点を当てることで、AI はより正確で適切な応答を提供できます。
  2. 効率アップ: タスクを細分化すると、タスクが管理しやすくなり、エラーや無関係な出力の可能性が減ります。
  3. より良いユーザーエクスペリエンス: ユーザーは的を絞った段階的なガイダンスを受け取ります。これは一般的な応答よりも役立ちます。
  4. 費用対効果: 対象を絞った小規模なプロンプトは、大規模で複雑なプロンプトに比べてコスト効率が高くなります。

4. GPT に考える時間を与える

モデルに「考える」時間を与え、複雑なタスクを管理可能なステップに分割する戦略により、GPT-4 のような AI モデルからの応答の品質が大幅に向上します。

例 1: 数学の問題の評価

  • 非効果的なアプローチ: モデルに生徒の解決策を評価するよう直接依頼します。
    • ユーザープロンプト: 「この数学の問題に対する生徒の解答は正しいですか?」
    • AI出力: 「生徒の解答は正しい/間違っているようです。」
  • 効果的なアプローチ: 生徒の作業を評価する前に、まず独自の解決策を見つけるようにモデルに指示します。
    • ユーザープロンプト: 「まず、この数学の問題を解いてください。次に、あなたの解法と生徒の解法を比較して、その正しさを評価してください。」
    • AI出力: 「私の解法: [詳細な解法]。生徒の解法と比較すると、[特定の部分] の計算に誤りが見つかりました。正しいアプローチは [正しい方法] です。」

例 2: 文書分析

  • 非効果的なアプローチ: XNUMX つのクエリで大きなドキュメントを分析しようとしています。
    • ユーザープロンプト: 「この文書全体の重要なポイントを要約してください。」
    • AI出力: 「文書が長すぎるため、文書全体を処理できません。」
  • 効果的なアプローチ: 包括的な分析のための抜粋とフォローアップ クエリの順次抽出。
    • ユーザープロンプト: 「[特定のトピック] に関連するこのドキュメントから重要な抜粋を抽出します。」
    • AI出力: 「抜粋 1: [関連する文章]。抜粋 2: [別の関連する文章]。」
    • フォローアップ ユーザー プロンプト: 「もっと関連性のある抜粋はありますか? 完全な文脈が含まれていることを確認してください。」
    • AI出力: 「追加の抜粋: [さらに関連する文章]。」

利点と洞察

  1. 分析の深さ: 最初に解決策や分析を行うことで、AI はより正確で詳細な評価を提供できます。
  2. ガイド付き学習: 個別指導のシナリオでは、内なる独り言やヒントを使用することで、生徒が自主的に解決策に到達するよう促し、学習体験を向上させます。
  3. 包括的なカバレッジ: 文書分析では、逐次的かつ再帰的なアプローチにより、重要な詳細を見逃すことなく徹底的にカバーできます。
  4. バイアスを避ける: AI は、最初に独自の解決策を生成することで、与えられた回答を直接評価することで生じる可能性のあるバイアスを回避します。

5. 外部ツールの活用

外部ツールやリソースを AI インタラクションに組み込むと、GPT-4 などのモデルによって生成される応答の精度と関連性が大幅に向上します。このセクションでは、ナレッジ検索のためのエンベディングベースの検索、正確な計算のためのコード実行、AI モデルの機能を強化するための関数呼び出しの使用方法を示します。

例 1: コード実行による正確な計算

  • コード実行なし: モデルの計算能力のみに依存します。
    • ユーザープロンプト: 「529 の平方根を計算します。」
    • AI出力: 「529 の平方根は約 23 です。」
  • コード実行あり: 計算の精度を確保します。
    • ユーザープロンプト: 「529 の平方根を計算します。」
    • AI指令: 「これを計算するには、Python コードを作成して実行します。」
    • AI出力"python import math math.sqrt(529) 529 の平方根はちょうど 23 です。」

例 2: 動的対話のための API 呼び出しの使用

  • API呼び出しなし: 静的な事前プログラムされた応答に限定されます。
    • ユーザープロンプト: 「明日の会議について友人にリマインダーを送信します。」
    • AI出力: 「リマインダー: 明日の会議について友人にメッセージを送ることを忘れないでください。」
  • API呼び出しあり: リアルタイム アクションのために外部システムと対話します。
    • ユーザープロンプト: 「友人のジョンに明日の会議についてリマインダーを送ってください。」
    • AI指令: 「メッセージング API を使用してリマインダーを送信します。」
    • AI出力"python import message message.write(to='John', message='Hey, remember our meeting tomorrow!')  明日の会議についてのリマインダーがジョンに送信されました。」

利点と洞察

  1. 拡張された知識ベース: エンベディングベースの検索を使用することで、AI は膨大な最新情報にアクセスして取り込むことができ、応答の関連性と正確性が向上します。
  2. 計算の精度: コードを実行すると、AI が正確な数学的計算を実行できるようになり、技術的または科学的なコンテキストで特に役立ちます。
  3. インタラクティブ機能: API 呼び出しにより、AI が外部システムと対話できるようになり、メッセージの送信やリマインダーの設定などの現実世界のアクションが容易になります。

6. 体系的なテスト

体系的なテスト、つまり評価手順 (eval) は、AI システムの変更の有効性を判断する上で重要です。このアプローチには、モデルの出力を一連の事前に決定された標準または「ゴールドスタンダード」の回答と比較して精度を評価することが含まれます。

例 1: 回答の矛盾を特定する

  • テストシナリオ: 専門家の回答と比較したモデルの応答内の矛盾を検出します。
    • システム指令: モデルの応答が専門家が提供した回答の一部と矛盾するかどうかを判断します。
    • ユーザー入力: 「ニール・アームストロングは、バズ・オルドリンに次いでXNUMX人目の月面歩行者となった。」
    • 評価プロセス: システムは、ニール アームストロングが月に初めて到達した人物であると述べた専門家の回答との一貫性をチェックします。
    • モデル出力: モデルの応答は専門家の回答と直接矛盾しており、エラーを示しています。

例 2: 回答の詳細レベルの比較

  • テストシナリオ: モデルの回答が詳細の点で専門家の回答と一致しているか、上回っているか、または下回っているかを評価します。
    • システム指令: モデルの応答と専門家の回答の間の情報の深さを比較します。
    • ユーザー入力: 「ニール・アームストロングは、21 年 1969 月 02 日の 56:XNUMX UTC に初めて月面を歩きました。」
    • 評価プロセス: システムは、モデルの応答が専門家の回答と比較して、より多くの詳細を提供するか、同等の詳細を提供するか、またはそれより少ない詳細を提供するかを評価します。
    • モデル出力: モデルの応答は追加の詳細 (正確な時間) を提供し、専門家の回答と一致し、それを拡張します。

利点と洞察

  1. 精度と信頼性: 体系的なテストにより、特に事実の情報を扱う場合、AI モデルの応答が正確で信頼できることが保証されます。
  2. エラー検出: モデルの応答におけるエラー、矛盾、不一致を特定するのに役立ちます。
  3. 品質保証: このアプローチは、特に教育、歴史、その他の事実に敏感な文脈において、AI によって生成されたコンテンツの高水準の品質を維持するために不可欠です。

結論と要点メッセージ

説明した例と戦略を通じて、プロンプトの具体性によって出力がどのように劇的に変化するか、複雑なタスクをより単純なサブタスクに分割することで困難な課題がどのように管理可能になるかを見てきました。私たちは、AI の機能を強化するための外部ツールの力と、AI 応答の信頼性と正確性を確保するための体系的なテストの重要性について調査してきました。訪問 OpenAI のプロンプト エンジニアリング ガイド AI インタラクションを最適化するための高度な技術と戦略の包括的な探求を補完する基礎知識を提供します。

私は過去 50 年間、機械学習と深層学習の魅力的な世界に没頭してきました。 私の情熱と専門知識により、特に AI/ML に重点を置いた XNUMX を超える多様なソフトウェア エンジニアリング プロジェクトに貢献してきました。 私の継続的な好奇心は、私がさらに探求したいと思っている分野である自然言語処理にも引き寄せられました。