DeepEvalEvaluator
DeepEvalEvaluator 使用基于 LLM 的指标来评估 Haystack 管道。它支持诸如答案相关性、忠实度、上下文相关性等指标。
| pipeline 中的最常见位置 | 单独使用或在评估管道中使用。应在单独的管道生成 Evaluator 的输入后使用。 |
| 必需的初始化变量 | “metric”:“要用于评估的 DeepEval 指标之一” |
| 强制运行变量 | “**inputs”:“一个包含预期输入的关键字参数字典。预期输入将根据您正在评估的指标而变化。有关更多详细信息,请参见下文。” |
| 输出变量 | “results”:“一个指标结果的嵌套列表。根据指标,可以有一个或多个结果。每个结果都是一个字典,其中包含:” - name - 指标的名称 -score - 指标的分数 -explanation - 分数的可选解释 |
| API 参考 | DeepEval |
| GitHub 链接 | https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/deepeval |
DeepEval 是一个提供一系列基于 LLM 的评估指标的评估框架。您可以使用DeepEvalEvaluator 组件来评估 Haystack 管道,例如检索增强生成管道,针对 DeepEval 提供的指标之一。
支持的指标
DeepEval 支持许多指标,我们通过 DeepEval 指标枚举 提供。Haystack 中的 DeepEvalEvaluator 支持以下列表中的指标,并在初始化 Evaluator 时具有预期的metric_params。许多指标使用 OpenAI 模型,并要求您设置环境变量OPENAI_API_KEY。有关这些指标的完整指南,请访问 DeepEval 文档。
| 指标 | 指标参数 | 预期输入 | 指标描述 |
|---|---|---|---|
ANSWER_RELEVANCY | model: str | questions: List[str], contexts: List[List[str]], responses: List[str] | 评估答案与指定问题的相关性。 |
FAITHFULNESS | model: str | questions: List[str], contexts: List[List[str]], responses: List[str] | 评估生成响应的事实性。 |
CONTEXTUAL_PRECISION | model: str | questions: List[str], contexts: List[List[str]], responses: List[str],ground_truths: List[str] | 评估答案是否包含与所提问题无关的附加信息。 |
CONTEXTUAL_RECALL | model: str | questions: List[str], contexts: List[List[str]], responses: List[str],ground_truths: List[str] | 评估生成响应对于指定问题的完整性。 |
CONTEXTUAL_RELEVANCE | model: str | questions: List[str], contexts: List[List[str]], responses: List[str] | 评估所提供上下文与指定问题的相关性。 |
参数概述
初始化DeepEvalEvaluator,您需要提供以下参数:
metric:一个DeepEvalMetric.metric_params:如果指标需要其他参数,您可以选择在此处提供。
用法
要使用DeepEvalEvaluator,您需要先安装集成。
pip install deepeval-haystack
要使用DeepEvalEvaluator,您需要遵循以下步骤:
- 初始化
DeepEvalEvaluator,同时为要使用的指标提供正确的metric_params。 - 运行
DeepEvalEvaluator,方法是提供您正在使用的指标的预期输入,可以单独使用或在管道中使用。
示例
评估忠实度
创建忠实度评估管道
from haystack import Pipeline
from haystack_integrations.components.evaluators.deepeval import DeepEvalEvaluator, DeepEvalMetric
pipeline = Pipeline()
evaluator = DeepEvalEvaluator(
metric=DeepEvalMetric.FAITHFULNESS,
metric_params={"model": "gpt-4"},
)
pipeline.add_component("evaluator", evaluator)
要运行评估管道,您应该准备好指标的*预期输入*。此指标需要一系列questions 和contexts。这些应该来自您想要评估的管道的结果。
results = pipeline.run({"evaluator": {"questions": ["When was the Rhodes Statue built?", "Where is the Pyramid of Giza?"],
"contexts": [["Context for question 1"], ["Context for question 2"]],
"responses": ["Response for queston 1", "Reponse for question 2"]}})
其他参考资料
🧑🍳 食谱:使用 DeepEval 进行 RAG 管道评估
更新于 大约 1 年前
