Microsoft.Extensions.AI.Evaluation ライブラリは、.NET インテリジェント アプリの AI モデルによって生成される応答の品質と精度を評価するプロセスを簡略化します。 さまざまなメトリックは、関連性、真実性、一貫性、応答の完全性などの側面を測定します。 評価は、AI モデルが期待どおりに動作し、信頼性の高い正確な結果を提供するために役立つため、テストで重要です。
Microsoft.Extensions.AI 抽象化上に構築された評価ライブラリは、次の NuGet パッケージで構成されます。
- 📦 Microsoft.Extensions.AI.Evaluation – 評価をサポートするためのコア抽象化と型を定義します。
- 📦 Microsoft.Extensions.AI.Evaluation.Quality – 関連性や完全性などのメトリックに従ってアプリ内の LLM 応答の品質を評価するエバリュエーターが含まれています。 これらのエバリュエーターは、LLM を直接使用して評価を実行します。
-
📦 Microsoft.Extensions.AI.Evaluation.Safety –
ProtectedMaterialEvaluator
Evaluation サービスを使用して評価を実行する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 test、CI/CD パイプラインなど) を使用できます。 また、このライブラリには、評価スコアをテレメトリと監視ダッシュボードに発行することで、アプリケーションのオンライン評価を行う簡単な方法も用意されています。
包括的な評価メトリック
評価ライブラリは、Microsoft および GitHub のデータ サイエンス研究者と共同で構築され、一般的な Microsoft Copilot エクスペリエンスでテストされました。 次のセクションでは、組み込みの 品質 および 安全性 エバリュエーターと、それらが測定するメトリックを示します。
IEvaluator インターフェイスを実装することで、独自の評価を追加するようにカスタマイズすることもできます。
品質評価者
品質エバリュエーターは、応答品質を測定します。 LLM を使用して評価を実行します。
エバリュエーターの種類 | メトリック | 説明 |
---|---|---|
RelevanceEvaluator | Relevance |
クエリに対する応答の関連性を評価します |
CompletenessEvaluator | Completeness |
応答がどの程度包括的で正確であるかを評価します |
RetrievalEvaluator | Retrieval |
追加のコンテキストの情報を取得する際のパフォーマンスを評価します |
FluencyEvaluator | Fluency |
文法の精度、ボキャブラリ範囲、文の複雑さ、および全体的な読みやすさを評価します |
CoherenceEvaluator | Coherence |
アイデアの論理的で順序の整ったプレゼンテーションを評価します |
EquivalenceEvaluator | Equivalence |
生成されたテキストと、クエリに対する参照データの類似性を評価します。 |
GroundednessEvaluator | Groundedness |
生成された応答が特定のコンテキストとどの程度一致しているかを評価します |
RelevanceTruthAndCompletenessEvaluator† |
Relevance (RTC) 、Truth (RTC) 、Completeness (RTC) |
応答の関連性、真実性、完了度を評価します |
† このエバリュエーターは 試験段階としてマークされています。
安全エバリュエーター
安全エバリュエーターは、応答に有害、不適切、または安全でないコンテンツが存在するかどうか確認します。 評価を実行するために微調整されたモデルを使用する Azure AI Foundry Evaluation サービスに依存しています。
エバリュエーターの種類 | メトリック | 説明 |
---|---|---|
GroundednessProEvaluator | Groundedness Pro |
Azure AI 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
パッケージの一部として提供され、レポートを生成し、保存された評価データとキャッシュされた応答を管理するための機能を備えています。 詳細については、「レポートの生成」を参照してください。
コンフィギュレーション
ライブラリは柔軟に設計されています。 必要なコンポーネントを選択できます。 たとえば、応答キャッシュを無効にしたり、環境内で最適に動作するようにレポートを調整したりできます。 たとえば、カスタマイズされたメトリックとレポート オプションを追加することで、評価をカスタマイズおよび構成することもできます。
サンプル
Microsoft.Extensions.AI.Evaluation ライブラリで利用できる機能と API のより包括的なツアーについては、API の使用例 (dotnet/ai-samples リポジトリ)を参照してください。 これらの例は、単体テストのコレクションとして構成されています。 各単体テストでは、特定の概念または API を紹介し、前の単体テストで紹介した概念と API に基づいて構築されています。
こちらもご覧ください
.NET