跳到内容

指标概述

指标是用于评估 AI 应用性能的定量度量。指标有助于评估应用及其构成组件相对于给定测试数据的表现。它们为整个应用开发和部署过程中的比较、优化和决策提供了数值基础。指标对于以下方面至关重要:

  1. 组件选择:指标可用于比较 AI 应用的不同组件,如 LLM、检索器、代理配置等,并结合您自己的数据从不同选项中选择最佳组件。
  2. 错误诊断和调试:指标有助于识别应用中导致错误或性能不佳的部分,从而更轻松地进行调试和优化。
  3. 持续监控和维护:指标能够跟踪 AI 应用随时间变化的性能,有助于检测和应对数据漂移、模型退化或用户需求变化等问题。

不同类型的指标

Component-wise Evaluation
指标思维导图

指标可以根据其底层使用的机制分为两类::

     基于 LLM 的指标:这些指标在底层使用 LLM 进行评估。可能需要执行一次或多次 LLM 调用才能得出分数或结果。这些指标可能有些非确定性,因为 LLM 对于相同的输入不一定总是返回相同的结果。另一方面,这些指标已显示出与人工评估更准确、更接近。

ragas 中所有基于 LLM 的指标都继承自 MetricWithLLM 类。这些指标在评分前需要设置一个 LLM 对象。

from ragas.metrics import FactualCorrectness
scorer = FactualCorrectness(llm=evaluation_llm)

每个基于 LLM 的指标还会有与其相关的提示,这些提示使用 提示对象 编写。

     非基于 LLM 的指标:这些指标在底层不使用 LLM 进行评估。这些指标是确定性的,可以在不使用 LLM 的情况下评估 AI 应用的性能。这些指标依赖于传统方法来评估 AI 应用的性能,例如字符串相似度、BLEU 分数等。因此,这些指标与人工评估的相关性较低。

ragas 中所有非基于 LLM 的指标都继承自 Metric 类。

指标可以根据其评估的数据类型大致分为两类::

     单轮指标:这些指标基于用户和 AI 之间的一次交互来评估 AI 应用的性能。ragas 中所有支持单轮评估的指标都继承自 SingleTurnMetric 类,并使用 single_turn_ascore 方法进行评分。它还需要一个 Single Turn Sample 对象作为输入。

from ragas.metrics import FactualCorrectness

scorer = FactualCorrectness()
await scorer.single_turn_ascore(sample)

     多轮指标:这些指标基于用户和 AI 之间的多次交互来评估 AI 应用的性能。ragas 中所有支持多轮评估的指标都继承自 MultiTurnMetric 类,并使用 multi_turn_ascore 方法进行评分。它还需要一个 Multi Turn Sample 对象作为输入。

from ragas.metrics import AgentGoalAccuracy
from ragas import MultiTurnSample

scorer = AgentGoalAccuracy()
await scorer.multi_turn_ascore(sample)

指标设计原则

为 AI 应用设计有效的指标需要遵循一套核心原则,以确保其可靠性、可解释性和相关性。以下是我们在 ragas 中设计指标时遵循的五个关键原则:

1. 单一方面聚焦
单一指标应仅针对 AI 应用性能的一个特定方面。这确保了指标既可解释又可操作,为衡量内容提供了清晰的见解。

2. 直观且可解释
指标应设计得易于理解和解释。清晰直观的指标使得沟通结果和得出有意义的结论变得更简单。

3. 有效的提示流程
使用大型语言模型 (LLM) 开发指标时,请使用与人工评估紧密对齐的智能提示流程。将复杂任务分解为带有特定提示的较小子任务可以提高指标的准确性和相关性。

4. 鲁棒性
确保基于 LLM 的指标包含足够的少样本示例,以反映预期结果。这通过为 LLM 提供遵循的上下文和指导来增强指标的鲁棒性。

5. 一致的评分范围
规范化指标得分值或确保它们落在特定范围(例如 0 到 1)内至关重要。这有助于比较不同的指标,并有助于在整个评估框架中保持一致性和可解释性。

这些原则是创建不仅有效,而且在评估 AI 应用时实用且有意义的指标的基础。