一、RAG 检索质量的三个核心战场

在业内,提升 RAG 效果的方法,通常会被拆成三个阶段:

阶段 作用
检索前 Pre-Retrieval 文档清洗、Chunk切分、Embedding优化
检索中 During Retrieval 混合检索、召回排序、Query Rewrite
检索后 Post-Retrieval Rerank、上下文压缩、答案生成

决定"下限"的,是:Pre-Retrieval(检索前处理),因为,检索器再强,也救不了垃圾数据。

二、为什么知识清洗如此重要?

很多企业做 RAG 时,会犯一个致命错误:把所有数据全部塞进向量库

包括:运维实时日志、企业闲聊记录、OCR失败文本、PDF页眉页脚、模板说明、水印内容、重复文档、乱码字符、

最后导致:

  1. 向量库存储暴涨
  2. embedding 成本激增
  3. 检索噪音极高
  4. rerank压力变大
  5. 大模型上下文被污染

明明知识库越来越大,我们期待的是生成的结果会越来越翔实可靠,但效果却越来越差。

三、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 清洗与知识治理相关的实战内容。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐