TL;DR
- RAG数据质量是一个链条:源内容在检索之前必须相关、完整、最新、结构化、去重和可追溯,才能有效工作。
- 爬取成功不等于内容成功。验证提取的主体、标题、表格、代码、版本、规范URL和爬取时间戳。
- 清洗会移除提取噪音;但不能删除有用的警告、参数上下文、证据或源链接。
- 在声称质量提升之前,请使用相同的语料库、分块器、嵌入模型、检索器和问题集比较干净和原始的摄取。
引言:RAG无法检索它从未收到的证据
Nstdata Crawl是该工作流程中的收集层;它的产品概述描述了下游数据管道的页面和站点检索。
检索系统可能返回不相关的段落,因为其嵌入模型较弱,但问题可能早在之前就产生了:爬虫仅捕获了一半的页面,清洗器删除了一个警告,或者重复的导航将索引填充了重复的块。RAG数据质量描述源记录是否适合系统预期回答的问题。
区分三个层次:源质量(页面是否准确和授权?)、检索质量(索引是否返回相关证据?)和生成质量(模型是否正确使用了这些证据?)。这种区分有助于团队调试正确的阶段,而不是在每次错误回答后“重新爬取所有内容”。Nstdata Crawl可以返回清理过的Markdown和其他页面格式,但你的管道仍然需要验收规则;请参见Crawl文档。
什么是RAG数据质量?
RAG数据质量是文档和元数据在检索和基础答案中的适用性。它不是一个单一的分数。一个实用的审查涵盖七个维度:
| 维度 | 示例检查 |
|---|---|
| 完整性 | 是否存在所需的部分、表格和代码? |
| 准确性/源可靠性 | 该来源对这一声明是否权威? |
| 相关性 | 该记录是否属于这个知识库? |
| 结构 | 标题、列表、代码和表格是否保留? |
| 唯一性 | 是否有重复的URL或模板导致生成重复的块? |
| 新鲜度/版本 | 内容是否针对请求的产品版本是最新的? |
| 可追溯性 | 每个块是否可以链接到其来源和爬取时间? |
这些维度以不同方式影响检索和答案质量。来自错误版本的准确内容仍可能产生错误答案;来自不可信来源的结构良好的文本并不会因为被转换为Markdown而变得权威。
为什么脏的网络数据导致糟糕的RAG答案
想象一个源页面,包含菜单、API表、认证警告和页脚。如果菜单在200个URL上重复,它的块可能在top-k检索中频繁出现。如果清洗器将警告作为“模板”删除,助手可能会在没有其警告的情况下引用请求格式。如果API表失去了列关联,模型可能会错误匹配类型并使用默认值。
检索链条很简单:嘈杂的文本被嵌入;相似度搜索找到该表示;LLM将其作为上下文接收。清洗可以减少无关输入,但无法恢复缺失的源内容。如果JavaScript内容未被捕获,则需要在调整分块器之前修复爬取/渲染。
比较HTML、Markdown和清洁文本
| 格式 | 结构 | 典型用途 | 注意事项 |
|---|




