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

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

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

統合のテスト

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

キャッシュされた応答

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

レポーティング

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

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

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

コンフィギュレーション

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

Samples

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

こちらも参照ください