RAG 知识清洗ing
一、RAG 检索质量的三个核心战场
在业内,提升 RAG 效果的方法,通常会被拆成三个阶段:
| 阶段 | 作用 |
|---|---|
| 检索前 Pre-Retrieval | 文档清洗、Chunk切分、Embedding优化 |
| 检索中 During Retrieval | 混合检索、召回排序、Query Rewrite |
| 检索后 Post-Retrieval | Rerank、上下文压缩、答案生成 |
决定"下限"的,是:Pre-Retrieval(检索前处理),因为,检索器再强,也救不了垃圾数据。
二、为什么知识清洗如此重要?
很多企业做 RAG 时,会犯一个致命错误:把所有数据全部塞进向量库
包括:运维实时日志、企业闲聊记录、OCR失败文本、PDF页眉页脚、模板说明、水印内容、重复文档、乱码字符、
最后导致:
- 向量库存储暴涨
- embedding 成本激增
- 检索噪音极高
- rerank压力变大
- 大模型上下文被污染
明明知识库越来越大,我们期待的是生成的结果会越来越翔实可靠,但效果却越来越差。
三、RAG 文档清洗的六条铁律
1. 宁缺毋滥
不是所有数据都值得入库。
例如:
- 全量日志
- 群聊记录
- 临时文档
- 无意义截图
这些内容只会污染向量库。高质量 RAG 的核心不是"数据多",而是有效知识密度高。
2. 去除噪音
错误的编码和解码过程会产出乱码,这些乱码的存在毫无意义,这些东西对人类没有意义,但 embedding 模型计算、存储和检索,最后形成"向量污染",因此必须清洗:
- 特殊乱码,例如,�▶□©®▲ 锟斤拷
- 控制字符
- 不可见字符
- 无意义标识符
- OCR异常字符
- 页眉页脚的"洗脑包":每页重复出现的页码、章节名、公司保密水印,会被当成正文反复索引
- 颜文字,清除非正式沟通(如客服聊天记录)中的非必要情感符号,若处理正式公文和技术文档,推荐。
3. 保存文章结构
很多时候粗放地把PDF、DOCX、HTML文档切分后,原封不动送去 embedding,这是非常错误的。例如,文档中的表格在处理中,导致表格线丢失,数据变成一团乱麻;代码缩进消失,变成普通段落。
大模型其实更喜欢 Markdown格式,能更好地理解文本所表示的内容,推荐下面这种清洗后的Markdown文档
# 一级标题
## 二级标题
- 列表
- 表格
```python
code
保留:
- 标题层级
- 列表结构
- 表格结构
- 代码块结构
这样检索效果会明显提升。
4. 合理切分
不要把几万字文档直接 embedding,正确做法,按照:
- 章节
- QA
- 标题
- 语义边界
切成:200-500小块
否则会导致:
- chunk 语义混乱
- 向量不聚焦
- 召回不精准
5. 元数据增强
很多团队只存文章知识,这是远远不够的,真正成熟的知识库会增加:
{
"department": "运维部",
"system": "支付系统",
"version": "v3.2",
"source": "内部SOP",
"author": "张三"
}
这样,检索器不仅靠语义,还能:过滤、精准召回、多维检索
6. 脱敏
脱敏对于企业来讲的重要性是毋庸置疑的,很多企业 RAG 最大风险不是幻觉,而是数据泄露。
因此在清洗阶段必须自动识别,包括但不限于:
- 手机号
- 身份证
- API Key
- AccessToken
- 密码
- 邮箱
- 银行卡
并自动脱敏:
138****8888
API~XXXXXX
四、RAG 常用清洗内容一览表
1. 文本噪音清洗
包括但不限于:
- 删除乱码
- 删除不可见字符
- 删除控制字符
- 删除异常编码
- 删除表情符
- 删除颜文字
例如:
ASCII 0-31
127-160
这些字符都应该被过滤。
2. 页面元素清洗
包括但不限于:
- 删除页眉页脚
- 删除水印
- 删除模板信息
- 删除参考类描述
例如:
请参见xxx文档
图1-1
表格2
附录
这些内容没有检索价值。
3. Markdown结构化
- 表格转 Markdown
- 代码转 Markdown
- 超链接转 Markdown
例如:
| 用户 | 年龄 |
|---|---|
| 张三 | 18 |
代码:
```java
public class Demo{}
```
4. 重复内容治理
- 删除重复句子
- 删除重复段落
- 删除重复文档
- 检测高相似文档
因为,重复内容会导致:
- 检索倾斜
- embedding浪费
- rerank失效
5. 语言规范化
- 繁体转简体
- Unicode统一
- 标点统一
- 列表编号规范化
例如:
①②③④
统一转:
1. 2. 3.
6. 格式标准化
- 统一换行
- 去除首尾空格
- 修复列表顺序
- 清除HTML标签
7. 内容质量过滤
- 非中文率过高
- 重复率过高
- 时间过旧
- 图片质量太低
8. 图片处理
很多企业文档,图比文字还重要,因此,针对图片做好:
- 图片OCR
- 图像描述生成 image Caption
- 图片转Base64
但注意,不要让图片频繁打断正文,否则 chunk 会严重碎片化。
写在最后
在生产环境中,PDF、Word、Excel、扫描件、网页、图片等不同文档类型,都有各自不同的解析与清洗难点。想真正做好 RAG,就必须学会“看碟下菜”。后续会继续分享更多 RAG 清洗与知识治理相关的实战内容。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)