Microsoft.Extensions.AI.Evaluation ライブラリを使用すると、.NET インテリジェントアプリにおける AI モデルが生成した応答の品質と安全性を評価するプロセスが簡略化されます。 さまざまな品質メトリックは、関連性、真実性、一貫性、応答の完全性などの側面を測定します。 安全メトリックは、ヘイトや不公平、暴力、性的コンテンツなどの側面を測定します。 評価は、AI モデルが期待どおりに動作し、信頼性の高い正確な結果を提供するために役立つため、テストで重要です。
Microsoft.Extensions.AI 抽象化に基づく評価ライブラリは、次の NuGet パッケージで構成されます。
- 📦 Microsoft。Extensions.AI.Evaluation – 評価をサポートするためのコア抽象化と型を定義します。
- 📦 Microsoft。Extensions.AI.Evaluation.NLP - 自然言語処理 (NLP) メトリックを使用して LLM の応答テキストと 1 つ以上の参照応答の類似性を評価する evaluators が含まれています。 これらのエバリュエーターは LLM または AI ベースではありません。テキスト トークン化や n グラム分析などの従来の NLP 手法を使用して、テキストの類似性を評価します。
- 📦 Microsoft。Extensions.AI.Evaluation.Quality – 関連性や完全性などのメトリックに従ってアプリ内の LLM 応答の品質を評価する evaluators が含まれています。 これらのエバリュエーターは、LLM を直接使用して評価を実行します。
-
📦 Microsoft.Extensions.AI.Evaluation.Safety – Microsoft Foundry 評価サービスを使用して評価を実行する
ProtectedMaterialEvaluator、ContentHarmEvaluatorや などが含まれます。 - 📦 Microsoft。Extensions.AI.Evaluation.Reporting – LLM 応答のキャッシュ、評価結果の格納、そのデータからのレポートの生成のサポートが含まれています。
- 📦 Microsoft。Extensions.AI.Evaluation.Reporting。Azure - LLM 応答をキャッシュし、評価結果を Azure Storage コンテナーに格納するための実装でレポート ライブラリをサポートします。
- 📦 Microsoft。Extensions.AI.Evaluation.Console – レポートを生成し、評価データを管理するためのコマンド ライン ツールです。
統合のテスト
ライブラリは既存の.NET アプリとスムーズに統合され、既存のテスト インフラストラクチャと使い慣れた構文を使用してインテリジェント なアプリを評価できます。 任意のテスト フレームワーク ( MSTest、 xUnit、 NUnit など) とテスト ワークフロー ( テスト エクスプローラー、 dotnet テスト、CI/CD パイプラインなど) を使用できます。 また、このライブラリには、評価スコアをテレメトリと監視ダッシュボードに発行することで、アプリケーションのオンライン評価を行う簡単な方法も用意されています。
包括的な評価メトリック
評価ライブラリは、MicrosoftおよびGitHubのデータ サイエンス研究者と共同で構築され、一般的なMicrosoft Copilotエクスペリエンスでテストされました。 次のセクションでは、組み込みの 品質、 NLP、および 安全性 エバリュエーターと、それらが測定するメトリックを示します。
独自の評価を追加するには、 IEvaluator インターフェイスを実装します。
品質評価者
品質エバリュエーターは、応答品質を測定します。 LLM を使用して評価を実行します。
| エバリュエーターの種類 | メトリック | Description |
|---|---|---|
| RelevanceEvaluator | Relevance |
クエリに対する応答の関連性を評価します |
| CompletenessEvaluator | Completeness |
応答がどの程度包括的で正確であるかを評価します |
| RetrievalEvaluator | Retrieval |
追加のコンテキストの情報を取得する際のパフォーマンスを評価します |
| FluencyEvaluator | Fluency |
文法の精度、ボキャブラリ範囲、文の複雑さ、および全体的な読みやすさを評価します |
| CoherenceEvaluator | Coherence |
アイデアの論理的で順序の整ったプレゼンテーションを評価します |
| EquivalenceEvaluator | Equivalence |
クエリに関して生成されたテキストと真実のデータの類似性を評価します |
| GroundednessEvaluator | Groundedness |
生成された応答が特定のコンテキストとどの程度一致しているかを評価します |
| RelevanceTruthAndCompletenessEvaluator† |
Relevance (RTC)、Truth (RTC)、Completeness (RTC) |
応答の関連性、真実性、完了度を評価します |
| IntentResolutionEvaluator | Intent Resolution |
ユーザーの意図を特定して解決する際の AI システムの有効性を評価します (エージェントに重点を置く) |
| TaskAdherenceEvaluator | Task Adherence |
割り当てられたタスクに準拠する際の AI システムの有効性を評価します (エージェントに重点を置く) |
| ToolCallAccuracyEvaluator | Tool Call Accuracy |
提供されたツールを使用する際の AI システムの有効性を評価します (エージェントに重点を置く) |
† このエバリュエーターは 試験段階としてマークされています。
NLP 評価者
NLP エバリュエーターは、自然言語処理 (NLP) 手法を使用して、LLM 応答と参照応答を比較することで、LLM 応答の品質を評価します。 これらのエバリュエーターは LLM または AI ベースではありません。代わりに、古い NLP 手法を使用してテキスト比較を実行します。
| エバリュエーターの種類 | メトリック | Description |
|---|---|---|
| BLEUEvaluator | BLEU |
2 か国語の評価アンダースチューディ (BLEU) アルゴリズムを使用して、応答を 1 つ以上の参照応答と比較して評価します。 このアルゴリズムは、機械翻訳またはテキスト生成タスクの品質を評価するために一般的に使用されます。 |
| GLEUEvaluator | GLEU |
文レベルの評価用に最適化された BLEU アルゴリズムの一種である Google BLEU (GLEU) アルゴリズムを使用して、生成された応答と 1 つ以上の参照応答の類似性を測定します。 |
| F1Evaluator | F1 |
F1 スコアリング アルゴリズム (生成された応答と参照応答の間の共有単語数の比率) を使用して、応答を参照応答と比較して評価します。 |
安全エバリュエーター
安全エバリュエーターは、有害、不適切、または安全でないコンテンツが応答に存在するかどうか確認します。 Foundry Evaluation サービスに依存しています。このサービスでは、微調整されたモデルを使用して評価を実行します。
| エバリュエーターの種類 | メトリック | Description |
|---|---|---|
| GroundednessProEvaluator | Groundedness Pro |
Foundry Evaluation サービスの背後でホストされている微調整されたモデルを使用して、生成された応答が特定のコンテキストにどの程度合っているかを評価します |
| ProtectedMaterialEvaluator | Protected Material |
保護された材料の存在に対する応答を評価します |
| UngroundedAttributesEvaluator | Ungrounded Attributes |
人間の属性の非固定推論を示すコンテンツの存在に対する応答を評価します |
| HateAndUnfairnessEvaluator† | Hate And Unfairness |
ヘイトフルまたは不公平なコンテンツの存在に対する応答を評価します |
| SelfHarmEvaluator† | Self Harm |
自傷行為を示すコンテンツの存在に対する応答を評価します |
| ViolenceEvaluator† | Violence |
暴力コンテンツの存在に対する応答を評価します |
| SexualEvaluator† | Sexual |
性的コンテンツの存在に対する応答を評価します |
| CodeVulnerabilityEvaluator | Code Vulnerability |
脆弱なコードが存在する場合の応答を評価します |
| IndirectAttackEvaluator | Indirect Attack |
操作されたコンテンツ、侵入、情報収集など、間接的な攻撃の存在に対する応答を評価します |
†さらに、 ContentHarmEvaluator は、 HateAndUnfairnessEvaluator、 SelfHarmEvaluator、 ViolenceEvaluator、および SexualEvaluatorでサポートされる 4 つのメトリックに対してシングルショット評価を提供します。
キャッシュされた応答
ライブラリでは 、応答キャッシュ機能を 使用して、AI モデルからの応答をキャッシュに保持します。 後続の実行では、要求パラメーター (プロンプトとモデル) が変更されていない場合は、キャッシュからの応答を処理して、実行時間を短縮し、コストを削減します。
レポーティング
このライブラリでは、評価結果の格納とレポートの生成がサポートされています。 次の図は、Azure DevOps パイプラインのレポートの例を示しています。
dotnet aieval パッケージの一部として付属する Microsoft.Extensions.AI.Evaluation.Console ツールには、レポートを生成し、保存されている評価データとキャッシュされた応答を管理するための機能が含まれています。 詳細については、「 レポートの生成」を参照してください。
コンフィギュレーション
ライブラリは柔軟であり、必要なコンポーネントを選択できます。 たとえば、応答キャッシュを無効にしたり、環境内で最適に動作するようにレポートを調整したりします。 たとえば、カスタマイズされたメトリックとレポート オプションを追加することで、評価をカスタマイズおよび構成することもできます。
Samples
Microsoft.Extensions.AI.Evaluation ライブラリの機能と API についてより包括的に知るには、API 使用例 (dotnet/ai-samples リポジトリ)をご覧ください。 これらの例は、単体テストのコレクションです。 各単体テストでは、特定の概念または API を紹介し、前の単体テストで紹介した概念と API に基づいて構築されています。
こちらも参照ください
.NET