【ChatGPT】OpenAIによるプロンプトエンジニアリングガイドを日本語で解説
OpenAIが公開するプロンプトエンジニアリングのガイドは、大規模言語モデル、特にGPT系のモデルを活用する際に、より良い結果を得るための戦略と戦術を提供しています。これらの戦略と戦術は、言語モデルを使ったアプリケーション開発者や研究者にとって、価値あるガイドラインとなります。以下では、OpenAIが提案する6つの主要な戦略と、それぞれに対応する戦術について詳細に解説します。
- プロンプトの送信回数15回
- 使用したモデル:Microsoft Copilot、ChatGPT、Gemini Advanced
- Microsoft Copilotは旧Bing Chatのことを指し、Microsoft Copilot for Microsoft 365とは異なります。
AIとデジタルイノベーションでビジネスを変える時が来ました。
私たちと一緒に、効果的なマーケティングとDXの実現を目指しませんか?
弊社では、生成AI開発やバーチャルインフルエンサーの運用について無料相談を承っております。
お打ち合わせではなくチャットでのご相談もお待ちしております。
目次
はじめに
OpenAIが公開するプロンプトの6つの戦略
6つの戦略の各種戦術
AIによるまとめ
この記事は、AI(人工知能)によって生成されたものです。
内容は専門家による監修や校正を経ておらず、AIの現在の能力と知識ベースに基づいています。
したがって、記事の内容には限界があり、専門的な意見や最新の情報を代替するものではありません。
読者は、この記事を参考の一つとして用いることを推奨し、必要に応じて専門家の意見を求めることをお勧めします。
以下から、AIライターの執筆が始まります。
はじめに
今日は、OpenAIが公開したプロンプトエンジニアリングのガイドについて紹介したいと思います。
このガイドは、大規模言語モデル、特にGPT系のモデルを使って何かを作るときに、どうやってプロンプトを書くといいのか、ということを教えてくれます。言語モデルを使ったアプリケーションを開発したり、研究したりする人にとって、とても役に立つガイドだと思います。
このガイドには、6つの大事な戦略と、それに関連するいろいろな戦術が書かれています。それでは、一つずつ見ていきましょう。
前回ご紹介したプロンプトの26の原則についても理解した上で、OpenAIのガイドを見ていただくと
OpenAIが公開するプロンプトの6つの戦略
1 明確な指示を書く
明確かつ具体的なプロンプトは、モデルが望ましい応答を生成するための基礎となります。ユーザーが何を求めているのかを正確に伝えることで、適切な応答を引き出すことができます。
2 参照テキストを提供する
モデルに参照テキストを提供することで、より信頼性の高い回答や、根拠のある内容を生成させることが可能になります。特に、特定の知識が必要な質問や、正確な情報を求める場合に有効です。
3 複雑なタスクをシンプルなサブタスクに分割する
複雑な問題を小さなタスクに分解し、それぞれに対してモデルを活用することで、全体の問題を効果的に解決できます。このアプローチは、問題の理解を深め、エラーの可能性を減らします。
4 モデルに「考える」時間を与える
モデルに思考プロセスを促すことで、より深い分析や論理的な結論を導き出させることができます。これは、単純な回答では不十分な複雑な質問に対して特に有効です。
5 外部ツールを使用する
外部ツールやリソースを活用することで、モデルの能力を拡張し、特定のタスクをより正確に、効率的に実行できます。これにより、モデルの応用範囲が広がります。
6 変更を体系的にテストする
プロンプトの変更やモデルの調整を行う際には、それが全体的なパフォーマンスにどのように影響するかを体系的に評価することが重要です。これにより、改善点を明確にし、より効果的なプロンプト設計を行うことができます。
「モデル」はGPT-3.5あるいはGPT-4のことを指しています。
ここから先は各戦略において具体的な戦術を見ていきましょう!
6つの戦略の各種戦術
クエリに詳細を含める
NG:
Excelで数字を足し算する方法は?
OK:
質問: Excelで、A列に入力された複数のドル金額を自動で合計し、その合計をB1セルに表示するマクロの作成方法を教えてください。具体的には、VBAコードを使用した手順を知りたいです。
モデルにペルソナを採用させる
**指示**: あなたは経験豊富なプログラマーであり、コーディングのヒントを提供する際には、例として実際のコードスニペットを提供し、それに加えて軽いジョークや遊び心のあるコメントを含めてください。
入力の異なる部分を明確に示すためにデリミタを使用する
# 指示
以下の三重引用符```で囲まれた文章を、俳句形式で要約してください。俳句は5-7-5の音節構成でお願いします。
```文章
ここに長いテキストが入ります。これを基に俳句を作成してください。
タスクを完了するために必要な手順を指定する
### タスクを完了するために必要な手順を指定する
```markdown
**指示**: 以下の手順に従って、ユーザーが提供したテキストを要約してください。
1. ユーザーが三重引用符```で提供したテキストを読んでください。
2. そのテキストを要約し、一文で表現してください。
3. 要約の前に"要約: "という接頭辞を付けてください。
例を提供する
**指示**: ユーザーの質問に回答する際は、以下の例に倣って一貫したスタイルで回答してください。例: ユーザーが「忍耐について教えてください」と尋ねた場合、具体的な例を交えつつ、教訓的な回答を提供してください。
出力の望ましい長さを指定する
**指示**: 以下のテキストを、約50語で要約してください。情報を可能な限り凝縮し、要点を的確に捉えた回答を目指してください。
```テキスト
ここに要約する長いテキストが入ります。このテキストの要点を50語以内で要約してください。
モデルに参照テキストを使って回答させる
「以下の文献に基づいて、気候変動における二酸化炭素排出量の影響について詳しく説明してください。
参照文献: [山田太郎、『気候変動の科学』、2021年、第3章]」
参照テキストからの引用を含めてモデルに回答させる
「IPCCの最新報告書を参照して、2020年代の気候変動における主要な発見とその影響について説明してください。特に、海面上昇に関する部分を引用して、その推定値と影響を解説してください。
参照文献: [国際気候変動パネル、『気候変動2021: 物理科学的基礎』、2021年]」
意図分類を使用してユーザークエリに最も関連する指示を特定する
**カスタマーサポートへの問い合わせ**:
「次のクエリをカテゴリーに分類し、適切な回答を提供してください。
クエリ: "先月の請求書が予想よりも高かったのですが、なぜですか?"
カテゴリー: [請求に関する問題]」
対話アプリケーションで非常に長い会話が必要な場合、以前の対話を要約またはフィルタリングする
**対話の要約**:
「以下の対話の要点を要約し、次の質問に最適な形で回答してください。
これまでの対話: "お客様はインターネット接続に問題を抱えており、すでにルーターの再起動を試み、ケーブルの接続を確認しています。しかし、問題は解決していません。"
次の質問: "ルーターのモデル番号を教えてください。"」
長いドキュメントを部分的に要約し、再帰的に全体の要約を構築する
**ドキュメントの要約**:
「以下のテキストの章ごとの要約を提供し、その後で全体の要約を作成してください。
テキスト: "第1章: 気候変動の科学的根拠、第2章: 気候変動の影響、第3章: 緩和策と適応策。"
全体の要約を作成する際には、各章の要約を参考にしてください。」
モデルが自分の解決策を導き出す前に結論を急がないよう指示する
**数学の問題解決**:
「次の数学の問題について、解答に至るまでの過程を詳しく説明してください。
問題: "あるクラスには男子が15人、女子が10人います。クラス全体での男女比を求めてください。"」
内部モノローグやクエリのシーケンスを使用してモデルの推論プロセスを隠す
**教育アプリケーションの問題解決**:
「生徒が次の数学問題をどのように解くべきか、内部的な思考プロセスを通じてヒントを提供してください。
問題: "方程式 2x + 3 = 7 を解いてください。"
内部モノローグを用いて解決策を考え、最終的にはヒントのみを提供してください。」
以前のパスで何かを見逃していないかモデルに尋ねる
**文書要約の精度検証**:
「以下の文書を要約した回答について、初回の要約で見落としている重要なポイントがないか再検討してください。
文書: "気候変動による海面上昇の影響に関する最新の研究結果についての詳細なレポートです。"
初回の要約後、見落としている可能性のあるポイントがないか確認し、必要に応じて追加情報を提供してください。」
埋め込みベースの検索を使用して効率的な知識検索を実装する
「以下のトピックについて最新の研究結果を基にして詳細な解説を提供してください。
トピック: "人工知能によるがん診断の進歩"
関連する最新の研究論文やレビュー記事から、重要な発見や技術の進化についての情報を引用して回答を構成してください。」
コード実行を使用してより正確な計算を行うか、外部APIを呼び出す
「次の数式に基づいて計算を行い、結果を提供してください。
数式: "x^2 - 2x + 1 = 0"の解。
この計算にはPythonコードを使用してください。
また、計算過程も説明してください。」
モデルに特定の機能へのアクセスを与える
「ユーザーからの次のリクエストに応じて、指定されたデータベースから必要な情報を検索し、その結果を提供してください。
リクエスト: "最近5年間で発表された、機械学習を利用したがん治療に関する論文の一覧を教えてください。"
データベースアクセス機能を使用し、検索結果を回答として整理してください。」
次のブログではこれらのプロンプトの戦術を用いてより実務で使えそうなプロンプトをご紹介いたします!
AIによるまとめ
OpenAIによるプロンプトエンジニアリングの戦略と戦術は、GPT系言語モデルを活用する際の強力なガイドラインを提供します。これらのアプローチを適切に組み合わせて使用することで、開発者や研究者は、言語モデルからより正確で有用な応答を引き出すことが可能になります。各戦略と戦術の理解と適用は、言語モデルを使ったアプリケーションの品質と効率を大きく向上させることでしょう。
最後に
弊社では、AIを活用したマーケティングやDXのご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
公式LINEでも随時、生成AIのトレンドや活用方法について発信しています。