跳到正文

RAG 检索噪声怎么处理?

提升生成质量与鲁棒性的 5 种方法,含重排序与过滤

原题:在检索增强生成(RAG)系统中,当检索结果包含噪声或不相关文档时,有哪些方法可以提升生成质量与鲁棒性?

RAG基础 · 小红书真题

30 秒回答

  1. 重排序(Rerank):用Cross-Encoder替代Bi-Encoder做精排,过滤低相关性文档
  2. 上下文压缩:用LLM或专用模型对长文档摘要,减少噪声信息占比
  3. 多路召回融合:向量检索 + 关键词检索 + 图谱召回,取交集或加权融合降低单路噪声
  4. 动态阈值:根据查询难度自适应调整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. 问法 1 · 场景切入

    假设我们在做小红书笔记的智能问答,用户问“怎么选防晒霜”,检索回来一堆笔记,但里面混着很多软广和标题党。这时候生成回答,你怎么处理这些噪声文档,保证回答质量?

  2. 问法 2 · 层层追问

    RAG系统里检索结果经常有噪声,这个你遇到过吧?……一般怎么处理?……如果噪声滤不掉,生成阶段有什么办法让模型不要被带偏?

  3. 问法 3 · 直球架构

    直接讲一下,在RAG系统中,检索结果包含噪声或不相关文档时,提升生成质量与鲁棒性的方法有哪些?从检索和生成两个阶段分别说说。

同模块相关题目