RAGAS教程2026:30分钟搭好LLM驱动的RAG评估

🤖 智能体 2026-08-11 · 更新于 2026-10-20 约 7 分钟阅读

RAGAS教程2026:30分钟搭好LLM驱动的RAG评估。改完分块、换了嵌入模型、加了重排,然后呢?

📜 目录

RAGAS教程2026:30分钟搭好LLM驱动的RAG评估

改完分块、换了嵌入模型、加了重排,然后呢?多数团队到这里就靠肉眼挑几个问题看看,觉得"好像好点了"就上线。RAGAS 解决的正是这件事:用裁判 LLM 给每条回答打分,把"感觉"变成可以对比的数字。

一、它算的到底是什么

RAGAS 的核心思路是拆解:一条 RAG 回答好不好,可以拆成几个互相独立的指标,每个指标让 LLM 当裁判,输出 0 到 1 的分数。

指标 回答的问题 需要标准答案吗
忠实度 回答里的每句话,能在检索到的上下文里找到依据吗 不需要
答案相关性 回答是否切题,有没有答非所问 不需要
上下文精确度 检索回来的内容里,有用的占多少 需要
上下文召回率 该找到的内容,找到了多少 需要
答案正确性 跟标准答案比,事实是否一致 需要

忠实度是最有价值的一个:它测的是幻觉。做法是把回答拆成若干断言,逐条判断能否从上下文推出,能推出的比例就是分数。上下文里没有依据却说得斩钉截铁,分数会立刻掉下来。

二、准备三样东西

  1. 测试集:50 到 200 条真实问题。50 条能看到趋势,200 条能比较接近的方案差异。问题要从真实用户提问里抽,不要自己编
  2. 裁判 LLM:任意够强的模型。可以用云端 API,也可以用本地大模型。裁判模型越强,打分越稳
  3. 待评估的 RAG 链路:能批量跑问题,输出问题、回答、检索到的上下文

标准答案(ground truth)只有部分指标需要。只想看幻觉和切题程度,没标注也能开跑,这是 RAGAS 相比传统评估最实用的地方。

三、最小可运行代码

先收集数据:

import json

results = []
for q in questions:
    answer, contexts = my_rag(q)
    results.append({
        "question": q,
        "answer": answer,
        "contexts": contexts,          # list[str],检索回来的片段
        "ground_truth": gt_map.get(q, ""),
    })

json.dump(results, open("rag_outputs.json", "w"), ensure_ascii=False)

再跑评估:

import json
from datasets import Dataset
from ragas import evaluate
from ragas.metrics import (
    faithfulness,
    answer_relevancy,
    context_precision,
    context_recall,
)

data = json.load(open("rag_outputs.json"))
dataset = Dataset.from_list(data)

result = evaluate(
    dataset=dataset,
    metrics=[faithfulness, answer_relevancy, context_precision, context_recall],
)

print(result)
df = result.to_pandas()
df.to_csv("ragas_scores.csv", index=False)

裁判模型和嵌入模型的配置方式随版本变化较大(有通过 LangchainLLMWrapper 包装的,也有用 llm_factory 直接传 OpenAI 客户端的),按你装的版本查官方文档,别照抄一年前的写法。本地 Ollama 也能当裁判,配好 base_url 和模型名即可。

四、分数怎么读

分数不是越高越好,要看哪一项在拖后腿:

现象 可能原因 先改哪里
忠实度低 模型在编,或上下文里没答案却硬答 提示词加"没资料就说没有",检索为空时直接拒答
答案相关性低 没听懂问题,或多轮上下文污染 检查查询改写、加对话历史压缩
上下文精确度低 检索噪音大,返回了无关块 收紧分块、提高相似度阈值、加重排
上下文召回率低 该找到的没找到 换嵌入模型、改分块、加关键词混合检索
全部指标都低 测试集本身有问题 回头看问题和标准答案的质量

关键动作是看逐题分数,别看平均值。90 条 0.95 加 10 条 0.2,平均下来很漂亮,但那 10 条往往就是用户会投诉的场景。

五、接进日常工作流

一次评估只有参考意义,持续跑才有价值:

六、指标之外还要看的东西

数字能说明趋势,但有几件事指标测不出来,上线前仍要人工过一遍:

建议在评估集里固定放十条"最不能出错"的问题,每次改动都看这十条的逐题结果。它们不能反映整体水平,但能防住灾难性回归。

七、成本与坑

常见问题

Q:没有标准答案能评估吗?

A:能,忠实度和答案相关性不需要标准答案。上下文精确度和召回率需要,答案正确性也需要。

Q:为什么我的忠实度一直是 1.0?

A:回答很短、只复述上下文时容易满分。也可能是检索到的上下文和回答高度重合。这种情况看答案相关性和上下文召回率,别只看一项。

Q:本地模型当裁判靠谱吗?

A:7B 级别的模型打分波动较大,同一批数据跑两次结果可能差不少。要本地跑,选参数更大的模型,并且固定随机性。

Q:和 RAGAS 类似的还有哪些?

A:DeepEval、Arize Phoenix 都提供类似能力,侧重点不同:DeepEval 更接近单元测试风格,Phoenix 强在可观测和追踪。选一个能接进现有流程的就够。

相关文章

延伸阅读 · 含推广链接

API 账单分散在几家平台时,续费和管理都费神。合到一个账号下,成本和额度一眼看得清。

合并到一个账号 →

相关文章
2026-07-19
AI Agent生产环境监控:从日志到可观测性的完整方案
2026-07-17
AI Agent OpenAPI规范:API接口文档自动化
2026-08-11
自托管AI Agent技术栈2026:Open WebUI、Dify、LangGraph横评
2026-07-19
AI工作流自动化:n8n+LLM从需求到上线
2026-07-14
自部署AI Agent平台:2026年搭建企业级AI助理完全指南
2026-08-06
LLM PDF解析器:为什么你的RAG管道必须有它

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论