次の方法で共有


Microsoft.Extensions.AI.Evaluation ライブラリ

Microsoft.Extensions.AI.Evaluation ライブラリは、.NET インテリジェント アプリの AI モデルによって生成される応答の品質と精度を評価するプロセスを簡略化します。 さまざまなメトリックは、関連性、真実性、一貫性、応答の完全性などの側面を測定します。 評価は、AI モデルが期待どおりに動作し、信頼性の高い正確な結果を提供するために役立つため、テストで重要です。

Microsoft.Extensions.AI 抽象化上に構築された評価ライブラリは、次の NuGet パッケージで構成されます。

テストの統合

ライブラリは、既存の .NET アプリとスムーズに統合するように設計されているため、既存のテスト インフラストラクチャと使い慣れた構文を活用してインテリジェント なアプリを評価できます。 任意のテスト フレームワーク (MSTest xUnitNUnitなど) とテスト ワークフロー (テスト エクスプローラー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 は、 HateAndUnfairnessEvaluatorSelfHarmEvaluatorViolenceEvaluator、および SexualEvaluatorでサポートされる 4 つのメトリックに対してシングルショット評価を提供します。

キャッシュされた応答

ライブラリは、応答キャッシュ 機能を使用します。つまり、AI モデルからの応答はキャッシュに保持されます。 後続の実行では、要求パラメーター (プロンプトとモデル) が変更されていない場合、応答がキャッシュから提供され、実行時間が短縮され、コストが削減されます。

レポーティング

ライブラリには、評価結果の格納とレポートの生成のサポートが含まれています。 次の図は、Azure DevOps パイプラインのレポートの例を示しています。

Azure DevOps パイプラインの AI 評価レポートのスクリーンショット。

dotnet aieval ツールは、Microsoft.Extensions.AI.Evaluation.Console パッケージの一部として提供され、レポートを生成し、保存された評価データとキャッシュされた応答を管理するための機能を備えています。 詳細については、「レポートの生成」を参照してください。

コンフィギュレーション

ライブラリは柔軟に設計されています。 必要なコンポーネントを選択できます。 たとえば、応答キャッシュを無効にしたり、環境内で最適に動作するようにレポートを調整したりできます。 たとえば、カスタマイズされたメトリックとレポート オプションを追加することで、評価をカスタマイズおよび構成することもできます。

サンプル

Microsoft.Extensions.AI.Evaluation ライブラリで利用できる機能と API のより包括的なツアーについては、API の使用例 (dotnet/ai-samples リポジトリ)を参照してください。 これらの例は、単体テストのコレクションとして構成されています。 各単体テストでは、特定の概念または API を紹介し、前の単体テストで紹介した概念と API に基づいて構築されています。

こちらもご覧ください