十万个why:为什么做RAG 最怕的,不是检索失败,是明令禁止瞎答,它还硬编答案

发布时间:2026/9/22 21:51:01

十万个why:为什么做RAG 最怕的,不是检索失败,是明令禁止瞎答,它还硬编答案 拒答日志应该作为知识库迭代的一个输入源高频被拒的问题定期拉出来看哪些是知识库确实该覆盖但没覆盖的补进去哪些是真的不该这个系统来回答的在产品和交互层面做引导。做 RAG 的人早晚都会撞上这个问题而且通常不是在 demo 阶段是上了生产、用户量上来之后才发现有多头疼。大部分讲 RAG 的文章都在说怎么召回得更准——调 chunk size、换 embedding 模型、加 reranker。这些当然有用但都是在解决怎么把对的内容找出来。而知识库外提问是另一件事内容根本就不在你库里你检索再准也没用但系统照样会给你返回东西而且返回的东西往往看起来还挺像那么回事。这是很烦人的一个事搜不到还好说就怕没搜到还给你乱七八糟的东西系统基于一堆不相关的内容拼出了一个自信满满、但事实性错误的答案用户看不出来以为你的产品很靠谱。这个问题麻烦在哪第一个坑相似度阈值基本不可靠。刚上手做 RAG 的时候直觉就是设阈值低于 0.7 就不采用跑几天就发现不行。同一个 embedding 模型不同领域的 query相似度分数的分布完全不一样。有的场景 0.7 已经是强相关了有的场景 0.85 的内容跟 query 的关系还是很牵强。没法用一个全局阈值来区分相关和不相关除非你的知识库内容极其单一、用户提问方式极其稳定但生产环境基本不可能是这样。更麻烦的是有些 query 和文档之间关键词重合度很高、向量距离也很近但文档回答的其实是另一个问题。比如用户问怎么取消自动续费你知识库里确实有续费相关的文档但那是讲续费规则的不是讲取消操作的。Embedding 模型分不出这种差别它看到的就是续费这个词在两个地方都出现了语义空间里距离很近。检索系统兴高采烈地把这篇文档排在 top-3 返回给你然后 LLM 拿着这篇文档给用户编了一个取消续费的流程。第二个坑LLM 在有 context 的情况下天然倾向于用 context 回答而不是质疑 context。加一句如果没有相关信息就说不知道在 context 完全空白或者明显不相关的时候确实有用。但问题在于检索系统永远会返回 top-K向量数据库不会返回空结果它只会返回距离最近的那几条。LLM 看到的永远是有内容的状态。只要 context 里有文字LLM 的默认行为就是基于这些文字组织答案而不是先判断这些文字跟 query 到底有没有关系。把判断逻辑塞进 prompt 能缓解但不能根治因为 LLM 对这个文档能不能回答这个问题的判断本身也在受 context 影响它看到文档里有一些看起来沾边的词就容易说服自己这大概算是相关吧。这两个问题叠在一起线上跑出来的效果就是用户提了一个知识库覆盖不到的问题 → 检索照样返回了 top-K 文档 → LLM 基于这些文档拼出了一个答案 → 答案读起来通顺、自信、像模像样 → 但关键信息是错的或者编的。这种 failure mode 比检索漏召回严重得多漏召回用户至少知道你没答上来而这种用户以为你答对了。在哪一层处理我的经验是两层搜前搜后各一道。检索层能做的是粗筛把明显不靠谱的拦住单一阈值不靠谱但多种信号叠加之后能拦住不少。一个低成本有效的方法是token overlapquery 里的关键词和检索回来的文档之间做词级别的 overlap 检查。向量相似度高但关键词几乎不重叠说明 embedding 被语义相近但领域不同的内容带偏了。反过来关键词大量撞上了但你读一遍发现是在讨论不同的事情可能是术语刚好重合。两种情况都可以作为置信度降低的信号。多路召回交叉验证也能提供信号dense retrieval 和 sparse retrievalBM25各自召回 top-K看两边的重叠度。如果重叠度很低说明 semantic match 和 lexical match 之间分歧很大这次检索的结果不该被无条件信任。但这些只能拦下明显不相关的那些看起来相关但其实答非所问的检索结果靠规则信号拦不住需要下一步。生成前做一次相关性校验检索结果拿到之后别直接塞给 LLM 生成答案先让它判断这些文档到底能不能回答用户的问题。至于需不需要专门训一个分类模型我的看法是不需要直接复用 RAG 链路上已经在调的那个 LLM 就够。不是说训一个 BERT 做 query-document 二分类技术上不可行推理快、延迟低理论上适合。但实际维护成本比看起来高得多。知识库内容一更新、用户问法一变化分类边界就跟着漂。你今天标了一批数据训出来的模型过两个月知识库加了几篇新文档模型对什么是相关的判断可能就不对了。持续标注、持续重训这个工作量放在一个小规模团队里根本不现实。用 LLM 做这个判断的优势不需要额外维护一个模型链路少一个组件排查问题少一个变量。而且 LLM 对这段文字讨论的是 A而用户问的是跟 A 表面相似但实质不同的 B这种细微差别的分辨能力目前的判别式模型差了一个量级。落地上几个点值得注意Prompt 里要让 LLM对每一条文档做判断不要笼统地问这些文档和问题相关吗。笼统地问它倾向于给一个模糊的评价。逐条打 tagrelevant/partially_relevant/irrelevant再要求给一句话理由效果会稳定很多。建议用 structured output 约束格式不约束的话 LLM 很容易跑偏。相关的定义要在 prompt 里写清楚。不是文档和 query 是否属于同一主题而是**文档内容是否能直接用来回答用户的问题**。这个定义直接决定拒答的准确率和召回率之间的平衡。拒答分层做不要一刀切。全都不相关就直接拒答告诉用户这个系统的能力边界在哪部分相关就把已有的信息给出来同时说明哪些部分找不到答案。最坏的情况是把明明有的信息判成不相关然后拒了用户比收到一个不太准的答案更恼火。Prompt 层面的最后一道防线相关性校验也可能漏prompt 层面的防御指令必须有但写法比有没有更重要。如果没有相关信息就说不知道这句话实际效果很差因为 LLM 看到 context 里有内容的时候不会真的去质疑这些内容跟 query 的关系。改成把判断作为一个显式步骤嵌入 prompt先判断资料是否真的能回答用户的问题如果不能不要硬拼凑直接说明原因。把判断 → 决定是否回答作为第一步而不是一个注意事项行为上会有明显差别。说在最后拒答的目的主要是是兜底如果用户频繁问知识库外的问题说明两件事至少有一件成立要么知识库覆盖有严重缺口要么产品层面没有让用户搞清楚这个系统应该用来干什么。这两个问题都不是调 prompt 能解决的。拒答日志应该作为知识库迭代的一个输入源高频被拒的问题定期拉出来看哪些是知识库确实该覆盖但没覆盖的补进去哪些是真的不该这个系统来回答的在产品和交互层面做引导。
延伸阅读

更多相关文章

2026/9/20 1:14:26

全链路科研智能新底座|宏智树 AI 一站式论文科研辅助平台(官网:www.hzsxueshu.com,微信公众号搜索宏智树 AI 即刻体验)

在学术研究常态化、论文规范要求持续收紧的当下,绝大多数科研学习者都会陷入碎片化工具的困境:找文献要切换数据库、写问卷依赖表单软件、绘图制表需要专业软件、降重润色更换多款工具,开题、正文、答辩、数据分析割裂操作,耗费大…

2026/9/22 20:03:58

从“急眼”到高效协作:掌握AI对话的结构化提问与排查方法

1. 先搞清楚“不懂”和“急眼”背后,到底在聊什么技术问题看到“峰哥不懂ChatGPT”这个标题,很多人第一反应可能是某个博主或用户在某个场景下,因为不理解ChatGPT的某个功能或回答而“急眼”了。这其实是一个非常好的切入点,它指向…

2026/9/22 21:46:35

啊兵备考避坑保姆级教程:3步搞定水利工程高频考点

啊兵备考避坑保姆级教程:3步搞定水利工程高频考点 看了一堆教程还是不会写项目?这是很多刚接触水利工程建设或考证的同行最常抱怨的话。别慌,今天这篇啊兵备考的保姆级教程,就是专门帮你解决“知识点记不住、代码/计算套不进”的难题。咱们不整虚的,直…

2026/9/22 21:46:35

虾靠什么呼吸一文搞懂源码级解析

虾靠什么呼吸一文搞懂源码级解析 版本升级后 API 全变了,你的代码还在硬扛旧接口?别慌,今天咱们不聊虚的,直接扒开底层, 一文搞懂…

2026/9/22 21:46:35

3招搞定圣诞树是什么树渲染卡顿附完整示例

3招搞定圣诞树是什么树渲染卡顿附完整示例 版本升级后 API 全变了?别慌,很多老手在重构“圣诞树是什么树”这类图形化组件时,都踩过这个坑。 很多前端同学在接到“圣诞树是什么树”的动态渲染需求时,第一反应是堆砌 DOM…

2026/9/22 21:46:35

一文搞懂望天门山诗配画:面试突击与API避坑指南

一文搞懂望天门山诗配画:面试突击与API避坑指南 版本升级后 API 全变了,这大概是前端开发者最崩溃的瞬间。昨天还在用的 drawImage 参数顺序,今天换个库版本直接报错,文档也没更新。想通过“望天门山诗配画”这个实战项目搞懂…

2026/9/22 21:46:35

3步搞定小清手写实现,官方文档太长抓不住重点

3步搞定小清手写实现,官方文档太长抓不住重点 官方文档翻了三遍还是没看懂?别慌,这不是你的错。 很多技术文档为了严谨,把基础原理藏在大段文字里,让人一眼望去全是术语,根本抓不住重点。 今天咱们不讲虚的,直接上干货,带你用 手写实现…

2026/9/22 21:41:35

3步搞定沈阳六冲薪资与证书:图解原理避坑指南

3步搞定沈阳六冲薪资与证书:图解原理避坑指南 昨晚十一点,盯着IDE里那串红色的StackTrace,眼睛都花了。报错信息像天书, NullPointerException 后面跟着几十行调用栈,根本找不到断点在哪。这种“报错一堆看不懂…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/22 0:04:49

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点 官方文档几百页翻到头还是懵?面试问到 输电线路在线监测 的数据链路时,脑子一片空白?别慌,这种 高频面试题 我整理了10年,专门治各种“文档太长抓不住重点”的毛病。…

2026/9/22 0:04:49

中介房源管理系统重构避坑:3个关键步骤搞定API变更

中介房源管理系统重构避坑:3个关键步骤搞定API变更 版本升级后 API 全变了,这种痛只有真做过的人懂。 很多团队在接手老旧房产项目时,最崩溃的不是代码烂,而是底层框架升级后,原本熟悉的接口调用方式彻底失效。 这份 保姆级教程…

2026/9/22 0:04:49

3个坑点带你一文搞懂55gg小游戏源码

3个坑点带你一文搞懂55gg小游戏源码 盯着控制台满屏的红色报错,看着那一长串 StackTrace ,是不是脑子瞬间宕机?别急,这种时候最忌讳的就是盲目改代码。很多刚入行的前端同学,面对 55gg 小游戏这类轻量级 H5…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码