
检索增强生成 RAG 是知识库类大模型应用的主流方案。大量企业落地 RAG 会遭遇一个共性现象项目初期测试样本效果优秀上线后持续往知识库新增文档过一段时间问答效果持续变差。用户提问明明知识库存在对应答案却检索不到或者检索出大量无关片段最终大模型输出幻觉或者错误回答。很多运维直接升级向量数据库、增加算力但效果提升有限。召回退化很少是向量数据库单方面故障是预处理、分块、Embedding 模型、召回策略、重排、后处理多环节累积劣化的结果。想要解决退化不能只调向量库参数需要建立全链路观测与排查思路。1 召回退化典型表现知识库存在目标文档但 top‑k 召回结果完全不包含相关片段top‑k 列表里面混入大量噪声无关内容有效信息被淹没新入库文档检索命中率低旧文档表现尚可简单问句效果稳定长问句、复杂业务问句召回质量明显恶化。2 全链路根因拆解2.1 文档预处理与分块策略劣化分块是 RAG 最容易被忽视的环节。项目初期文档少人工调整过分块大小随着业务推进不同格式文档PDF、网页、Word源源不断入库统一固定分块参数不再适配全部文档类型。 大段表格、长列表被粗暴切分语义完整单元被拦腰截断部分文档分块过小丢失上下文部分分块过大混入多个无关主题。知识库体量小的时候冲突样本少问题不明显文档规模扩大大量低质量切片进入向量库污染检索池。2.2 Embedding 向量模型适配问题很多项目直接选用通用开源 Embedding 模型没有针对垂直业务领域做评估。通用向量在通用文本表现尚可面对行业术语、专有名词识别能力不足。知识库规模扩大之后向量空间里面大量语义距离接近但是业务含义完全不同的切片互相干扰。另外业务迭代用户查询句式发生变化Query 和文档切片分布发生偏移原先的 Embedding 匹配能力下降。2.3 向量库召回策略缺陷单纯依靠相似度 top‑k 检索存在固有短板。相似度只能衡量语义接近不等价于业务相关性。随着知识库膨胀容易出现 “语义相近但业务无关” 的片段抢占 top‑k 列表。仅靠相似度打分无法区分哪些切片真正可以回答用户问题。 另外没有做时间、元数据过滤。历史过期文档和最新有效文档混在一起旧知识抢占召回位置。部分系统 top‑k 数值写死固定值没有根据 Query 复杂度动态调整。2.4 重排模块失效重排Reranker的目标是过滤 top‑k 里面的无关噪声。很多项目重排模块只是简单接入缺少监控。当知识库增加大量新类型文档重排模型面对陌生领域样本打分错乱噪声无法过滤。同时很多业务没有设置重排分数阈值无论分数高低全部送入大模型低质量片段直接参与生成。2.5 没有脏数据治理机制知识库持续导入重复文档、残缺解析片段、乱码文本、过期知识不断积累。小体量知识库脏数据占比低影响有限数据量上涨脏切片持续累积干扰向量检索。多数 RAG 系统缺少定期巡检、去重、过期文档下线流程。3 全链路排查流程收集大量线上真实用户 Query标记哪些问答出现召回失败针对 Bad case 做链路拆解拿到用户 query完整记录预处理后的 query 向量、向量库 top‑k 原始召回列表、重排之后结果观察相关文档处在什么位置是根本没召回还是被噪声挤到后排被过滤如果相关文档完全不在 top‑k排查分块质量、Embedding 适配如果相关文档存在 top‑k 但是重排后被过滤或者排名靠后排查重排模型与阈值检查知识库脏数据、重复、过期文档占比。注意排查不要使用自己构造的测试问句必须使用线上真实用户问题。4 工程化优化方案文档分块不能一套参数走全部文档。针对 PDF 表格、网页、普通文本设置差异化分块策略优先按照语义单元分割而不是单纯固定字符切割开启分块重叠保证语义完整性。定期评估 Embedding 模型在本业务数据集上召回指标。垂直领域如果通用 Embedding 效果不足考虑领域微调向量模型。召回策略层面不要完全依赖相似度引入元数据过滤支持时间过滤、文档类别过滤可采用混合检索向量检索 关键词 BM25结果做融合弥补向量语义匹配缺陷。重排模块必须设置分数阈值低于阈值直接丢弃片段不送入 LLM持续收集 Bad case 评估重排效果。建立知识库运维机制文档去重、过期知识下线、残缺解析片段过滤定期巡检知识库切片质量。业务上引入召回质量观测指标真实业务 query 下相关片段是否进入 top‑k、重排后保留率定期统计指标变化提早发现退化苗头而不是等到用户大量投诉才发现问题。RAG 召回退化是知识库规模增长过程中非常普遍的现象。问题分散在预处理、分块、向量化、检索、重排各个环节向量数据库只是存储载体大部分退化根源不在存储层。想要长期稳定运行 RAG不能只关注大模型生成效果必须把文档预处理、知识库治理、召回链路观测纳入日常运维。很多 RAG 项目上线后缺少知识库运维随着数据积累效果持续滑坡最终业务价值大打折扣。