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 指标评分,一次性评估多个测试用例。