RAG 离线 Pipeline 3 + 4(全景):清洗去噪 → 切成语义完整的 chunk。这两步直接决定检索召回的噪声率和语义粒度。
Pipeline 3:数据清洗
原始数据常包含冗余信息(页眉页脚、重复段落)、无效内容(乱码、无意义符号),需通过清洗实现"数据瘦身",同时标准化格式以提升后续处理效率。
核心原则:保留语义核心,剔除无关信息。
清洗 4 项
| 项 | 做什么 | 举例 |
|---|---|---|
| 删除冗余信息 | 删除文档中重复出现的内容(如会议纪要中反复提及的同一描述)、格式性内容(PDF 的页眉、页码) | "XX 公司内部资料" |
| 内容改写 | 修正错别字(如"人工只能"改为"人工智能")、语法错误(如"模型不太好用功能"改为"模型功能不太好用")、补全缩略语 | "大语言模型的优劣胜于语义理解能力" |
| 格式标准化 | 编码统一为 UTF-8、日期统一格式(2025/12/18 → 2025 年 12 月 18 日)、表格转为"表头:内容"文本格式、公式用 LaTeX | 适配下游模型 |
| 敏感信息过滤 | 过滤身份证号、手机号、密码等隐私信息(如"手机号 138XXXX1234"→"手机号已脱敏"),规避合规风险 | PII 脱敏 |
质量校验与修正
| 类别 | 做什么 |
|---|---|
| 自动校验 | 验证解析后文本长度 ≥ 原始文档的 90%(排除格式内容),表格列数与原始一致 |
| 人工抽样 | 重点核查专业术语(如医疗的"靶点药物")、公式、特殊符号的解析准确性。组织业务专家参与抽样,比例 ≥ 3%、专业文档 ≥ 10% |
| 异常处理 | 对模糊图片、加密文档等解析失败案例,触发人工干预流程 |
Pipeline 4:文本分割(Chunking)
将长文档拆分为固定长度的"知识块",既保证单个 Chunk 语义完整,又便于后续向量化与检索。
核心:语义边界优先,长度适配模型。
三大要点
| 要点 | 说明 |
|---|---|
| 语义完整性 | 优先按"自然语义边界"分割(段落、章节、句子),避免将"结论"与"论证过程"拆分到不同 Chunk |
| 长度适配 | Chunk 长度需匹配模型的输入限制(GPT-4 Embedding 支持 1000-2000 字符),通常建议中文 300-800 字(按业务调整,如法律文档建议保证条款完整) |
| 重叠窗口机制 | 避免分割导致的语义丢失,相邻 Chunk 可设置 10%-20% 的重叠(如第一个 Chunk 为"1-500 字",第二个为"450-950 字"),重叠部分优先保留"上下文衔接句" |
例:长度适配(客服 FAQ 场景)
Sentence-BERT(all-MiniLM-L6-v2)模型最佳输入长度为 300-500 字符,对应中文约 150-250 字,适合客服 FAQ 场景。
6 大分块策略
| 分块策略 | 常见来源 |
|---|---|
| 固定长度 | 按预设字数 / Token 数切割(如 500 字符 / 200 Token),支持 10%-20% 重叠窗口 |
| 语义感知 | 基于 NLP 模型(BERT、spaCy)识别语义边界(句号/感叹号/章节标题),在边界处切割 |
| 文档结构 | 按文档原生结构切割(如 PDF 的章节/页码、Word 的标题层级、Markdown 的 # 标识) |
| 关键词/主题 | 基于专业术语、主题词聚类(如法律文档的"法条编号"、医疗文档的"病症名称")切割 |
| 多粒度 | 双层分割:先按"大结构"(章节)拆分为"父 Chunk",再按语义拆分为"子 Chunk",建立层级关联 |
| 混合分块 | 融合"结构 + 语义 + 长度"多维度规则(如"先按章节分割 → 再按语义拆分 → 最后校验长度 ≤ 800 字") |
面试真题:RAG 文本分割中遇到的挑战是什么?
我们之前使用标点符合(句号、问号等)、字数、段落信息进行基于规则的切分。对于文档的要求很高,一套规则往往只能作用于特定格式的文档;而且对参数非常敏感,文本容易被截断,造成信息或者语义的不完整。
解法:多级文档切分——先按章节/标题切大块,再按语义切子块,三级结构(章/节/句),多 Query 命中不同层级。
PM 此阶段职责
- 结合业务场景提出 Chunk 拆分要求。
- 协同算法团队确定 Chunk 长度范围。
- 定义元数据核心字段。
- 设计分割效果验证方案。
- 推动建立"分割规则迭代机制",根据后续检索反馈优化策略。
协作对象:算法负责人、内容架构师/业务文档专员。
相关页面
→ RAG运转流程 → RAG文档解析 → RAG向量化与索引 → 数据准备五环节 → AIPM课程 Day7