DeepEval
DeepEval 由 Confident AI 开发,是一个用于测试大型语言模型系统的开源框架。它类似于 Pytest,但专为 LLM 输出设计,评估 G-Eval、幻觉、答案相关性等指标。
DeepEval 可以与 Qdrant 集成,以评估 RAG 管道——确保您的 LLM 应用程序根据检索到的向量搜索上下文返回相关、有依据且忠实的响应。
工作原理
测试用例是 DeepEval 提供的用于对 LLM 输出进行单元测试的蓝图。DeepEval 中有两种类型的测试用例
LLMTestCase:用于评估单个输入-输出对,例如 RAG 响应或代理操作。
ConversationalTestCase:一系列LLMTestCase的轮次,代表与 LLM 系统的来回交互。这对于聊天机器人或助手测试特别有用。
指标概览
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 指标评分来一次评估多个测试用例。