この記事では、DeepLearning.AI の「Reasoning with o1」に基づいて、効果的なプロンプト作成の原則を紹介します。さらに、各原則ごとに「良いプロンプト」と「推奨されないプロンプト」を具体例で比較し、理解を深めます。
DeepLearning.AI - Reasoning with o1
アジェンダ
-
簡潔かつ直接的であること
- プロンプトは率直で簡潔に記述する。
- 直接的な指示が良い結果を生む。
-
明示的な思考の連鎖は不要
- 従来の「段階的に考える」指示は不要。
- モデルは自ら推論し、最適な答えを導く。
-
構造化
- 複雑なプロンプトは、マークダウンやXMLタグなどでセクション分割する。
- 構造化フォーマットはモデルの精度向上とトラブルシューティングに有効。
-
説明より例示
- 長い説明よりも、具体例を示すことでタスクの意図が明確になる。
1. 簡潔かつ直接的であること (Be simple and direct)
📝 解説
プロンプトは可能な限りシンプルに、要点のみを記述することが重要です。余計な情報を省くことで、モデルが本来のタスクに集中し、最適な結果を出力しやすくなります。
高校生向け例
友達に「明日の数学の宿題は何ページから何ページまで?」と尋ねる場合、単刀直入な質問の方が「えーっと、明日の数学の授業で先生が出した宿題って、どこからどこまでだっけ?」と長々と聞くよりも明確です。
良いプロンプトの例
今日の東京の天気を教えてください。
- ポイント: 必要な情報だけが伝わり、シンプルでわかりやすい。
推奨されないプロンプトの例
すみませんが、もし可能でしたら、今日の東京の天気の状況について、現在の気温や湿度など、詳しく教えていただけないでしょうか?
- 問題点: 回りくどい表現や余計な情報が多く、モデルが焦点を捉えにくくなります。
2. 明示的な思考の連鎖は不要 (No explicit chain of thought is required)
📝 解説
従来は「まず〜次に〜」と中間プロセスを指示する必要がありましたが、最新の01モデルは最終的なアウトプットのみを求めれば自動的に最適な推論を行います。
そのため、途中の手順を明示する必要はありません。
高校生向け例
料理のレシピで「まず野菜を切って、次に肉を炒める…」と細かく指示されなくても、経験豊富な料理人なら目的が伝われば自分で適切な手順を考えられるのと同じ考えです。
良いプロンプトの例
2 + 2 の答えを教えてください。
- ポイント: 結果のみを求め、内部の推論過程を省略している。
推奨されないプロンプトの例
まず、2 を足して、その次にもう一度 2 を足して、その手順を詳しく説明してください。最終的な答えを求めます。
- 問題点: 不要な中間手順の指示が、モデルの自律的な推論を妨げる可能性があります。
3. 構造化 (Use structure)
📝 解説
複雑な情報や複数のタスクが含まれる場合、マークダウンやXMLタグ、箇条書きなどを使ってプロンプトを整理すると、モデルが情報の関係性を正確に把握しやすくなります。
高校生向け例
レポートを書くとき、見出しや箇条書きを用いると内容が整理され、読みやすくなります。プロンプトも同様に構造化することで、情報の伝達が明確になります。
良いプロンプトの例
以下の売上データから、各商品の売上比率を計算してください。
- 商品A: 100
- 商品B: 200
- 商品C: 150
- ポイント: 箇条書きによりデータが整理され、タスクが明確です。
推奨されないプロンプトの例
商品の売上データがいろいろあって、例えば商品Aは100とか、Bは200とか、Cは150とかあるんですけど、それらの比率を計算してもらえますか?
- 問題点: 情報が散らばっており、構造化されていないため、モデルが正確に情報を把握しにくくなります。
4. 説明より例示 (Show rather than tell)
📝 解説
長い説明文よりも、具体的な例を示す方が、期待される出力のイメージが明確になり、モデルがタスクの意図を理解しやすくなります。
例は「見本」として、求める出力の形式やルールを示す役割を果たします。
高校生向け例
新しいスポーツを学ぶとき、ルールを長々と説明されるよりも、上手な人のプレーをいくつか見る方が、コツを掴みやすいのと同じです。
良いプロンプトの例
以下のリストの各数字を2倍にする関数を作成してください。
【例】
入力: [1, 2, 3]
出力: [2, 4, 6]
- ポイント: 入力と出力の具体例があるため、期待される処理内容が明確です。
推奨されないプロンプトの例
リスト内の数字を変換してください。変換方法は、あなたが最も適切だと思う方法で行ってください。
- 問題点: 出力形式や変換ルールが不明瞭なため、モデルが意図する結果を出しにくくなります。
まとめ
効果的なプロンプト作成のための4つの原則を理解することで、より正確で効率的なタスク指示が可能となります。
各原則のポイントを再確認すると:
-
簡潔かつ直接的:
→ 不要な情報を省き、目的を明確に伝える
例: 「今日の東京の天気を教えてください。」 -
明示的な思考の連鎖は不要:
→ 結果のみを求め、途中の手順はモデルに任せる
例: 「2 + 2 の答えを教えてください。」 -
構造化:
→ 箇条書きやセクション分けで情報を整理する
例: 売上データを箇条書きで提示する -
説明より例示:
→ 具体的な入力・出力例を示して、期待する形式を明確にする
例: 数字を2倍にする処理の入力と出力の例示
これらのポイントを意識してプロンプトを作成すれば、o1やo3モデルが正確にタスクを理解し、望む結果を効率的に生成できるようになります。ぜひ、このガイドを参考に、実際のプロンプト作成に活用してみてください。