Microsoft 365 Copilot エージェント評価 CLI には、エージェントの応答を自動的にスコア付けするエバリュエーターのセットが含まれています。 各エバリュエーターは、セマンティック関連性から正確な文字列照合まで、品質の異なる側面を測定します。 この記事では、各エバリュエーター、そのスコアリング動作、構成オプション、およびテスト データセットでの使用方法について説明します。
データセットでエバリュエーターを構成する方法については、「エバリュ エーターの構成」を参照してください。
評価データセット スキーマは、GitHub の JSON スキーマ形式で確認できます。
エバリュエーターの概要
次の表は、使用可能なすべてのエバリュエーターをまとめたものです。
| エバリュエーター | 型 | [倍率] | 既定のしきい値 | 既定で有効 | 必須フィールド |
|---|---|---|---|---|---|
| 関連性 | LLM ベース | 1-5 | 3 | はい | prompt |
| コヒーレンス | LLM ベース | 1-5 | 3 | はい | prompt |
| 接地性 | LLM ベース | 1-5 | 3 | 不要 | prompt |
| 類似 | LLM ベース | 1-5 | 3 | 不要 |
prompt, expected_response |
| RetrievalQuery | LLM 以外 | Pass/fail | 該当なし | いいえ |
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 ベースのエバリュエーターは、Azure OpenAI モデル (環境変数を使用して構成) を使用して、エージェントの応答の品質を判断します。 これらのエバリュエーターには、Azure AI 評価 SDK が搭載されています。 Likert スケールのスコアの範囲は 1 から 5 です。値が高いほど品質が高いことを示します。 既定では、渡すには 3 以上のスコアが必要です。 テスト構成で必要なスコアを変更できます。
関連性
Relevance エバリュエーターは、エージェントの応答がユーザーのクエリにどの程度対応しているかを評価します。 応答が直接、質問された質問に完全に回答するかどうかを評価します。
- 既定で有効になっています。 はい
- スケール: 1 から 5 (Likert)
- 既定のしきい値: 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 (Likert)
- 既定のしきい値: 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."
}
]
}
接地性
Groundedness エバリュエーターは、エージェントの応答が、提供された接地コンテキストと一致し、サポートされているかどうかを確認します。 応答に、取得したドキュメントのサポートを超える要求や情報が含まれていないことを確認することで、精度に焦点を当てます。
- 既定で有効になっています。 いいえ
- スケール: 1 から 5 (Likert)
- 既定のしきい値: 3
-
必須フィールド:
prompt、expected_response - 必要な地上の真実: いいえ
エージェントの応答で幻覚またはサポートされていない要求を検出するには、Groundedness エバリュエーターを使用します。
グラウンドのサンプル データセット
{
"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 やバイリンガル評価アンダーズディ (BLEU) などのトークン重複メトリックとは異なり、Surface レベルの単語の一致ではなく、意味とより広いコンテキストに焦点を当てます。
- 既定で有効になっています。 いいえ
- スケール: 1 から 5 (Likert)
- 既定のしきい値: 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
SearchQuery エバリュエーターは、Copilot がユーザー意図を取得クエリに正しく変換したことを検証します。 正規化されたretrieval_executions[]内のqueryString値を検査し、期待されるパターンと一致することを確認します。
- 既定で有効になっています。 いいえ
- スケール: Pass/fail
- 既定のしきい値: N/a
-
必須フィールド:
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 を必要とせず、ローカルで実行します。
引用
引用エバリュエーターは、[1]、[2]、ハイパーリンクスタイルの引用文献など、エージェントの応答内の引用文献の数をカウントします。 エージェントが要求をソースに適切に属性付けしていることを確認します。 しきい値を予想される引用数に設定します。
- 既定で有効になっています。 いいえ
- Scale:>= 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との間で直接文字列比較を実行します。 ブール値の成功または失敗を返します。応答が正確に一致するか、一致しません。 このエバリュエーターは、決定論的または数式的に予想される回答を含むプロンプトに役立ちます。
- 既定で有効になっています。 いいえ
- スケール: ブール値 (成功または失敗)
- 既定のしきい値: N/a
-
必須フィールド:
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 }
}
}
]
}