RAG 检索噪声怎么处理?
提升生成质量与鲁棒性的 5 种方法,含重排序与过滤
原题:在检索增强生成(RAG)系统中,当检索结果包含噪声或不相关文档时,有哪些方法可以提升生成质量与鲁棒性?
RAG基础 · 小红书真题
30 秒回答
- 重排序(Rerank):用Cross-Encoder替代Bi-Encoder做精排,过滤低相关性文档
- 上下文压缩:用LLM或专用模型对长文档摘要,减少噪声信息占比
- 多路召回融合:向量检索 + 关键词检索 + 图谱召回,取交集或加权融合降低单路噪声
- 动态阈值:根据查询难度自适应调整top-k数量,难查询多召回、易查询严过滤
回答与解析
核心思路:两条防线——净化输入 + 增强生成抗噪能力
一、检索阶段:提升召回质量
- 重排序(Rerank):用Cross-Encoder替代Bi-Encoder做精排,过滤低相关性文档
- 上下文压缩:用LLM或专用模型对长文档摘要,减少噪声信息占比
- 多路召回融合:向量检索 + 关键词检索 + 图谱召回,取交集或加权融合降低单路噪声
- 动态阈值:根据查询难度自适应调整top-k数量,难查询多召回、易查询严过滤
二、生成阶段:增强鲁棒性
- 置信度引导生成:让模型输出引用来源并给出相关性评分,低置信度时主动降权或拒绝回答
- 反事实训练(Counterfactual Training):SFT阶段注入噪声文档,训练模型学会"忽略干扰"
- 检索-生成联合优化:如Self-RAG、Corrective RAG,让模型自主判断是否需要检索、是否信任检索结果
三、小红书场景的特别考量
UGC内容噪声类型更复杂(标题党、软广、过时笔记),建议:
- 引入时效性过滤和作者权威性评分
- 对"种草"类查询,优先召回高互动且非商业推广的笔记
学习建议
建议系统学习该知识点
口语版讲法(约4分钟)
- 这道题本质在问什么
- 检索阶段净化输入
- 生成阶段增强抗噪
- 业务场景与风险
- 可延伸点与收尾
这道题问的是,当RAG系统召回了一堆乱七八糟的东西,怎么保证生成质量不掉。说白了就是两条防线,一条是检索阶段把输入搞干净,另一条是生成阶段让模型自己学会抗干扰。
先说检索阶段怎么净化。核心思路不是把召回量做上去,而是把质量提上来。最直接的方法是加一层 重排,用 Cross-Encoder 把召回的候选文档逐对打分,过滤掉那些低相关的。这招效果很稳,但计算成本高,一般只对 top 几十的候选做,不会全量做。还有一种做法是上下文压缩,用个小模型或者 LLM 对长文档做摘要,减少噪声信息占比。举个例子,企业 SOP 合规场景,文档里可能夹杂了历史版本说明和废弃流程,压缩之后只保留当前有效条款,生成准确率明显提升。
再一个,我比较推荐搞 混合检索,就是向量检索加 BM25 关键词检索,甚至接知识图谱,多路召回之后做加权融合。这样能避免单一检索方式被噪声带偏。比如向量检索容易把语义相近但实际无关的文档召回来,关键词检索反而能纠正。但这里有个坑:融合策略不是简单的取交集或求平均,得根据场景调权重。比如小红书那种 UGC 内容,噪声类型很复杂,标题党、软广、过时笔记都有,我可能还会加时效性过滤和作者权威性评分,把低质量笔记压下去。
说完检索,再讲生成阶段怎么增强抗噪。其实更关键的是让模型学会“选择性忽略”。一种做法是置信度引导生成,让模型输出时附带引用来源和相关性评分,低置信度的直接降权或者拒绝回答。比如客服退款场景,如果检索到的政策文档里有一条和当前问题明显矛盾,模型应该优先采信高置信度的那几条,而不是硬凑答案。另一种是训练层面的,用 反事实训练 在 SFT 阶段注入噪声文档,让模型学会看到不相关内容时主动忽略。这招效果很好,但前提是你得有足够的噪声样本,而且噪声分布要和线上一致,否则模型学偏了反而坏事。
其实还有个方向我最近比较关注,就是让模型自己判断是否需要检索、是否信任检索结果,比如 Self-RAG 和 Corrective RAG。这类方案让生成过程更灵活,但代价是推理链路变长,延迟和成本得权衡。如果面试官感兴趣,我可以展开说说。
最后说落地风险。这些方法不是堆上去就有效,得看场景。比如重排对延迟敏感的应用就不太友好,可能得用 ColBERT 这种兼顾效率和精度的方案。反事实训练如果噪声分布和线上不一致,效果会大打折扣。我的判断是,先把检索阶段的净化做扎实,比如重排加混合检索,这步收益最稳,再根据线上 badcase 决定是否上生成阶段的抗噪手段。说白了,RAG 的鲁棒性不是靠一个模块解决的,而是整个链路一起调优。
关键一句:Self-RAG 和 Corrective RAG 这类让模型自主判断检索和信任的方案,虽然灵活但推理成本高。
面试官还可能这样问
- 问法 1 · 场景切入
假设我们在做小红书笔记的智能问答,用户问“怎么选防晒霜”,检索回来一堆笔记,但里面混着很多软广和标题党。这时候生成回答,你怎么处理这些噪声文档,保证回答质量?
- 问法 2 · 层层追问
RAG系统里检索结果经常有噪声,这个你遇到过吧?……一般怎么处理?……如果噪声滤不掉,生成阶段有什么办法让模型不要被带偏?
- 问法 3 · 直球架构
直接讲一下,在RAG系统中,检索结果包含噪声或不相关文档时,提升生成质量与鲁棒性的方法有哪些?从检索和生成两个阶段分别说说。