title: " AI排查RAG召回差 | Chunk和Rerank" category: 人工智能 tags:
- 大模型API中转站
- 4SAPI
- AI排错
- RAG
- 向量检索
- Rerank
- Claude Fable 5 description: "RAG 回答差不一定是模型弱,常见原因是文档切分、Embedding、检索过滤、Rerank、权限和引用证据出了问题。本文讲如何用 AI 分析 query、召回片段和答案,定位 RAG 召回质量问题。"
很多人做企业知识库,第一反应是:
模型回答不好,是不是模型不够强?
不一定。
RAG 系统回答差,更多时候不是生成模型的问题。
而是:
根本没召回正确资料。
召回了但片段太碎。
召回了过期文档。
过滤条件把正确文档排除了。
Rerank 没把关键证据排前面。
答案没有引用证据。
这类问题非常适合用 AI 排查。
但要把 RAG 链路拆开。
1. RAG 先看三件事
用户 query。
召回片段。
最终答案。
如果最终答案错,先不要怪模型。
先问:
正确答案所在文档有没有进入召回结果?
进入了第几名?
片段是否完整?
模型有没有引用它?
这四个问题决定排查方向。
2. 给 AI 的 RAG 排错包
【用户问题】
- query:
- 预期答案:
- 业务场景:
【召回结果】
- top_k:
- 每个 chunk 的文档名、分数、内容摘要:
- 是否包含正确答案:
【Rerank】
- rerank 后排序:
- 分数:
- 被提到前面的片段:
【最终答案】
- 模型回答:
- 引用证据:
- 是否胡编:
【配置】
- chunk size:
- overlap:
- embedding 模型:
- filter 条件:
- 权限过滤:
【边界】
- 不把用户隐私和内部机密原文外发
- 先分析召回,不先换大模型
3. 常见根因一:Chunk 切得太碎
如果 chunk 太小,模型看到的是:
半句话。
缺上下文。
只看到结论,看不到条件。
比如制度文档里写:
试用期员工不适用该假期政策。
如果切分把“试用期员工”切到上一段,答案就会错。
AI 可以审查:
当前 chunk 是否包含完整问答语义。
是否缺标题、章节、前置条件。
修复:
按标题切分。
保留章节路径。
增加 overlap。
把表格行和表头一起保留。
4. 常见根因二:过滤条件错
企业知识库常有权限过滤:
department = sales
tenant_id = xxx
doc_status = published
language = zh
如果过滤条件错,正确文档根本进不来。
这不是模型问题。
是检索条件问题。
让 AI 看:
query。
filter。
正确文档 metadata。
召回结果 metadata。
Prompt:
请判断正确文档是否被 filter 排除了。
如果是,请指出具体 metadata 条件,而不是建议换模型。
5. 常见根因三:没有 Rerank
Embedding 召回的 top_k 里可能有正确片段。
但排在第 9 名。
生成模型只看前 3 个。
答案就错。
解决:
增加 top_k。
加 rerank。
让答案模型看到 rerank 后前 N 条。
记录正确证据排名。
Fable 5 可以帮你审查:
哪些 query 需要 rerank。
哪些 query 是精确关键词。
哪些 query 是语义问答。
6. 4SAPI 分工
RAG 系统里不同模型分工:
| 阶段 | 模型 |
|---|---|
| Query 改写 | 中低成本模型 |
| Embedding | 专用向量模型 |
| Rerank | Rerank 模型 |
| 答案生成 | 中高能力模型 |
| 复杂失败分析 | Fable 5 |
| 日志总结 | 低成本模型 |
4SAPI 记录:
query_id
embedding_model
rerank_model
answer_model
top_k
hit_rank
answer_has_citation
cost
7. 做一个小型 RAG 评测集
不要只凭一次问答判断 RAG 好坏。
建议先做 20-50 条小评测集。
每条包含:
问题。
标准答案。
正确文档。
正确 chunk。
必须出现的证据。
不应该出现的错误答案。
然后记录:
正确 chunk 是否召回。
正确 chunk 排名。
最终答案是否引用证据。
答案是否完整。
是否出现幻觉。
让 AI 帮你分析评测结果:
请根据这批 RAG 评测记录,按失败类型聚类。
区分:未召回、召回排名低、证据冲突、答案没引用证据、文档过期。
每类给一个代表问题和修复建议。
这类分析用 Fable 5 很合适。
因为它需要看多个失败案例里的共同模式。
8. 引用检查很重要
企业知识库不要只看答案对不对。
还要看:
答案是否能指回证据。
证据是否真的支持结论。
引用的文档是否过期。
引用是否越权。
可以让模型每次回答后再跑一个轻量检查:
请检查答案中的每个关键结论是否被引用片段支持。
输出:支持 / 部分支持 / 不支持。
不要补充新知识,只基于给定证据判断。
这个检查不一定要用 Fable 5。
中等模型就能做。
但如果是法务、财务、医疗、企业制度这类高风险知识库,建议 Fable 5 或人工复核。
9. 排查样例:正确文档在第 8 名
一个很常见的 RAG 事故是:
正确文档其实召回了,但排得太后。
比如用户问:
4SAPI 项目预算超过 80% 后会不会自动停用?
召回结果里:
第 1 名:模型价格说明。
第 2 名:Key 创建教程。
第 3 名:调用日志字段。
第 8 名:预算告警和停用策略。
如果答案模型只看前 3 条,它就可能编一个“会自动停用”或者“不会自动停用”。
这时不要急着换 Fable 5。
先让 AI 分析:
为什么正确 chunk 排在第 8 名?
query 是否需要改写?
chunk 标题是否缺失?
metadata 是否没有标 budget?
rerank 是否把“价格”误认为“预算”?
修复可能是:
给预算文档补标题路径。
把“预算、额度、用量、停用、告警”加入同义词。
top_k 从 5 提到 20,再 rerank 到 5。
答案模型只允许基于 rerank 后证据回答。
4SAPI 在这里可以记录答案模型,但 RAG 系统自己也要记录:
query_rewrite
retrieved_doc_ids
hit_rank
rerank_top_ids
answer_citation_ids
当你有了这些字段,Fable 5 才能做真正的链路诊断,而不是凭最终答案猜原因。
10. AI Prompt
你是 RAG 召回质量排查助手。
请根据用户问题、预期答案、召回片段、rerank 排序、最终答案和检索配置,判断问题属于:
1. 文档未入库
2. chunk 切分不合理
3. embedding 召回差
4. filter 或权限条件错误
5. rerank 缺失或排序错误
6. 答案模型没有使用证据
7. 文档过期或冲突
要求:
- 不要先建议换更贵模型。
- 先判断正确证据是否被召回。
- 每个结论引用 chunk 或 metadata 证据。
11. 总结
RAG 回答差,先看召回。
不要先换模型。
AI 排查 RAG,关键是把链路拆成:
query -> retrieve -> filter -> rerank -> answer -> citation
4SAPI 可以把各阶段模型、成本和效果记录下来。
Fable 5 适合做复杂失败分析。
一句话:
模型没看到正确证据,再强也会答偏。