ここでは数回に渡って、生成AI「Claude」を使いこなすためのプロンプトエンジニアリングのコツを紹介しています。
前回の第1回目は、「明瞭で直接的な指示の与え方」について解説してきました。
第2回目は「例を使う」というテクニックを中心に解説していきます。
例を使うことの効果
Claudeに明確な指示を与えることの重要性については前回お伝えしましたが、実はそれだけではまだ不十分なんです。Claudeのパフォーマンスを最大限に引き出すには、「例」を使うのが一番の近道なんですね。
プロンプトにいくつか適切な例を入れるだけで、Claudeの反応の精度や一貫性、品質が目に見えて上がります。複雑な内容を要求したり、決まったフォーマットでアウトプットさせたい時なんかには特に効果てきめんですよ。
Claudeにとっては、例は学習教材みたいなもの。求められている出力の具体例を見せられることで、そのパターンを素早くつかみ、新しい入力にも同じように対応できるようになるわけです。説明や指示を与えるよりもはるかに効率的な学習法だといえるでしょう。
効果的な例の作り方
じゃあ、どんな例を用意すればいいのかというと、まずは「関連性」が大事。実際に処理して欲しい入力や出力とできるだけ似た例を選びましょう。
それから、「多様性」も忘れずに。色々なパターンの例を含めることで、Claudeはより幅広い入力に対応できるようになります。例外への対策にもなりますしね。
あとは「明確さ」ですかね。例は簡潔で分かりやすいものを心がけましょう。タグを使って例の部分を区切るのもおすすめです。そうすれば、Claudeも例とそれ以外の部分をしっかり区別できます。
例の数は何個がベストというのは決まっていませんが、まずは3〜5個くらいから始めるのがいいでしょう。それでClaudeの反応が芳しくない時は、もっと例を追加してみるのもアリですよ。
例を使ったプロンプトの実践
じゃあ、実際のプロンプトでどう例を使うのかを見ていきましょう。基本的には、プロンプトの中に例を含めるだけです。タスクとなる部分と例の部分がごっちゃにならないように気をつけてくださいね。
例えば、引用文から著者名を抜き出すタスクだったら、こんな感じのプロンプトになります。
引用:「失敗は成功のもと」という言葉がありますが、これは本当だと思います。失敗から学ぶことで、次は成功できるからです。
― 松下幸之助
著者: 松下幸之助
</example>
引用:「人生で大切なことは、健康であり、知識を得ることであり、そして夢を持つことです」
― 野口英世
著者:
ここでは、まず例として著者名の抽出方法を示しています。Claudeはこれを参考にして、次の引用文からも同じ要領で著者名を取り出せるようになるわけですね。
例が特に有効なケース
先にもちょっと触れましたが、例を使うのは構造化されたアウトプットを出させる時に特に有効です。
例えば、文章の中から名前と職業を抜き出してリスト形式で整形するみたいなタスクだとしましょう。このケースだと、例を使ってClaudeに望む出力形式を示すのが手っ取り早いですよね。
<example>
テキスト:
鈴木一郎シェフはその斬新な料理で食の世界に革命を起こしました。近所の図書館では、司書の山田花子さんが利用者に優しい空間作りに励んでいます。
出力:
1. 鈴木一郎 [シェフ]
2. 山田花子 [司書]
</example>
テキスト:
佐藤健一博士は、画期的な新薬の開発に成功しました。一方、弁護士の田中真紀子さんは、困難な事件に立ち向かい、依頼人の無罪を勝ち取りました。工藤雅之先生は、生徒たちに数学の楽しさを伝える情熱的な教師として知られています。
出力:
このように、の後に実際に処理してほしいテキストを与え、Claudeが出力すべき内容を明確にしました。これでClaudeは例を参考にしながら、新しいテキストからも同じ要領で名前と職業を抽出してリスト形式で出力できるはずです。
例を使う際の注意点
ただし、油断は禁物です。下手な例を使うと、意図しないパターンまで学習させてしまうことがあるんです。
例えば、メールの例文の最後が全部「敬具」で終わっていたりすると、Claudeは全てのメールを必ずそう締めくくるべきだと勘違いしちゃうかもしれません。
そんな事態を避けるには、やっぱり例の「多様性」と「網羅性」がカギになります。できるだけ色々なパターンを例に含めて、その分野の全体像をしっかり伝えるようにしましょう。
完璧な例のセットを作るのは一朝一夕では難しいですから、何度も試行錯誤を重ねるのが大事ですね。Claudeの出力を分析して問題点を洗い出し、例を追加したり修正したりしながら、理想のプロンプトを目指して磨きをかけていくんです。時にはClaudeにアドバイスを求めるのもいいかもしれません。
さあ、今日は例の使い方について詳しく見てきました。うまく活用すれば、Claudeの性能を飛躍的に高められること間違いなしです!次回は「役割を与える」というテクニックを紹介する予定ですので、お楽しみに!