agentic_huge_data_base / wiki
页面 LightRAG · 8.4 RAG 质量评估·DeepWiki 中文全文译文

8.4 · RAG 质量评估(RAG Quality Evaluation)

轻量图谱增强检索 · 聚焦本章的模块关系、源码依据与实现要点。

项目LightRAG 章节8.4 状态全文译文 模块模型调用与提供方适配、配置治理、检索、召回与索引、接口与服务契约
源码线索
  • lightrag/api/routers/ollama_api.py
  • lightrag/api/routers/query_routes.py
  • lightrag/evaluation/__init__.py
  • lightrag/evaluation/eval_rag_quality.py
  • lightrag/evaluation/sample_dataset.json
  • lightrag/evaluation/sample_documents/01_lightrag_overview.md
  • lightrag/evaluation/sample_documents/02_rag_architecture.md
  • lightrag/evaluation/sample_documents/03_lightrag_improvements.md
  • lightrag/evaluation/sample_documents/04_supported_databases.md
  • lightrag/evaluation/sample_documents/05_evaluation_and_deployment.md
模块标签
  • 模型调用与提供方适配
  • 配置治理
  • 检索、召回与索引
  • 接口与服务契约
  • 界面与交互

章节正文

RAG 质量评估

此页面内容来自 DeepWiki 重组后的对应页面(来源:9-1.zh.md)

RAG 质量评估

相关源文件

本章引用的主要源码文件:

  • lightrag/evaluation/README_EVALUASTION_RAGAS.md
  • lightrag/evaluation/__init__.py
  • lightrag/evaluation/eval_rag_quality.py
  • lightrag/evaluation/offline_retrieval_check.py
  • lightrag/evaluation/sample_dataset.json
  • lightrag/evaluation/sample_documents/01_lightrag_overview.md
  • lightrag/evaluation/sample_documents/02_rag_architecture.md
  • lightrag/evaluation/sample_documents/03_lightrag_improvements.md
  • lightrag/evaluation/sample_documents/04_supported_databases.md
  • lightrag/evaluation/sample_documents/05_evaluation_and_deployment.md
  • lightrag/evaluation/sample_documents/README.md
  • lightrag/evaluation/sample_retrieval_oracle.json
  • reproduce/Step_0.py
  • reproduce/Step_1.py
  • reproduce/Step_1_openai_compatible.py
  • reproduce/Step_2.py
  • reproduce/Step_3.py
  • reproduce/Step_3_openai_compatible.py
  • tests/test_evaluation_offline_retrieval_check.py

LightRAG 提供了一个基于 RAGAS(检索增强生成评估)的全面评估框架,用于评估检索增强生成(RAG)管线的质量。该框架支持使用大语言模型(LLM)进行无参考评估,以衡量事实准确性、相关性和检索效果。

基于 RAGAS 的评估概述

评估系统聚焦于四个核心指标,以提供检索增强生成(RAG)性能的整体视图 lightrag/evaluation/eval_rag_quality.py:5-9

指标描述目标分数
忠实度衡量答案是否基于检索到的上下文在事实上准确(幻觉检查)。> 0.80
答案相关性衡量生成的答案与用户问题的相关程度。> 0.80
上下文召回率衡量检索到的上下文中是否包含来自标准答案的所有相关信息。> 0.80
上下文精确率衡量检索到的上下文中的信噪比。> 0.80

来源:lightrag/evaluation/eval_rag_quality.py:5-9lightrag/evaluation/README_EVALUASTION_RAGAS.md:9-15

核心组件与数据流

评估过程涉及与运行中的 LightRAG API 实例交互,获取测试数据集的结果,然后使用独立的"评估大语言模型(LLM)"对这些结果进行评分。

系统架构图

此图展示了评估脚本、LightRAG 服务器和外部大语言模型(LLM)提供商之间的关系。

LightRAG · 系统架构图 · 图 1
LightRAG · 系统架构图 · 图 1

来源:lightrag/evaluation/eval_rag_quality.py:115-118lightrag/evaluation/README_EVALUASTION_RAGAS.md:153-179

RAGEvaluator 实现

RAGEvaluator 类管理评估过程的整个生命周期。它会初始化 LangchainLLMWrapperOpenAIEmbeddings,以便与 RAGAS 进行交互 lightrag/evaluation/eval_rag_quality.py:115-200

关键方法包括:

  • __init__:使用环境变量(如 EVAL_LLM_BINDING_HOST)配置评估大语言模型(LLM)和嵌入向量模型 lightrag/evaluation/eval_rag_quality.py:118-192
  • _get_rag_response:异步查询 LightRAG 端点 lightrag/evaluation/eval_rag_quality.py:255-296
  • run:编排数据集加载、检索增强生成(RAG)查询和 RAGAS 指标计算 lightrag/evaluation/eval_rag_quality.py:304-405

来源:lightrag/evaluation/eval_rag_quality.py:115-405

配置与环境变量

评估器支持用于评分的自定义 OpenAI 兼容端点,这对于使用本地模型(例如 vLLM、Ollama)进行评估以节省成本至关重要。

变量默认值描述
EVAL_LLM_MODELgpt-4o-mini用于 RAGAS 评分的模型 lightrag/evaluation/eval_rag_quality.py:157
EVAL_LLM_BINDING_HOSTNone评分大语言模型(LLM)的自定义 OpenAI 兼容端点 lightrag/evaluation/eval_rag_quality.py:158
EVAL_EMBEDDING_MODELtext-embedding-3-large用于 RAGAS 指标的嵌入向量模型 lightrag/evaluation/eval_rag_quality.py:167
EVAL_MAX_CONCURRENT2并发评估任务的数量 lightrag/evaluation/README_EVALUASTION_RAGAS.md:175

来源:lightrag/evaluation/eval_rag_quality.py:146-181lightrag/evaluation/README_EVALUASTION_RAGAS.md:164-179

离线检索检查

在运行昂贵的基于大语言模型(LLM)的评估之前,offline_retrieval_check.py 脚本使用确定性词汇排序器(基于 TF-IDF)提供"健全性检查" lightrag/evaluation/offline_retrieval_check.py:4-6

  • 目的:验证样本问题是否能够从 sample_documents/ 目录中通过词汇匹配检索到其预期的文档 lightrag/evaluation/offline_retrieval_check.py:57-65
  • 逻辑:它对问题和文档进行 Token 化,使用 score_query 计算分数,并计算 average_recall_at_k lightrag/evaluation/offline_retrieval_check.py:134-194
  • 数据:使用 sample_dataset.jsonsample_retrieval_oracle.json lightrag/evaluation/offline_retrieval_check.py:21-24

来源:lightrag/evaluation/offline_retrieval_check.py:1-205tests/test_evaluation_offline_retrieval_check.py:15-50

数据格式

数据集输入(sample_dataset.json

输入数据集必须包含带有问题和标准答案的 test_cases lightrag/evaluation/sample_dataset.json:2-6

{
  "test_cases": [
    {
      "question": "LightRAG 如何解决幻觉问题...?",
      "ground_truth": "LightRAG 通过结合...来解决幻觉问题",
      "project": "lightrag_evaluation_sample"
    }
  ]
}

来源:lightrag/evaluation/sample_dataset.json:1-34

结果输出

eval_rag_quality.py 脚本将结果输出到 lightrag/evaluation/results/ 目录,提供两种格式 lightrag/evaluation/eval_rag_quality.py:29-31

  1. JSON:包含完整详情,包括问题、上下文、答案和各个分数 lightrag/evaluation/eval_rag_quality.py:446-455
  2. CSV:提供摘要表格,便于在电子表格中进行分析 lightrag/evaluation/eval_rag_quality.py:418-444

来源:lightrag/evaluation/eval_rag_quality.py:407-458lightrag/evaluation/README_EVALUASTION_RAGAS.md:94-100

执行流程

下图展示了 eval_rag_quality.py 的内部执行逻辑。

LightRAG · 执行流程 · 图 2
LightRAG · 执行流程 · 图 2

来源:lightrag/evaluation/eval_rag_quality.py:304-458lightrag/evaluation/eval_rag_quality.py:461-512