RAG 检索阈值调参召回多了噪声也会进来一、阈值决定答案上下文RAG 系统里检索阈值常被忽略。相似度阈值太高相关文档召不回来阈值太低噪声文档进入上下文模型会被带偏。一个典型场景知识库问答系统里相似度阈值设到 0.5每次召回 10 个片段其中 6 个跟问题无关模型被无关内容干扰后给出了错误答案。TopK 也是一样召回更多不一定更好。检索阈值调参的目标是在召回和噪声之间找到平衡。二、先准备查询集合flowchart TD A[真实问题] -- B[标注相关文档] B -- C[调阈值] C -- D[评估答案]调参不能只靠几个手工问题。要收集真实用户问题并标注应该命中的文档片段。retrieval_eval_set: queries: 200 labeled_relevant_chunks: required include_no_answer_cases: true没有标注就不知道阈值好坏。标注时建议包含三类判断完全相关、部分相关和无关。部分相关片段在某些任务中可用但不加区分地与完全相关片段混排会稀释检索精度。三、指标要同时看召回和噪声常见指标包括 hitk、MRR、Recall、Precision。RAG 还要看最终答案是否引用正确上下文。precision relevant_retrieved / retrieved_total recall relevant_retrieved / relevant_total只追求 Recall可能把很多不相关内容塞给模型。只追求 Precision又可能漏掉关键证据。四、阈值可以按场景区分FAQ 类问题可以阈值高一些因为答案通常明确开放式分析可以适当放宽但要让模型知道证据强弱。threshold_policy: faq: 0.78 troubleshooting: 0.68 exploratory_search: 0.60还要处理无答案场景。如果最高相似度都很低系统应该拒答或引导人工而不是强行编答案。最后阈值调完要定期复测。文档新增、embedding 模型升级、切片策略变化都会改变相似度分布。阈值还要结合重排序。第一阶段向量召回可以放宽一些第二阶段 reranker 再筛掉噪声。如果没有重排序就把阈值设得很低最终上下文会混入大量弱相关片段。retrieval_pipeline: vector_top_k: 30 rerank_top_k: 5 min_score_after_rerank: 0.65还要分析分数分布。不同 embedding 模型的相似度区间不一样0.75 在一个模型里可能很高在另一个模型里可能只是中等。阈值不能跨模型盲目复用。对长文档知识库还要按文档类型分阈值。API 文档、FAQ、故障手册、产品说明的语言结构不同相似度分布也会不同。最后阈值调参要观察最终答案。检索指标提升但答案质量下降说明模型可能更容易被新增噪声干扰。还要查看误召回样本。把相似度高但实际无关的 chunk 收集起来分析是切片太碎、术语重复、标题干扰还是 embedding 模型不适合该领域。误召回比漏召回更容易污染答案。false_positive_analysis: inspect_top_irrelevant_chunks: true group_by_doc_type: true update_chunk_strategy: optional阈值也要和上下文预算联动。模型窗口有限时宁愿少放几段高置信证据也不要把低相关内容填满窗口。上下文不是垃圾桶。最后线上可以记录低置信检索比例。如果大量请求最高分都低说明知识库覆盖不足而不是单纯阈值问题。五、总结RAG 检索阈值调参要基于真实查询集合同时看召回、精度、答案引用和无答案处理。召回多了噪声也会进来。RAG 质量来自检索和生成共同控制。