Q09RAG吴师兄 · 公众号 吴师兄学大模型5 分钟

面试官问:动态 RAG 的数据质量怎么评估?

面试官原题

动态 RAG 的数据质量怎么评估?

面试官 · Agent 岗面试现场

大家好,我是吴师兄。

昨天更新“动态增量 RAG 如何保证召回准度”那篇文章之后,有学员在群里又问了一个延伸问题:

“师兄,动态 RAG 数据那么杂、来源又不稳定,那怎么评估数据质量? 总不能上线就靠感觉吧?”

这个提得非常关键。

因为在真实企业场景中:

  • 数据每天在变

  • 网页结构不稳定

  • 抓下来的内容有一半是噪声

  • 多模态混杂(图文、HTML、模板)

  • 人工校对根本不可能

而如果没有“可量化”的数据质量体系,动态 RAG 最终一定会变成:

越用越乱 → 越检越慢 → 越答越离谱。

所以今天这篇文章,我就基于训练营里的实战内容,拆解一下:

在动态增量 RAG 中,如何构建一套可度量的数据质量评估体系?

而这套评估体系,也是大厂面试官非常爱问的内容。

静态 RAG 和动态 RAG 的质量评估完全不是一回事

静态 RAG 的质量评估很“学术”:

  • 召回率

  • 准确率

  • 覆盖率

  • Gold QA 匹配度

  • re-rank 精度

动态 RAG 则完全不同。

因为动态数据具有:

  • 不可控

  • 不可预测

  • 不可人工校验

  • 不可一次性清洗

  • 不可离线验证

所以动态 RAG 的核心不是“评估 embedding 质量”,而是:

评估数据是否能进入 RAG pipeline,并在召回链路中不产生污染。

换句话说:

动态 RAG 的评估对象不是“向量”,而是“数据管线”。

动态 RAG 的数据质量体系由 5 个维度构成

这部分完全是基于训练营里面的教学内容,为了方便读者朋友们更好的理解,我做了简化和结构化整理。

维度一:可解析性(Parseability)

判断清洗后的文本,是不是“能看”“能切片”“能 embedding”。

常见问题包括:

  • HTML 抽取失败

  • 文本残缺、标签断裂

  • 内容被 JS 替换

  • 模板内容重复十几倍

  • 全是导航栏/广告

评估指标(训练营实战用过的):

  • 解析成功率(%)

  • 模板噪声比(噪声 token / 总 token)

  • 标点密度 / 段落密度等结构化指标

目标:过滤不干净的数据,让向量库不变成垃圾场。

维度二:去重质量(Dedup Quality)

动态数据常常是 半小时抓一次内容,如果不去重:

  • 向量库会疯涨

  • 检索会变慢

  • re-ranker 降低有效性

  • 明明只有一条信息,却召回几十个重复 chunk

我们通常用:

  • SimHash

  • MinHash

  • embedding 相似度批量聚类

评估指标:

  • 重复率(重复 chunk / 总 chunk)

  • 大簇数量(过多代表抓取不稳)

这部分是面试官最爱问的:

“动态数据如何做 dedup?”

可直接回答:“SimHash+倒排索引。”

维度三:相关性(Relevance)

动态数据更致命的一点是:

不是所有数据都对任务有用。

比如:

  • 抓新闻,却抓到整页评论区

  • 抓金融公告,却抓到反爬验证码失败页

  • 抓图文内容,却抓到“请登录后再访问”

相关性评估可以用轻量模型做打分(0~1):

  • Sentence-BERT

  • MiniLM

  • GPT small model

低分直接丢弃。

评估指标:

  • 均值相关性

  • 中位数相关性

  • 低相关(<0.3)占比

如果某天低相关突然暴涨,那就是 网页结构变了、反爬失败了、页面改版了

这是动态 RAG 的特色难题。

维度四:切片质量(Chunk Quality)

动态数据最容易出的问题是:

  • 切得太短 → 语义断裂

  • 切得太长 → embedding 不准

  • 切分不一致 → 检索漂移

训练营里我们用了两个指标:

① 语义完整性(Semantic Coherence) 衡量切片内部句间 similarity。

② 内容冗余度(Redundancy) 衡量是否包含大量重复句子。

切片评估本质上是防止:

“embedding 进去的是垃圾,检索出来的是误导。”

维度五:时效性(Freshness)

这是动态 RAG 相比静态 RAG 最大的新增维度。

因为动态数据存在:

  • 旧内容严重影响答案

  • 召回到过期知识

  • 新数据 embedding 还没进库

  • 检索优先级不考虑时间

我们会记录:

  • 数据时间戳

  • 抓取时间窗口

  • 更新失败率

  • 最新数据召回占比

在训练营的 DeepResearch 项目里,为了保证时效性,我们强制引入:

“时间加权的 re-ranking”

让新内容权重要更高。

如何给动态 RAG 数据质量“打分”?

在训练营项目里,我们最终落地的是一个 5 维综合评分体系

Q = 0.2P + 0.2D + 0.2R + 0.2C + 0.2F

P = 可解析性

D = 去重质量

R = 相关性

C = 切片质量

F = 时效性

即便只是粗评,也能做到:

  • 哪天爬虫异常

  • 哪天数据结构变了

  • 哪天切片失败

  • 哪天抓取大规模重复

  • 哪天时效性下降

都会自动报警。

这才是动态 RAG 的正确姿势:

不是让数据完美,而是让问题可观测、可报警、可恢复。

面试官问:你如何监控动态 RAG 的数据质量?

你可以这样答:

我们把动态 RAG 数据质量拆成五个维度:

  • HTML 可解析性
  • 去重质量
  • 相关性打分
  • 切片语义一致性
  • 时效性

并将这些指标整合成一个质量得分,用于报警和回滚。

一旦某个指标异常(如相关性大幅下降),说明网页结构变了,自动触发修复流程。

这个回答足够让人感觉:

不是看两篇博客的人,而是真做过落地系统。

结语

动态增量 RAG 的关键不是“数据好不好”, 而是“系统能不能发现数据不好”。

只要:

  • 有质控

  • 有过滤

  • 有重排序

  • 有时效加权

  • 有质量监控

动态 RAG 就能稳得起来。

真正决定 RAG 成败的,是工程能力,而不是 embedding 模型。

—— 本场面试完 ——

把题练成肌肉记忆。公众号「吴师兄学大模型」每周更新面试真题拆解;想系统上手 Agent 工程,看 AgentAlpha 训练营。