プロンプトエンジニアリング
インタラクティブなコースを通じてプロンプティングを学ぶには、プロンプトエンジニアリングチュートリアルをご覧ください。
Claudeは、すぐに使える高レベルのベースラインパフォーマンスを提供します。しかし、プロンプトエンジニアリングを活用することで、パフォーマンスをさらに向上させ、特定のユースケースにより適した応答を得ることができます。これらのテクニックは、Claudeで良い結果を得るために必須ではありませんが、入力と出力をレベルアップするのに役立つでしょう。
プロンプトをすぐに使い始めたい場合や、プロンプティングの概念を知りたい場合は、プロンプティング入門をご覧ください。
プロンプトエンジニアリングとは
プロンプトエンジニアリングは、パフォーマンスを最適化するためにプロンプトを反復的にテストする経験的な科学です。プロンプトエンジニアリングの大部分の努力は、実際にはプロンプトを書くことではありません。むしろ、プロンプトエンジニアリングの時間の大半は、強力な評価のセットを開発することに費やされ、その後、それらの評価に対してテストと反復が行われます。
プロンプト開発のライフサイクル
最適なプロンプトのパフォーマンスを確保するために、原則に基づいたテスト駆動型開発のアプローチをお勧めします。タスクのプロンプトを開発する際に使用する主要な高レベルのプロセスを、添付の図を参照しながら説明しましょう。
- タスクと成功基準の定義: 最初で最も重要なステップは、Claudeに実行させたい具体的なタスクを明確に定義することです。これは、エンティティ抽出、質問応答、テキスト要約から、コード生成やクリエイティブライティングなどのより複雑なタスクまで、何でも構いません。タスクを明確に定義したら、評価と最適化のプロセスを導く成功基準を確立します。
考慮すべき主要な成功基準は次のとおりです:- パフォーマンスと精度: モデルはタスクでどの程度のパフォーマンスを発揮する必要がありますか?
- レイテンシ: モデルの許容応答時間は何ですか? これは、アプリケーションのリアルタイム要件とユーザーの期待に依存します。
- 価格: モデルを実行するための予算はいくらですか? API呼び出しごとのコスト、モデルのサイズ、使用頻度などの要因を考慮してください。
最初から明確で測定可能な成功基準を持つことで、採用プロセス全体を通じて情報に基づいた決定を下し、適切な目標に向けて最適化できるようになります。
- テストケースの開発: タスクと成功基準を定義したら、次のステップは、アプリケーションの意図された使用例をカバーする多様なテストケースを作成することです。これには、典型的な例とエッジケースの両方を含める必要があります。これにより、プロンプトが堅牢であることを確認できます。事前に明確に定義されたテストケースを用意することで、成功基準に対するプロンプトのパフォーマンスを客観的に測定できるようになります。
- 予備的なプロンプトのエンジニアリング: 次に、タスクの定義、良い応答の特徴、Claudeに必要なコンテキストを概説する初期プロンプトを作成します。理想的には、Claudeが従うべき標準的な入力と出力の例をいくつか追加する必要があります。この予備的なプロンプトは、洗練のための出発点として機能します。
- テストケースに対するプロンプトのテスト: 予備的なプロンプトを使用して、テストケースをClaudeにフィードします。期待される出力と成功基準に照らして、モデルの応答を慎重に評価します。人間による評価、解答キーとの比較、またはルーブリックに基づくClaudeの別のインスタンスの判断など、一貫した採点ルーブリックを使用します。重要なのは、パフォーマンスを評価するための体系的な方法を持つことです。
- プロンプトの洗練: ステップ4の結果に基づいて、テストケースでのパフォーマンスを改善し、成功基準をより適切に満たすために、プロンプトを反復的に洗練します。これには、Claudeの動作を導くための明確化、例、または制約の追加が含まれる場合があります。狭い入力セットに過度に最適化しすぎないように注意してください。これは、過剰適合と汎化能力の低下につながる可能性があります。
- 洗練されたプロンプトの出荷: テストケースで良好なパフォーマンスを発揮し、成功基準を満たすプロンプトが得られたら、それをアプリケーションに展開する時期です。モデルの実際のパフォーマンスを監視し、必要に応じてさらに改良を加える準備をしてください。初期のテストセットでは予期しなかったエッジケースが発生する可能性があります。
このプロセスを通じて、最も能力の高いモデルと制約のないプロンプト長から始めて、パフォーマンスの上限を確立することをお勧めします。目的の出力品質を達成したら、必要に応じて、プロンプトの短縮やモデルの縮小などの最適化を試して、レイテンシとコストを削減できます。
このテスト駆動型の方法論に従い、タスクと成功基準を事前に慎重に定義することで、特定のユースケースでClaudeの力を活用するための道筋がつけられるでしょう。堅牢なテストケースとプロンプトの設計に時間を投資すれば、モデルのパフォーマンスと保守性の面で利益を得ることができます。
プロンプトエンジニアリングのテクニック
プロンプト開発サイクル全体を通じて、Claudeのパフォーマンスを向上させるためにいくつかのテクニックを使用できます。例えば:
- 明確で直接的であること: 明確な指示とコンテキストを提供して、Claudeの応答を導く
- 例を使用する: 目的の出力形式やスタイルを示すために、プロンプトに例を含める
- Claudeに役割を与える: Claudeに特定の役割(専門家の役割など)を与えることで、ユースケースのパフォーマンスを向上させる
- XMLタグを使用する: プロンプトと応答を構造化して明確にするために、XMLタグを組み込む
- プロンプトをチェーンする: 複雑なタスクを小さな管理可能なステップに分割して、より良い結果を得る
- Claudeに考えさせる: ステップバイステップの思考を促進して、Claudeの出力の品質を向上させる
- Claudeの応答を事前に入力する: Claudeの応答を数語で始めることで、出力を目的の方向に導く
- 出力形式を制御する: 一貫性と可読性を確保するために、目的の出力形式を指定する
- Claudeに書き直しを求める: ルーブリックに基づいて修正を要求し、Claudeに出力を反復して改善させる
- 長いコンテキストウィンドウのヒント: Claudeの長いコンテキストウィンドウを活用するプロンプトを最適化する
また、提供するガイドラインに基づいてClaudeにプロンプトを作成させる実験的なヘルパーメタプロンプトも提供しています。メタプロンプトは実験的ですが、初期プロンプトのドラフト作成や、テスト用の多数のプロンプトバリエーションを迅速に作成するのに役立つ場合があります。
注意: Claude 3ファミリー以前のモデルでは、より多くのプロンプトエンジニアリングが必要になる場合があります。詳細については、レガシーモデルガイドを参照してください。
追加リソース
プロンプトエンジニアリングの詳細については、以下のリソースを確認してください:
- Anthropic Cookbook: PDFのアップロード、ツールの使用と関数の呼び出し、埋め込みなど、より高度なシナリオでClaudeを巧みかつ効果的に使用する方法を示すコピー可能なコードを含むJupyterノートブックの形式のレシピのセット
- プロンプトエンジニアリングインタラクティブチュートリアル: 効果的なプロンプティング戦略を簡単に学べるハンズオンのステップバイステップチュートリアル(APIキーが必要)
- 例題の解答を見たい場合は、解答集もあります。
- プロンプトライブラリ: 個人的および専門的なユースケースのために、一般的で楽しく役立つタスクのための既製のプロンプトのコレクション
- クライアントSDK: Claudeを使用してアプリケーションに統合するのを容易にするツールのセット
ハッピープロンプティング!