DeepEval

DeepEval 由 Confident AI 开发,是一个用于测试大型语言模型系统的开源框架。类似于 Pytest,但专为 LLM 输出设计,它评估 G-Eval、幻觉、答案相关性等指标。

DeepEval 可以与 Qdrant 集成,以评估 RAG 管道——确保您的 LLM 应用程序基于检索到的向量搜索上下文返回相关、有根据且忠实的响应。

工作原理

测试用例是 DeepEval 提供的用于单元测试 LLM 输出的蓝图。DeepEval 中有两种类型的测试用例:

LLMTestCase: 用于评估单个输入-输出对,例如 RAG 响应或智能体操作。

ConversationalTestCase: 表示与 LLM 系统来回交互的一系列 LLMTestCase 回合。这对于聊天机器人或助手测试特别有用。

指标概述

DeepEval 提供了一套指标,用于评估 LLM 输出的各个方面,包括:

  • 答案相关性: 衡量 LLM 的输出与给定输入查询的相关程度。
  • 忠实性: 评估 LLM 的响应是否基于提供的上下文,确保事实准确性。
  • 上下文精确度: 确定最相关的上下文片段是否排名高于不太相关的片段。
  • G-Eval: 一种通用指标,使用 LLM 作为评判者,结合思维链推理,根据自定义标准评估输出。
  • 幻觉: 检测 LLM 生成源上下文中不存在的信息的情况。
  • 毒性: 评估 LLM 输出中是否存在有害或冒犯性内容。
  • 偏见: 评估输出中是否存在任何无意的偏见。
  • 摘要: 衡量生成的摘要的质量和准确性。

有关所有可用指标的完整列表和详细说明,请参阅DeepEval 指标参考

将 Qdrant 与 DeepEval 结合使用

安装客户端库。

$ pip install deepeval qdrant-client

$ deepeval login

您可以使用 Qdrant 为您的 RAG 系统提供支持,通过检索查询相关的文档,将其馈送到您的提示中,并使用 DeepEval 评估生成的输出。

from deepeval.test_case import LLMTestCase, ConversationalTestCase
from deepeval.metrics import AnswerRelevancyMetric, FaithfulnessMetric, ...

# 1. Query context from Qdrant
context = qdrant_client.query_points(...)

# 2. Construct prompt using query + retrieved context
prompt = build_prompt(query, context)

# 3. Generate response from your LLM
response = llm.generate(prompt)

# 4. Create a test case for evaluation
test_case = LLMTestCase(
    input=query,
    actual_output=response,
    expected_output=ground_truth_answer,
    retrieval_context=context
)

# 5. Evaluate the output using DeepEval
evaluate(
    test_cases=[test_case],
    metrics=[
        AnswerRelevancyMetric(),
        FaithfulnessMetric(),
        ContextualPrecisionMetric(),
        ...
    ],
)

所有使用 DeepEval 执行的评估都可以在Confident AI 控制面板上查看。

您可以使用数据集(例如来自 Hugging Face 的数据集)来扩展此过程,通过循环遍历问答对、查询 Qdrant 获取上下文并使用 DeepEval 指标评分,一次性评估多个测试用例。

延伸阅读

此页面有用吗?

感谢您的反馈!🙏

很抱歉听到这个消息。😔 您可以在 GitHub 上编辑此页面,或创建一个 GitHub Issue。