⚫︎プロンプトエンジニアリングの熟練度を10段階で測る
# CO-STARフレームワーク万能テンプレート
## Context (背景)
[▶︎▶︎ここに背景情報と質問を記入します。]
## Objective (目的)
[ここに具体的な目的を記入します。]
## Style (文体)
[ここに文体を記入します。]
## Tone (感情的なトーン)
[ここにトーンを記入します。]
## Audience (対象読者)
[ここに対象読者を記入します。]
## Response (出力形式)
[ここに出力形式の指示を記入します。]
プロンプトエンジニアリングの熟練度を10段階で測る
[引用元: Mavericks, Inc]
1️⃣ Level 1 - 入門
まずは、LLMに何がしたいかを伝えられればOKです。
例:Wikipediaの記事を要約して
2️⃣ Level 2 - 書式の工夫
書式を少し工夫するだけで、回答精度が大きく向上するケースがあります。例えば、
「」によって強調したり変数としての意味を持たせる
否定文を避ける
重要な指示は繰り返し強調する
3️⃣ Level 3 - 精密な指示
人への指示も然りですが、解釈のブレが少ない明確な指示を与えられれば、期待通りの出力を得られる確率が高まります。
ダメな例:この回答をもっと綺麗にして
良い例:Xという列名を持つテーブル形式で出力して
4️⃣ Level 4 - 例示の使用
いわゆる「few shot learning」と呼ばれるものです。望ましい回答例をいくつか示してあげることで、長さ・フォーマット・文体などを指定することができます。ただし、付与した例に回答が引っ張られることもあるため、試行錯誤が必要な場合があります。
5️⃣ Level 5 - 内省
「抜けてる論点はある?」「本当に今の回答は正しい?」などとLLMに自身の回答を振り返らせることで、回答が多角的に評価され、品質が向上することが多いです。質問と内省を一度に行うのではなく、二回に分けて行うことで、より効果が出る印象です。
なお、この内省はLLMのハルシネーションの多さのチェックにも役立ちます。「本当に合ってる?」という質問を複数回続けたときに、回答が二転三転するようであれば、口から出まかせの、ハルシネーション確率が高いモデルであると推論できます。
6️⃣ Level 6 - システムプロンプト・カスタム指示
会話を通して常にLLMに把握して欲しいことは、システムプロンプト・カスタム指示に含めておくと効きが良いです。これらはユーザーの質問とは別に、第三者の視点から与えられます。
例:質問には必ず日本語で回答して
7️⃣ Level 7 - 専門家の模倣
LLMの性能があまり高くなく(例えばGPT-3.5レベル)、かつ用途が限られる場合に効果的なテクニックです。「あなたはpythonの天才プログラマーです」といったように役割を与えると、生成される可能性のある語彙が特定の専門領域にぐっと絞られ、性能が向上します。
逆に用途が多岐にわたる場合は、無理に指定する必要はないでしょう。
8️⃣ Level 8 - Chain of Thought
「step by stepで考えて」といったようにいきなり結論を導くのではなく、順を追って思考するよう指示することで、精度が向上するとよく言われます。
ただ、それに疑問を投げかけるような研究結果もあり、個人的にも有用性を感じたことはほとんどありません。
9️⃣ Level 9 - LLM自身にプロンプトを生成させる
上で紹介したAnthropic Prompt Generatorを使えば、プロンプトの雛形を高速に作成でき、時短に役立ちます。また、ペルソナの設定など具体的な表現が必要な時に、アイデア出しをしてもらうのも非常に効果的です。
🔟 Level 10 - CO-STAR
CO-STARは、シンガポール政府技術庁主催のプロンプトエンジニアリングコンペの優勝者が考案した、プロンプト設計のフレームワークです。Context, Object, Style, Tone, Audience, Responseの6つを指定するもので、非常に覚えやすい上、汎用性もかなり高いと感じています。