Microsoft 365 Copilot エージェント評価 CLI には、エージェントの応答を自動的にスコア付けする一連の評価機能が含まれています。 各エバリュエーターは、セマンティックな関連性から文字列の正確な一致まで、品質のさまざまな側面を測定します。 この記事では、各エバリュエーター、スコアリング動作、構成オプション、およびテスト データセットで使用する方法について説明します。
データセットでエバリュエーターを構成する方法の詳細については、「 エバリュエーターの構成」を参照してください。
評価データセット スキーマは GitHub で JSON スキーマ形式で確認できます。
評価者の概要
次の表は、使用可能なすべてのエバリュエーターをまとめたものです。
| Evaluator | 型 | [倍率] | 既定のしきい値 | 既定で有効 | 必須フィールド |
|---|---|---|---|---|---|
| 関連性 | LLM ベース | 1-5 | 3 | はい | prompt |
| コヒーレンス | LLM ベース | 1-5 | 3 | はい | prompt |
| グラウンディングネス | LLM ベース | 1-5 | 3 | 不要 | prompt |
| 類似性 | LLM ベース | 1-5 | 3 | 不要 |
prompt, expected_response |
| RetrievalQuery | LLM 以外 | 成功/失敗 | 該当なし | いいえ |
prompt、評価者構成 |
| RetrievalResult | LLM 以外 | 比例 | 1.0 | 不要 |
prompt、評価者構成 |
| 引用 | カウントベース | >= 0 | 1 | 不要 | prompt |
| PartialMatch | 文字列一致 | 0.0-1.0 | 0.5 | 不要 |
prompt, expected_response |
| ExactMatch | 文字列一致 | ブール型 | 該当なし | いいえ |
prompt, expected_response |
LLM ベースの評価者
LLM ベースの評価者は、Microsoft Foundry プロジェクトで (環境変数を使用して構成された) Azure OpenAI モデルを使用して、エージェントの応答の品質を判断します。 これらの評価機能は、Azure AI 評価 SDK を利用しています。 スコアの範囲はリッカート スケールで 1 から 5 で、値が高いほど質が良いことを示します。 既定では、合格するには 3 以上のスコアが必要です。 必要なスコアは、テスト構成で変更できます。
関連性
関連性エバリュエーターは、エージェントの応答がユーザーのクエリにどの程度対応しているかを評価します。 回答が質問に直接的かつ完全に回答しているかどうかを評価します。
- 既定で有効: はい
- スケール: 1-5 (リッカート)
- 既定のしきい値: 3
-
必須フィールド:
prompt - グラウンド トゥルースが必要: いいえ
関連性エバリュエーターは expected_response を必要としません。クエリと応答の関係のみを評価します。
関連性サンプル データセット
{
"schemaVersion": "1.6.0",
"default_evaluators": {
"Relevance": {}
},
"items": [
{
"prompt": "What are the key features of our enterprise plan?",
"expected_response": "The enterprise plan includes advanced security, unlimited storage, 24/7 support, and custom integrations."
}
]
}
コヒーレンス
コヒーレンス評価者は、エージェントの応答におけるアイデアの論理的かつ整然とした提示を測定します。 応答に文間の明確なつながり、適切な移行、および理解しやすい論理的な一連のアイデアがあるかどうかを評価します。
- 既定で有効: はい
- スケール: 1-5 (リッカート)
- 既定のしきい値: 3
-
必須フィールド:
prompt - グラウンド トゥルースが必要: いいえ
コヒーレンス サンプル データセット
{
"schemaVersion": "1.6.0",
"default_evaluators": {
"Coherence": {}
},
"items": [
{
"prompt": "Explain the process for submitting an expense report.",
"expected_response": "To submit an expense report, first collect your receipts. Then open the expense portal, create a new report, attach your receipts, and submit for manager approval."
}
]
}
グラウンディングネス
グラウンディングネス エバリュエーターは、エージェントの応答が、提供されたグラウンディング コンテキストと一致し、それらによってサポートされているかどうかを確認します。 応答に、取得したドキュメントがサポートする内容を超える主張や情報が含まれていないことを検証することで、精度に重点を置きます。
- 既定で有効: いいえ
- スケール: 1-5 (リッカート)
- 既定のしきい値: 3
-
必須フィールド:
prompt、expected_response - グラウンド トゥルースが必要: いいえ
根拠性エバリュエーターを使用して、エージェントの応答に含まれる幻覚や裏付けのない主張を検出します。
グラウンディングネスのサンプル データセット
{
"schemaVersion": "1.6.0",
"default_evaluators": {
"Relevance": {},
"Groundedness": {}
},
"items": [
{
"prompt": "What is our company's remote work policy?",
"expected_response": "Employees can work remotely up to 3 days per week with manager approval."
}
]
}
類似性
類似性エバリュエーターは、エージェントの応答と指定されたexpected_response (グラウンド トゥルース) の間のセマンティックな類似度を測定します。 F1 や Bilingual Evaluation Understudy (BLEU) などのトークンの重複指標とは異なり、表面的な単語の一致ではなく、意味とより広いコンテキストに焦点を当てています。
- 既定で有効: いいえ
- スケール: 1-5 (リッカート)
- 既定のしきい値: 3
-
必須フィールド:
prompt、expected_response - グラウンド トゥルースが必要: はい
類似性エバリュエーターのデータセット アイテムの expected_response を構成する必要があります。
類似性サンプル データセット
{
"schemaVersion": "1.6.0",
"default_evaluators": {
"Similarity": {}
},
"items": [
{
"prompt": "What is Microsoft Graph?",
"expected_response": "Microsoft Graph is a unified API endpoint that provides access to data and intelligence in Microsoft 365 services."
}
]
}
取得エバリュエーター
取得エバリュエーターは、Microsoft 365 Copilot エージェントのエンドツーエンドの取得パイプラインを検証します。 エージェントがユーザー クエリを取得操作に変換する方法と、期待されるリソースが結果に表示されるかどうかを検査します。 これらの評価者は LLM ジャッジを使用せず、取得実行データに対して決定論的なチェックを実行します。
RetrievalQuery
RetrievalQuery エバリュエーターは、Copilot がユーザーの意図を取得しクエリに正しく変換したことを検証します。 正規化されたretrieval_executions[]内のqueryString値を検査し、期待されるパターンと一致していることを確認します。
- 既定で有効: いいえ
- スケール: 成功/失敗
- 既定のしきい値: 該当なし
-
必須フィールド:
prompt、エバリュエーターの構成 - グラウンド トゥルースが必要: いいえ
RetrievalQuery 構成オプション
| オプション | 型 | 必須 | 説明 |
|---|---|---|---|
capability |
string | はい | 検査対象の実行をスコープで指定する取得機能 ( "OneDriveAndSharePoint"、 "Email"、 "GraphConnectors" など)。 |
selector |
string | はい | 取得実行内でターゲット クエリを識別するために使用される、大文字と小文字を区別しない部分文字列。 |
includes |
string | はい | 一致するクエリにすべて出現する必要がある部分文字列。 |
excludes |
string | はい | 一致したクエリに出現してはならない部分文字列。 |
RetrievalQuery サンプル データセット
{
"schemaVersion": "1.6.0",
"items": [
{
"prompt": "Find the Q4 sales report in SharePoint",
"expected_response": "Here is the Q4 sales report.",
"evaluators": {
"RetrievalQuery": {
"capability": "OneDriveAndSharePoint",
"selector": "Q4 sales report",
"includes": ["projections", "profit"],
"excludes": ["FileType:OneNote"]
}
}
}
]
}
RetrievalResult
RetrievalResult エバリュエーターは、取得実行によって返されるドキュメント、メッセージ、およびアイテムに、期待されるリソースが実際に表示されることを検証します。 特定のテキスト スニペットが検索ヒット抽出に構成可能なランクしきい値内にあるかどうかを確認します。
- 既定で有効: いいえ
- スケール: 比例 (0.0-1.0)
- 既定のしきい値: 1.0 (すべてのチェックに合格する必要があります)
-
必須フィールド:
prompt、エバリュエーターの構成 - グラウンド トゥルースが必要: いいえ
スコアは、見つかった予想されるアイテムの数に比例します。 たとえば、3 つの予想される項目のうち 2 つが見つかった場合、得点は 0.67 です。 ただし、パスはすべてのチェックが成功する必要があります (しきい値は常に 1.0)。 少なくとも 1 つ expected_items または min_expected_count を構成する必要があります。
RetrievalResult 構成オプション
| オプション | 型 | 必須 | 説明 |
|---|---|---|---|
expected_items |
配列 | 条件付き | 期待される結果を指定するオブジェクトの配列。 各オブジェクトには、 retrievalExtract_contains (検索ヒット抽出で一致するテキスト スニペット) を含めることができます。 少なくとも 1 つ expected_items または min_expected_count を構成する必要があります。 |
expected_items[].retrievalExtract_contains |
文字列 | いいえ | 検索ヒット抽出に表示する必要があるテキスト スニペット。 |
min_expected_count |
integer | 条件付き | 取得する必要がある結果の最小数。 少なくとも 1 つ expected_items または min_expected_count を構成する必要があります。 |
max_rank |
integer | 不要 | 期待される項目と一致させるときに考慮する最大ランク位置。 既定値は 10 です。 |
RetrievalResult サンプル データセット
{
"schemaVersion": "1.6.0",
"items": [
{
"prompt": "Find recent emails about the Contoso project",
"expected_response": "Here are the recent emails about the Contoso project.",
"evaluators": {
"RetrievalResult": {
"expected_items": [
{ "retrievalExtract_contains": "update" },
{ "retrievalExtract_contains": "budget" }
],
"max_rank": 5,
"min_expected_count": 2
}
}
}
]
}
文字列ベースとカウントベースのエバリュエーター
これらのエバリュエーターは、確定的な文字列の一致またはカウント ロジックを使用します。 LLM は必要なく、ローカルで実行されます。
引用
Citations エバリュエーターは、[1]、[2]、ハイパーリンク形式の引用など、エージェントの応答内の引用文献参照の数をカウントします。 エージェントがそのクレームをソースに適切に帰属させていることを確認します。 しきい値を予想される引用数に設定します。
- 既定で有効: いいえ
- スケール:>= 0 (カウント)
- 既定のしきい値: 1
-
必須フィールド:
prompt - グラウンド トゥルースが必要: いいえ
スコアは引用数と等しく、既定で合格するには少なくとも 1 つの引用が必要です。
引用構成オプション
| オプション | 型 | 必須 | 説明 |
|---|---|---|---|
citation_format |
文字列 | いいえ |
"mixed" など、予想される引用形式を指定します。 |
引用文献サンプル データセット
{
"schemaVersion": "1.6.0",
"items": [
{
"prompt": "What is our return policy?",
"expected_response": "Our return policy allows returns within 30 days [1].",
"evaluators": {
"Citations": {
"threshold": 2,
"citation_format": "mixed"
}
}
}
]
}
PartialMatch
PartialMatch エバリュエーターは、トークン レベルの類似性 (F1 スコア アプローチに類似) を使用して、エージェントの応答とexpected_responseの間のテキストの重複の程度を測定します。 このエバリュエーターは、応答に予想される回答のキー フレーズや情報が含まれていることを期待しているが、逐語的な一致は必要ない場合に役立ちます。
- 既定で有効: いいえ
- スケール: 0.0-1.0
- 既定のしきい値: 0.5
-
必須フィールド:
prompt、expected_response - グラウンド トゥルースが必要: はい
スコアの範囲は 0.0 (重複なし) から 1.0 (完全一致) です。
PartialMatch サンプル データセット
{
"schemaVersion": "1.6.0",
"items": [
{
"prompt": "Who is the CEO of Contoso?",
"expected_response": "The CEO of Contoso is Jane Smith.",
"evaluators": {
"PartialMatch": {}
}
}
]
}
ExactMatch
ExactMatch エバリュエーターは、エージェントの応答と構成されたexpected_responseの間で文字列の直接比較を実行します。 これはブール値の成功または失敗を返します。応答が完全に一致するか一致しないかのどちらかです。 このエバリュエーターは、決定論的または定型的な予想される回答を含むプロンプトに役立ちます。
- 既定で有効: いいえ
- スケール: ブール値 (合格または不合格)
- 既定のしきい値: 該当なし
-
必須フィールド:
prompt、expected_response - グラウンド トゥルースが必要: はい
ExactMatch 構成オプション
| オプション | 型 | 必須 | 説明 |
|---|---|---|---|
case_sensitive |
ブール | 不要 | 比較で大文字と小文字が区別されるかどうかを制御します。 既定値は true です。 |
ExactMatch サンプル データセット
{
"schemaVersion": "1.6.0",
"items": [
{
"prompt": "What is 2 + 2?",
"expected_response": "4",
"evaluators": {
"ExactMatch": { "case_sensitive": false }
}
}
]
}