RAG 评测数据集,到底该怎么准备?

RAG 评测数据集,到底该怎么准备?

之前学 RAGAS 的时候,总以为最难的是算指标,后来才发现,真正卡人的地方其实是数据集根本凑不齐 。

这篇笔记把数据集的准备拆成了两部分: "题"从哪里来 ,以及 "答"从哪里来。只有两样都齐了,整个测评才能跑通。


一、先把数据集的"原材料"分个类

如果只盯着一个空表格看,会觉得需要的东西很杂:问题、AI 回答、标准答案、参考资料......

但从数据是怎么来的这个角度看,其实就两条路:

1️. 从文档出发生成 ------ 让 LLM 替你读文档、出题

这条路的核心逻辑是:把知识文档"喂"给大模型,让它根据文档内容自动造 Q&A 对 。

能直接产出的内容是:

  • 原始问题(模拟用户会怎么问)
  • 标准答案(基于文档写出的正确回答,也就是 ground truth)

这种方法的代表就是 RAGAS 自带的 TestsetGenerator,以及各种自己调用 LLM 从文档出题的脚本。

2️. 从真实提问出发提取 ------ 找"人类真正关心过什么"

这类数据来自系统过去真实积累的交互痕迹,主要来源有:

  • 历史数据加工 :老客服对话、历史 Q&A 库、工单、论坛帖子
    能直接拿到:原始问题 + 真实答案
  • 人工构建 :业务专家基于文档和用户反馈,手动编写的常见问答对
    同样产出:原始问题 + 真实答案

这两条路解决的共同问题是:把"题"和"标答"先准备好 。

但注意,到这里还没有 AI 回答什么事。


二、另一个要单独拿到的:RAG 系统"实战作答"

无论上面用哪种方式把"问题"和"标准答案"准备好了,都还缺一个关键环节------我自己的 RAG 系统,面对这些问题时,到底输出了什么。

这个时候就要用到:

📌 线上 AI 问答 / 直接调用 RAG 系统

做法很简单:把已经准备好的问题,一条条喂给自己的 RAG 系统,让它跑一遍,把输出结果保存下来。

这样能拿到:

  • AI 回答(系统生成的最终答复)
  • 参考资料(检索阶段召回的文档片段)

至此,数据集的"四大件"------问题、AI 回答、标准答案、参考资料------才算真正凑齐。


三、用 RAGAS 自动生成数据集时,最容易踩的一个坑

我一开始看文档的时候,觉得 RAGAS 的 TestsetGenerator 太方便了:扔进去一堆 Markdown,就能吐出来带问题、标答和参考资料的 CSV。

于是就理所当然地想: "这下可以直接拿这个 CSV 去算 Context Precision 和 Context Recall 了吧?"

------错。

原因在于,这里"参考资料"是两回事,必须仔细区分:

指标 需要的"参考资料"是哪种? 说明
Context Precision / Context Recall RAG 系统实际检索到的资料 用来判断检索质量如何
生成数据集时附带的 reference_contexts LLM 生成标准答案时使用的上下文 用来保证标答有据可依

换句话说,自动生成数据集的"参考资料"是"出题者视角"的上下文,而评测时需要的"参考资料"是"考生(RAG 系统)视角"的上下文,两者的来源完全不一样。

所以哪怕已经拿到了 RAGAS 生成的那份漂亮 CSV,里面包含了:

  • 用户问题
  • 参考内容(其实是生成标答的依据)
  • 标准答案

要想真正算 Context Precision、Context Recall 这类指标,还是必须再把问题丢给自己的 RAG 系统跑一遍,拿到系统自己召回的参考资料和 AI 回答,才能代入公式去评测。


四、把整个流程画成一张"准备清单"

整理成步骤思维的话,就特别清楚:

Step 1:获取"题"和"标答"

  • 方式 A :基于 LLM 从文档生成(RAGAS / 自写脚本)
    产出:问题 + 标准答案(+ 出题时用的参考上下文,但不能用作检索评测)
  • 方式 B :历史数据加工 / 人工构建
    产出:问题 + 真实答案

Step 2:用 RAG 系统"作答"

  • 把 Step 1 的所有问题,输入自己的 RAG 系统
  • 产出:AI 回答 + 实际检索到的参考资料

Step 3:对齐到具体指标

  • Context Precision / Context Recall:用 RAG 系统的参考资料 + 问题 + 标准答案
  • Answer Relevancy / Faithfulness / Answer Correctness:还要加上 AI 回答

这样一看,数据集准备从来不是"生成一份 CSV 就结束",而是一个"拼图"的过程:从不同来源把四个关键字段拼齐。


五、从 RAGAS 运行日志里能学到的东西

顺便记录一下,用 TestsetGenerator 生成数据时,后台在做什么(进度条里那些名词不是装饰,每一步都是有意义的):

  1. 标题提取 & 按标题切分:读文档结构,理清骨架
  2. 摘要提取:概括各部分内容,为出题提供"题眼"
  3. 节点过滤:丢掉太水的段落,只保留信息量大的文本
  4. 向量化处理:转成 embedding,为后续相似度计算准备
  5. 主题 & 命名实体提取:找出核心话题、人名/产品名/地名
  6. 相似度与重叠度计算:为跨段落推理的复杂问题搭桥
  7. 生成用户画像:虚构不同角色(小白 / 专家),让提问更真实
  8. 构思应用场景:给问题加一个"发生背景"
  9. 生成最终样本:综合以上信息,写出完整 Q&A

理解这个流程之后,就能明白为什么它会跑得很慢,也知道生成出来的问题质量很大程度取决于原始文档的规范程度和 LLM 的能力。


小结一句:别把"生成了测试集"当成"可以评测了" 。

生成测试集只是把"题目"和"参考答案"做出来了,真正要评判一个 RAG 系统,还得让系统亲自上考场,把答卷交出来,再拿去对照。

相关推荐
易知微EasyV数据可视化3 小时前
UE5中添加 PNG/TIF 到 Cesium 地球表面方案
经验分享·ue5·数字孪生
志尊宝4 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
沪上企服通5 小时前
历史账套科目重映射与规则版本重算:旧账梳理的“口径复位”工程
笔记·架构
上海广测检测科技有限公司5 小时前
标签打印机CE与台湾BSMI+NCC双轨认证详解:多射频模块与电气安全叠加路径
经验分享
Go Work9 小时前
2026 Cadence SPB 24.1中文版安装图文详解(附安装包)
经验分享·笔记
ACP广源盛1392462567310 小时前
HDMI2.0 转 DP1.4 桥接方案评估:国产 GSV2125C@ACP 芯片选型笔记
笔记·硬件架构·hdmi·type-c·国产芯片
虹科网络安全10 小时前
“顶会”看安全(十九):医疗 AI 中的差异化隐私风险
人工智能·经验分享·安全
龙仔72510 小时前
RustDesk 自建服务器 Key 强校验配置笔记
运维·服务器·笔记
悟乙己10 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:赛题解析(一)
笔记·学习·金融
贵州诚鑫致达科技有限公司11 小时前
PVID 是什么?端口参数三身份
服务器·经验分享