評価の品質は、プロンプトの品質によって異なります。 適切に設計されたプロンプトは、意図した内容を正確にテストします。これ以上、そしてそれ以上ではありません。
この記事では、明確で実用的な結果を生成する評価プロンプトを設計する方法について説明します。
効果的な評価プロンプトの構造
有効な評価プロンプトは、次の 4 つの特性を共有します。
- 単一の意図
- リアルなフレージング
- データに固定
- 自己完結型
単一の意図
各プロンプトでは、1 つのユーザー目標または質問をテストする必要があります。 複数意図プロンプトを使用すると、エラーの原因を特定することが困難になります。
| マルチインテント (回避) | 単一意図 (推奨) |
|---|---|
| 私のPTO残高は何ですか、あなたは私にラップトップを注文できますか? | PTO 残高は何ですか? |
| 健康上の利点と401kマッチについて教えてください。 | どのような医療保険プランが利用できますか? |
複数の機能を一緒にテストするには、意図を 1 つのプロンプトに結合するのではなく、複数ターンの会話評価を使用します。
リアルなフレージング
プロンプトは、非公式言語、不完全な文、さまざまな詳細レベルなど、ユーザーが実際に通信する方法を反映する必要があります。
| 過度に正式 | 現実的 |
|---|---|
| 入社1年目の従業員に対する年次有給休暇の配分に関する情報を提供してください。 | 新入社員は何日間の休暇を取得しますか? |
| コンピューティング機器の調達依頼を開始したいと思います。 | 私はラップトップを注文する必要があります。 |
現実的なプロンプトは、次の場所から派生できます。
- 運用クエリ ログ
- ユーザー研究セッション
- サポート チケット
- 日常の職場での会話
データに固定
プロンプトはデータに固定する必要があります。 接地データが使用可能な場合は、特定のエンティティ、値、識別子を使用します。 この方法により、評価が測定可能で検証可能になります。
"応答には正しい数が含まれています" のようなあいまいなチェックではなく、"応答に 15 日が含まれています" などの正確なアサーションが有効になります。
接地データなし
プロンプト: "エンジニア向けの PTO ポリシーは何ですか?
接地データを使用する
接地データ:
- 従業員: マーカス・ジョンソン
- 部署: エンジニアリング
- テニュア: 8 か月
- マネージャー: リサ パーク
- 場所: オースティン オフィス
プロンプト: "私はエンジニアリング チームにいます。休暇日数はいくつですか?
自己完結型 (1 ターン)
シングルターン評価の場合は、各プロンプトに必要なすべてのコンテキストが含まれている必要があります。 エージェントは、以前の会話ターンに依存できません。 次の表は、自己完結型プロンプトの例を示しています。
| 自己完結型 | コンテキストに依存 (回避) |
|---|---|
| PPO 正常性プランには何が含まれますか? | 他の正常性計画はどうですか? |
| PPO 正常性計画の従業員のコストは何ですか? | そのコストはどのくらいですか? |
| 16 インチ MacBook Pro を注文できますか? | 代わりに注文できますか? |
複数のターンにまたがるシナリオでは、 複数ターンの会話を使用します。
プロンプトバリエーション
ユーザー全員が同じ方法で同じ質問をするわけではありません。 一般化をテストするには、各プロンプトに 3 つのバリエーションを作成します。
標準プロンプト
標準プロンプトは、明示的、完全、明確です。 これらはベースラインとして機能します。
- 必要なすべてのパラメーターを含めます。
- 正確な用語を使用します。
- あいまいさを避けます。
- 理想的なクエリを表します。
例
「現在の PTO ポリシーに従って、2 年未満の在職期間を持つ従業員が毎年受け取る有給休暇日数はいくつですか?
自然言語バリアント
自然言語のバリエーションは、日常の会話の言い回しを反映しています。 自然言語バリアント:
- カジュアルな会話言語を使用します。
- シノニムまたは非公式の用語が含まれる場合があります。
- 技術的な識別子は避けてください。
- 答えるのに十分な完全なままです。
例
"ねえ、私は新入社員としてどのくらいの休暇を得るのですか?
次の表では、標準プロンプトと自然言語バリアントを比較します。
| 手法 | 正規 | 自然バリアント |
|---|---|---|
| 類義 語 | "有給休暇" | "休暇日"、"休暇"、"PTO" |
| カジュアルな言い回し | "受け取る日数" | 「私はどれくらいの量を得るのか」 |
| 暗黙的なコンテキスト | 「 <2年の在任期間を持つ従業員」 | 「新しい人として」 |
| カジュアルな大文字と小文字 | 適切な大文字と小文字 | 小文字、最小限の句読点 |
堅牢性プローブ
堅牢性プローブは、エージェントが不完全な入力を処理する方法を評価します。 堅牢性プローブ:
- 現実的な入力ミスを含めます。
- 文法上のエラーを含む。
- 短縮形または省略形を使用します。
- ノイズの下で意図認識をテストします。
例: 「何が私のバカトンの日の権利」
次の表は、テストするパターンの例を示しています。
| パターン | 例 |
|---|---|
| タイプミス | "休暇" ではなく "vacaton" |
| 句読点がありません | "whats" ではなく "whats" |
| 単語が見つからない | "取得日数" |
| 略語 | "PTO bal?" |
| 実行クエリ | "ラップトップmacbook pro 16インチが必要" |
プロンプトバリエーションの例を完了する
次の例では、1 つのシナリオに対する 3 つのプロンプトの種類すべてを示します。
シナリオ: 装置の順序付け
このシナリオには、次の接地データが含まれます。
- 従業員: Katrin Pold
- 部署: 製品設計
- 開始日: 2024-01-15
- 機器予算: $3,500
- 承認済み項目: MacBook Pro (14 インチまたは 16 インチ)、外部モニター、キーボード、マウス
プロンプトバリエーション
正規
「2024年1月15日からプロダクトデザイン部門の新入社員です。 私は16インチのMacBook Proラップトップを注文する必要があります。 IT 発注システムを通じて、この機器の要求を送信してください。
自然言語
"こんにちは、私はちょうど製品設計チームに参加し、私のラップトップを設定する必要があります。 MacBook Pro を入手できますか? 16インチのものが好ましい。
堅牢性プローブ
"製品設計の新しい仕事のためにmacbook pro 16inを注文する必要がある"
アサーション (すべてのバリエーションに適用):
- 応答は、機器の注文が開始されたことを確認します。
- エージェントが OrderEquipment ツールを呼び出しました。
- ツール呼び出しには、"MacBook Pro 16 インチ" (または同等) が含まれています。
- 応答には、注文確認または参照番号が含まれます。
シナリオ: パーソナル化を使用したポリシーの質問
このシナリオには、次の接地データが含まれます。
- 従業員: James Wright
- 場所: ロンドン、英国オフィス
- テニュア: 6 か月
- 雇用の種類: フルタイム
プロンプトバリエーション
正規
「6ヶ月の在職期間を持つロンドン、英国のオフィスに拠点を置く正社員として、今年はどのような祝日を受ける資格があるのですか?
自然言語
「ロンドンオフィスで働いていますが、休日は何ですか?
堅牢性プローブ
"この年の英国オフィスの休日?
アサーション (すべてのバリエーションに適用):
- 応答には、英国の銀行休日 (米国の祝日ではない) が一覧表示されます。
- 応答には、少なくとも元旦、イースター、クリスマスが含まれます。
- 応答は、英国のポリシーまたはスケジュールを参照します。
- 応答は、7 月 4 日や感謝祭などの米国の祝日をメンションしません。
避けるパターン
次のプロンプト パターンは避けてください。
マルチインテント プロンプト
マルチインテント プロンプトは避けてください。 プロンプトで複数の意図がカバーされている場合、エラーの原因となった意図を特定できません。
- 避ける: 私のPTO残高は何ですか、そしてあなたは健康保険のオプションについて教えていただけますか、そして私もラップトップが必要になるかもしれませんか?
- 代わりに を使用します。 個別のプロンプトに分割するか、マルチスレッド評価を使用します。
スキーマ対応のプロンプト
スキーマ対応のプロンプトは避けてください。 スキーマ対応のプロンプトは、ユーザーが内部 API やツール名を知らないため、うまく機能しません。
- 避ける: "従業員 ID 12345 の GetPTOBalance API を呼び出す"
- 代わりに を使用します。 「私の現在の休暇の残高は何ですか?
あいまいなプロンプト
あいまいなプロンプトは避けてください。 プロンプトがあいまいな場合、測定可能なアサーションを定義することはできません。
- 避ける: "人事スタッフのサポート"
- 代わりに を使用します。「操作方法歯科保険に加入しますか?
先頭のプロンプト
予想される答えを示唆するプロンプトは、エージェントの本当の推論の有効性をテストしません。
- 避ける: "PTO ポリシーは 15 日と言っています。
- 代わりに を使用します。 「新入社員は何日受け取りますか?
自己完結型でない (1 ターン)
前のコンテキストに依存するプロンプトは避けてください。
- 避ける: "他のオプションはどうですか?
- 代わりに を使用します。 「HMO と PPO の正常性計画の違いは何ですか?
ユーザー シナリオからプロンプトを生成する
機能リストではなく、実際のユーザー意図から始めます。
- 代表的なユーザーの質問を収集します。
- シナリオ別のグループ化 (ポリシー参照、アクション、エスカレーションなど)。
- 各シナリオの標準プロンプトを記述します。
- 自然言語と堅牢性バリアントを追加します。
- 具象データを使用したグラウンド プロンプト。
この方法では、評価に実際の使用状況が反映されます。
AI 支援のプロンプト拡張 (省略可能)
強力なベースラインを確立したら、AI を使用してカバレッジを拡大します。 より多くのバリエーションを提案するように AI に依頼します。 リアリズムと関連性の各提案を確認します。 不自然、スキーマ対応、またはスコープ外のプロンプトを拒否します。 カバレッジを向上させる場所にのみプロンプトを追加します。
カバレッジのチェックリストを確認する
このチェックリストを使用して、プロンプト カバレッジが完了したことを確認します。
機能カバレッジ
- すべてのツールまたはアクションには、少なくとも 1 つのテスト ケースがあります
- すべてのナレッジ ドメインが表されます
- エスカレーションの動作がテストされる
- スコープ外のシナリオがテストされる
バリエーション カバレッジ
- 標準プロンプト
- 自然言語バリアント
- 堅牢性プローブ
エッジ ケース
- 非常に短いプロンプト
- 非常に長いプロンプト
- あいまいな要求
- 不足している情報
- 無効な要求またはサポートされていない要求
個人用設定 (該当する場合)
- さまざまなユーザーの場所
- 異なるテニュアレベル
- さまざまなロールまたは部門