RAG 检索时相似度阈值如何设置?设置不当有什么影响?
这道题考的是 RAG 检索系统中相似度阈值的作用机制和调优策略。面试官想看你能不能把"检索质量门控"这个核心概念讲清楚,知道阈值设置不当会引发什么后果,以及怎么在实际场景中调优。
我从四个方面来讲:阈值是什么、过高会怎样、过低会怎样、以及怎么设置才是合理的。
1. 相似度阈值是什么——RAG 检索的"质量闸门"
先说个场景。你问 AI:"公司去年营收是多少?"
系统会先把你的问题转成向量,然后在知识库里找跟它最相似的文档片段。这个"相似程度"就是用相似度分数来衡量的,分数越高说明越相关。
相似度阈值,就是一道及格线。 只有分数超过这条线的文档,才有资格被召回、参与后面的生成。
打个比方。餐厅设了个"最低消费 200 元",没达到这个金额的顾客,不管你多饿,对不起,不接待。阈值就是这个"最低消费",把不达标的候选文档直接拦在门外。
RAG 的检索流程是这样的:
你的问题 → 编码成向量 → 在向量数据库里做相似度搜索 → 用阈值过滤 → 召回达标的文档 → 传给大模型生成
阈值就在第三步起作用。 它决定了最终召回的文档质量:设得高,召回少但精;设得低,召回多但杂。
2. 阈值过高的后果——检索"饿死"
阈值设太高,最直接的问题就是:符合条件的文档太少,甚至没有。
比如你设了个 0.95,库里的文档最高分才 0.87,那对不起,召回结果是空的。
这叫什么?检索饿死。
大模型收不到任何知识库的内容,只能靠自己的"记忆"来回答。它不知道自己记的对不对、准不准,就容易瞎编——这就是幻觉。
你问它:"我们公司年报里提到的核心客户有哪些?"
它看了一眼空白的上下文,心虚但嘴硬:"根据年报,公司核心客户包括 XX 集团、YY 有限公司等。"
这些客户可能根本不存在,或者把 A 公司的数据安到 B 公司头上。
阈值过高的典型表现:
- 召回文档数量为 0,或者只有 1-2 条
- 模型回答明显在"凭感觉"
- 回答内容与知识库实际内容不符
3. 阈值过低的后果——召回"淹没"
另一个极端,阈值设太低会怎样?
你设了个 0.3,结果召回了一大堆八竿子打不着的文档。相关性 0.35 的、0.4 的,都放进来了。
这叫什么?召回淹没。
噪音文档太多,有用的信息被稀释了。大模型的上下文窗口是有限的,塞进去一堆无关内容,真正相关的知识反而没位置了。
打个比方。你写简历,把所有投递过的岗位JD、面试记录、培训笔记全塞进去,HR 打开一看:这是啥?根本找不到重点。
上下文污染就是这样。有用信息被淹没在噪声里,大模型分不清主次,回答质量自然下降。
阈值过低的典型表现:
- 召回文档数量暴增,但质量参差不齐
- 回答变得冗长、抓不住重点
- 大模型被无关信息误导,答非所问
4. 阈值设置实战——找到动态平衡点
说了这么多,到底怎么设?
没有标准答案。 阈值设多少,取决于你的场景、切片策略、embedding 模型等多个因素。
调优方法就一个:用评测集反复试。
具体流程:
准备评测集。收集一批典型问题,每个问题标注好"正确答案需要参考哪些文档片段"。
批量测试。在不同阈值下(比如 0.5、0.6、0.7、0.8)跑一遍,看召回率和准确率的变化。
找到拐点。召回率开始明显下降的那个点,往往就是合理阈值附近。
上线后持续监控。用户query的分布可能变化,需要定期调整。
这里有个关键点:阈值不是孤立的。切片策略会直接影响阈值有效性。
切片太短,语义不完整,相关文档的相似度分数可能偏低,设高阈值容易误杀。
切片太长,噪声多,即使语义不相关也可能拿到不低的分数,设低阈值容易误召。
所以调阈值的时候,记得看看切片策略是不是合理。
配合其他优化手段效果更好。
预检索优化:查询改写、HyDE,让问题更容易匹配到正确答案。
后检索优化:重排(让更相关的文档排前面)、上下文压缩(去掉冗余内容)。
这些手段配合阈值使用,比单纯调阈值效果强得多。
面试怎么答
基础版(直接背):
相似度阈值是向量检索的过滤条件,决定了哪些文档有资格被召回参与生成。阈值设太高,低于阈值的文档全被过滤,可能召回为空,大模型就只能靠自身知识回答,容易产生幻觉。阈值设太低,召回了大量不相关的噪声文档,有用信息被稀释,上下文污染严重。实际调优需要结合评测集,在召回率和准确率之间找平衡,同时配合切片策略、预检索和后检索优化一起调整。
加分版(加这些细节):
阈值不是孤立存在的,需要跟切片策略配合优化。切片过短会导致语义不完整,相关文档的相似度分数偏低;切片过长会引入噪声。实际项目中建议用评测集驱动调优,找到召回率和准确率的拐点。另外可以引入动态阈值的思路:根据查询类型自适应调整阈值,比如事实类问题设高阈值、开放类问题适当降低。配合预检索(查询改写、HyDE)和后检索(重排、上下文压缩)使用,整体效果比单纯调阈值好很多。
一句话总结
相似度阈值是 RAG 检索的质量闸门,设太高会饿死(召回为空)、设太低会淹没(噪声过多),调优靠评测集驱动,配合切片策略和其他优化手段效果更好。
