OpenAIのモデルから意図通りの出力を引き出すには、適切なプロンプト設計が不可欠です。
この記事では、公式ドキュメントで示されている効果的なプロンプト作成のベストプラクティスを解説します。
なぜプロンプトエンジニアリングが重要なのか
OpenAIのモデルは学習データや対話形式の構造に基づいて応答を生成するため、プロンプトの指示方法によって回答の精度が左右されます。
指示の形式や背景情報を明確に与えることで、誤認を防ぎ、目的に合った実用的な回答を得やすくなります。
実践的なテクニック
具体的な改善例を交えて解説します。
1. 最新モデルを選択する
新しいモデルほど指示への追従性や文脈の理解力が高く設計されています。
特別な理由がない限り、最新世代のモデルを使用します。
なお、従来のGPTモデルと推論特化モデル(o1など)では、プロンプトに求められる工夫やアプローチが異なる点に注意が必要です。
2. 指示とコンテキストを明確に分離する
区切り文字(###や""")を用いて、指示部分と処理対象のテキストを構造的に明確化します。
改善前:
以下のテキストを要約してください。
{テキスト}改善後:
以下のテキストを箇条書きで要約してください。
Text: """
{テキスト}
"""3. 具体的かつ詳細に記述する
曖昧な表現を避け、求める出力の長さ・形式・トーンを明確に指定します。
改善前:
OpenAIについて詩を書いてください。改善後:
OpenAIについて短い詩を書いてください。
最近のDALL-E製品リリースに焦点を当て、{有名な詩人}のスタイルで作成してください。4. 出力形式を例示する
期待する出力形式を具体例(フォーマット)で提示することで、モデルが構造を正確に再現し、後続のプログラム処理やパースが安定します。
テキストから重要なエンティティを抽出してください。
出力形式:
会社名: <カンマ区切りリスト>
人物名: <カンマ区切りリスト>
トピック: <カンマ区切りリスト>
テーマ: <カンマ区切りリスト>
Text: {テキスト}5. 段階的にアプローチする
まずは具体例を含まないゼロショットで指示を出し、
期待通りの精度が得られない場合は数件の具体例を与えるフューショット(Few-shot)を試し、それでも要件を満たせない場合は微調整(fine-tuning)の実施を検討します。
ゼロショット:
以下のテキストからキーワードを抽出してください。
Text: {テキスト}
Keywords:数ショット:
以下のテキストからキーワードを抽出してください。
Text 1: Stripeは決済処理をウェブサイトに統合するAPIを提供しています。
Keywords 1: Stripe, 決済処理, API, ウェブサイト
##
Text 2: {テキスト}
Keywords 2:6. 禁止事項より推奨事項を伝える
「〜しないでください」という否定表現よりも、「〜してください」と代替行動を指示する方がモデルは意図通りに動作します。
改善前:
ユーザー名やパスワードを聞かないでください。改善後:
個人情報に関する質問は避け、代わりにヘルプページ(www.example.com/help)を案内してください。7. コード生成時は「導入ワード」を活用する
importやSELECTのようなコードの開始キーワードをあらかじめ提示することで、不要な前置きを省き、目的のコードから生成させやすくなります。
# マイルをキロメートルに変換する関数を作成
# 1. 数値を入力として受け取る
# 2. キロメートルに変換して返す
import主要パラメータの調整
- model: 高性能モデルほど精度が向上する一方、トークン単価やレイテンシが増加
- temperature: 0に近づけるほど決定論的で一貫した出力になり、値を上げるほど多様で創造的な出力に変化
- max_completion_tokens: 生成される最大トークン数の上限を指定
- stop: 指定した文字列が生成された時点で出力処理を打ち切る終了シーケンス
データ抽出や事実確認のようなブレを抑えたいタスクでは、temperature=0の設定が推奨されます。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
AIの使い方の記事は、ほかにもあります。




まとめ
プロンプトの構成やパラメータを適切に調整することで、出力の精度と安定性は大幅に改善されます。
まずは紹介した7つのポイントを意識してプロンプトを作成してみてください。
補足:元ドキュメントからの記載整理について
- Playgroundの「何でも生成」機能(Generate anything):Playground UI固有の補助機能のため本記事では省略
- パラメータ調整:プロンプト設計と区別するため別セクション「主要パラメータの調整」に再構成
