Microsoft.Extensions.AI.Evaluation 库

Microsoft.Extensions.AI.Evaluation 库简化了评估 .NET 智能应用中 AI 模型生成的响应的质量和准确性的过程。 各种指标度量响应的相关性、真实性、一致性和完整性等方面。 评估在测试中至关重要,因为它们有助于确保 AI 模型按预期执行,并提供可靠且准确的结果。

基于 Microsoft.Extensions.AI 抽象构建的评估库由以下 NuGet 包组成:

测试集成

这些库旨在与现有的 .NET 应用顺利集成,使你能够利用现有的测试基础结构和熟悉的语法来评估智能应用。 可以使用任何测试框架(例如 MSTestxUnitNUnit)和测试工作流(例如 测试资源管理器dotnet 测试或 CI/CD 管道)。 该库还提供简单的方法,通过向遥测和监视仪表板发布评估分数来对应用程序进行联机评估。

综合评估指标

评估库是与来自 Microsoft 和 GitHub 的数据科学研究人员合作构建的,在流行的Microsoft Copilot 体验中进行了测试。 以下部分显示了内置的质量和安全评估程序及其度量的指标。

您还可以实现 IEvaluator 接口来定制和添加您自己的评估。

质量评估器

质量评估者评估响应质量。 它们使用 LLM 来执行评估。

评估者类型 指标 DESCRIPTION
RelevanceEvaluator Relevance 评估响应与查询的相关性
CompletenessEvaluator Completeness 评估响应的综合性和准确程度
RetrievalEvaluator Retrieval 评估检索附加上下文信息时的性能
FluencyEvaluator Fluency 评估语法准确性、词汇范围、句子复杂性和整体可读性
CoherenceEvaluator Coherence 评估思想的逻辑和有序呈现
EquivalenceEvaluator Equivalence 评估生成的文本与其真实值相对于查询的相似性
GroundednessEvaluator Groundedness 评估生成的响应与给定上下文的对齐程度
RelevanceTruthAndCompletenessEvaluator Relevance (RTC)Truth (RTC)Completeness (RTC) 评估响应的相关、真实和完成程度

†此评估器标记为 实验性

安全评估员

安全评估程序检查响应中是否存在有害、不当或不安全的内容。 它们依赖于 Azure AI Foundry 评估服务,该服务使用经过微调的模型来执行评估。

评估者类型 指标 DESCRIPTION
GroundednessProEvaluator Groundedness Pro 使用 Azure AI Foundry 评估服务后面托管的微调模型来评估生成的响应与给定上下文的一致程度
ProtectedMaterialEvaluator Protected Material 对响应进行评估,以确定是否存在受保护材料
UngroundedAttributesEvaluator Ungrounded Attributes 评估响应中是否存在表明人类属性没有依据推断的内容。
HateAndUnfairnessEvaluator Hate And Unfairness 评估响应中是否存在仇恨或不公平的内容
SelfHarmEvaluator Self Harm 评估响应中是否存在显示自我伤害的内容
ViolenceEvaluator Violence 评估响应中是否存在暴力内容
SexualEvaluator Sexual 评估内容中是否存在性信息
CodeVulnerabilityEvaluator Code Vulnerability 评估响应中是否存在易受攻击的代码
IndirectAttackEvaluator Indirect Attack 评估响应中是否存在间接攻击,例如被操控的内容、入侵和信息收集

此外,ContentHarmEvaluatorHateAndUnfairnessEvaluatorSelfHarmEvaluatorViolenceEvaluator以及SexualEvaluator支持的四个指标提供单次评估。

缓存的响应

该库使用 响应缓存 功能,这意味着来自 AI 模型的响应保存在缓存中。 在后续运行中,如果请求参数(提示和模型)保持不变,则会从缓存中提供响应,以实现更快的执行和更低的成本。

报告

该库包含对存储评估结果和生成报表的支持。 下图显示了 Azure DevOps 管道中的示例报表:

Azure DevOps 管道中 AI 评估报表的屏幕截图。

该工具 dotnet aieval 作为包的 Microsoft.Extensions.AI.Evaluation.Console 一部分提供,包括生成报表和管理存储的评估数据和缓存响应的功能。 有关详细信息,请参阅 “生成报表”。

配置

这些库的设计具有灵活性。 可以选择所需的组件。 例如,可以禁用响应缓存或定制报告,以便在环境中效果最佳。 还可以通过添加自定义指标和报告选项来自定义和配置评估。

示例

有关 Microsoft.Extensions.AI.Evaluation 库中提供的功能和 API 的更全面介绍,请参阅 API 用法示例(dotnet/ai-samples 存储库)。 这些示例的结构是单元测试的集合。 每个单元测试都展示一个特定的概念或 API,并基于之前单元测试中展示的概念和 API。

另请参阅