乐于分享
好东西不私藏

你的 AI 知识库为什么总是"答非所问"?

你的 AI 知识库为什么总是"答非所问"?

你的 AI 知识库为什么总是"答非所问"?

——一个搜索算法打工人的 RAG 故障排查手册

---

开头先讲个真实的场景

某中型制造业公司,老板花了快 60 万做了一个"AI 知识问答系统":接入了最新的大模型、买了向量数据库、找了外包团队定制了前端,上线时还开了内部发布会。

两个月后,数据后台一看:**员工日均使用次数不到 3 次,很多人点进去问一句就关掉了**。

运营团队去食堂调研,得到的反馈高度一致:

> "问它报销流程,它给我返了一段十年前的规章。"

>

> "让它查某型号的参数,它信心满满地编了一个不存在的数值。"

>

> "还不如在群里 @ 一下老王来得快。"

老板很困惑:**"模型不是最新的吗?为什么还是答非所问?"**

---

先说结论

做了 8 年搜索和排序,看过不下 50 个企业 RAG 系统的案例,我可以很负责任地说一句:

**AI 知识库"答非所问",绝大多数情况下不是模型的问题。**

从工程实战里看,RAG 系统的故障大致是这样分布的:

  • 约 70% 来自数据层和检索层(数据本身、切分、向量化、召回、重排)
  • 约 20% 来自 Prompt 和上下文组装(怎么把召回的内容喂给模型)
  • 只有约 10% 真的和大模型本身的能力有关
换句话说,**你换一个更贵的模型,大概率解决不了你的问题**。真正的问题藏在那条你从没认真审视过的"数据流水线"里。

下面我把这条流水线上最常出问题的 7 个环节拆给你看。这是我自己内部做诊断时用的清单,你也可以照着自查。

---

01 数据质量:你喂给系统的原料本身就是坏的

**典型症状**:回答里夹杂过时信息、多个版本信息打架、同一个问题问两次答案不一样。
**常见原因**:
  • 知识库里同时塞着 v1、v2、v3 的文档,没做去重和版本管理
  • PDF 解析质量差——表格结构丢失、图片里的文字完全读不到、双栏排版被错误地按行拼接
  • 内部术语和缩写没有归一化("北京仓"、"京仓"、"BJ Warehouse" 在系统眼里是三个东西)
  • 过期内容没设置归档策略,新老政策混在一起被召回
**为什么这一步最重要**:RAG 系统的上限由数据质量决定。你 Garbage In,无论用多贵的模型都是 Garbage Out。

---

02 文档切分:切得太大或太碎

**典型症状**:召回的段落要么信息量不完整(关键上下文被切到下一块),要么堆了一大堆无关内容稀释了信号。
**常见错误**:
  • 盲目按固定长度切分(比如"每 512 token 一段")
  • 不考虑语义边界——小节标题和内容被分开、表格被切成两半、代码块从中间断掉
  • 对所有文档类型用同一套切分策略
**更专业的做法**:
  • 结构化切分:按章节 / 小节 / 段落的自然边界切
  • 多粒度索引:同一份文档建 "细粒度段落 + 粗粒度章节" 两套索引,召回时先粗后细
  • 父子块关系:召回的是子块,但喂给模型的是父块的上下文

这一步做得好不好,直接决定了 Top-K 召回的质量天花板。

---

03 向量模型:你用的 Embedding 和你的业务根本不在一个语义空间

**典型症状**:用户搜"如何退款",系统返回"如何下单"的段落。语义"看起来相关",但业务上完全驴唇不对马嘴。
**常见错误**:
  • 直接拿通用 Embedding 模型(bge、m3e、text2vec 等)去处理专业领域(医疗、金融、法律、制造业)
  • 中英文混合语料用了单语模型
  • 从未在自己的业务语料上做过适配或微调
**为什么这是重灾区**:通用 Embedding 是在公开语料上训练的,它"认识"日常表达,但不理解你的行业黑话。在你的内部知识里,"核销"、"冲红"、"挂账"、"出账" 这几个词彼此关系紧密,但通用模型可能把它们映射得毫无关联。
**更专业的做法**:
  • 用业务语料做对比学习微调(难负例挖掘)
  • 构建业务查询-文档对齐的评测集,定期测 Embedding 的召回命中率
  • 如果预算有限,至少做领域适配(domain adaptation)

---

04 检索策略:只靠向量检索是在漏召回

**典型症状**:明明知道这份文档在库里,但怎么问都搜不到。
**常见错误**:
  • 只用向量检索,不做混合检索(Hybrid Retrieval)
  • 没有关键词检索(BM25)兜底——而很多时候用户的 query 就是明确的关键词(如"2024 差旅标准")
  • 没用上元数据过滤(时间、部门、文档类型、机密等级)
**更专业的做法**:

多路召回 + 融合:

  • Vector Recall:语义相似召回
  • BM25 / 关键词 Recall:精确词匹配
  • Metadata Filter:先用业务属性过滤掉不相关的大头
  • RRF 或加权融合 多路结果

这一步做好之后,通常召回命中率(Recall@20)能从 60% 提升到 85% 以上。

---

05 重排(Reranking):Top-1 准确率低得可怕

**典型症状**:召回的 Top-20 段落里确实有正确答案,但因为排序问题,Top-1 给的是错的。模型拿着错答案一本正经地编。
**常见错误**:
  • 压根没做 Rerank,直接把召回 Top-5 丢给模型
  • 做了 Rerank 但选了通用的弱模型
  • Rerank 模型和召回模型的"口味"打架
**更专业的做法**:
  • 用专门的 Cross-Encoder Rerank 模型(bge-reranker-v2、Cohere Rerank 等)
  • 对召回的 Top-50 做精排,输出 Top-3 或 Top-5 给大模型
  • 定期用 bad case 反推、评估 Rerank 的 NDCG@3

Rerank 这一步在搜索系统里价值极高,很多团队做完了立刻就有可感知的效果提升。

---

06 Prompt 和上下文组装:把一堆段落乱堆给模型

**典型症状**:回答东拉西扯,引用错源,两段矛盾信息都被照单全收。
**常见错误**:
  • 直接把召回的段落拼在一起塞进 Prompt,没有结构化标注
  • 没有引用机制(模型无法告诉用户"我是根据第几段说的")
  • 没有冲突处理逻辑(两段说法相反的上下文同时出现时,模型就乱说)
  • System Prompt 太弱,没严格约束"只基于给定上下文回答,不知道就说不知道"
**更专业的做法**:

```

System: 你只能基于下列上下文回答。

每一条回答都必须标注引用的段落编号。

如果上下文无法支撑结论,请直接回答"根据现有资料无法确定"。

Context:

[1] 来源: 员工手册 v3.2, 第 4.2 节

内容: ...

[2] 来源: 财务报销制度 2024 版, 第 3 章

内容: ...

User query: ...

```

关键动作包括:

  • 每段上下文带 source id + 出处 + 章节
  • 强制模型在回答末尾列出引用
  • 建立 abstain 机制:无把握就拒绝回答,而不是幻觉

---

07 评测体系:没评测就是在瞎调

**典型症状**:"这次改完好像好一点?"、"上周明明 OK 的怎么又不行了?"—— 全凭玄学。
**常见错误**:
  • 没有固定的评测集
  • 只看总体准确率,不分维度
  • 从不做 bad case 归因分析(到底是召回挂了、Rerank 挂了、还是生成挂了)
**更专业的做法**:
  • 构建 100-300 条代表性评测集(覆盖高频场景、长尾场景、边界场景)
  • 分维度评测:召回命中率 Recall@K、Rerank Top-1 准确率、回答准确率、引用准确率、幻觉率
  • 每次迭代跑一遍评测集,生成对比报告
  • 对每一条 bad case 做归因:到底挂在 7 个环节中的哪一环

**一句话:RAG 系统没有评测体系,就像开车不看仪表盘——你不知道自己是在进步还是在退步。**

---

给你的自检清单:企业 RAG 健康度体检(10 个 Yes / No)

如果下列问题中,你的 "Yes" 少于 6 个,你的知识库系统大概率有明显优化空间:

  1. 你知道自己的 **Recall@20 命中率**是多少吗?
  2. 你有没有一个**固定的评测集**,每次改动后都跑一遍?
  3. 你是否做了**混合检索**(Vector + BM25 + Metadata)?
  4. 你是否用了**专业的 Rerank 模型**对 Top-20 做精排?
  5. 你的 Embedding 模型是否**在业务语料上做过适配**?
  6. 你的文档切分是否考虑了**语义边界和表格结构**?
  7. 每个召回段落是否带了**来源编号和章节信息**?
  8. 回答里是否有**引用标注**,可以让用户跳转到原文校验?
  9. 遇到上下文冲突或信息不足时,系统是否有**拒绝回答机制**?
  10. 你有没有定期做 **bad case 归因**,区分是召回挂了还是生成挂了?

---

结尾:免费帮 3 家公司做一次诊断

写这篇文章的初衷,是最近帮几个朋友公司看他们的 AI 知识库,发现这些问题实在太普遍了——几乎每一家都在重复同样的几种坑。

我打算业余时间免费帮**3 家公司**做一次完整的 RAG / 企业搜索诊断,产出一份**可执行的优化清单**(通常是 5-8 页的报告)。内容包括:
  • 当前系统在上述 7 个环节的健康度打分
  • 明确定位问题最严重的 2-3 个环节
  • 给出短期(2 周内可落地)和中期(1-2 个月)的优化路径
  • 附评测集搭建方法和基线指标建议
**适合**:
  • 已经上线了 AI 知识库 / 问答系统,但效果不达预期的团队
  • 正在规划 RAG 项目,想先避坑的团队
  • 企业内部有知识管理、客服、培训等场景需求
**要求**:
  • 愿意提供一定量的真实 query 和召回日志(可脱敏)
  • 能有一次 60 分钟的沟通会议
  • 案例可脱敏后用于分享(不涉及公司名和具体业务数据)
**报名方式**:公众号后台回复「诊断」,或添加我微信(微信号会在回复里发给你)。

---

关于我 · 关于 TAO AI LAB

搜索算法 + 排序系统 + 大模型应用,搬了 8 年砖。

做过电商、内容、信息流三种场景的搜索和排序,现在专注在企业级 RAG 和 AI 应用的诊断与优化上。

TAO AI LAB 是一个小而专的 AI 应用诊断和优化工作室。我们相信:**大多数企业的 AI 不好用,不是因为模型不够好,而是因为工程不够细**。

其他渠道:

  • 小红书:TAO AI LAB(轻量内容)
  • 即刻:TaoTao.搜索AI算法打工人(日常思考)

欢迎关注本公众号(TAO AI LAB)获取更多深度内容。

---

*如果这篇文章对你有帮助,欢迎转发给同样在做 AI 知识库的朋友。*

*下一篇预告:《企业 RAG 系统的评测集怎么构建?一份 100 条 eval set 的搭建手册》*