RAG 知识库检索参数怎么调?一篇讲清 top_k、BM25、Rerank、各种阈值的区别

很多人在刚开始做知识库问答、Dify 工作流、RAG 系统时,最容易遇到的问题不是"模型不够强",而是:

  • 为什么知识库明明有内容,模型却答不出来?
  • 为什么只答了一条,明明文档里还有很多条?
  • 为什么会把多篇文档拼在一起,答得乱七八糟?
  • top_k、Score 阈值、Rerank、重排阈值,到底分别控制什么?

这些问题本质上都不是"模型问题",而是:

知识库检索参数和切片策略没调对。


一、先说结论:RAG 的核心不是生成,而是检索链路

真实系统流程:

用户问题

→ 召回(top_k)

→ 过滤(Score阈值)

→ 重排(Rerank)

→ 再过滤(重排阈值)

→ 拼接上下文

→ 大模型生成

👉 模型答得好不好,取决于:

前面给了它什么内容


二、top_k:控制"先找多少资料"

举个例子(电商客服场景)

用户问:

退货流程是什么?

知识库里有 500 条切片。

  • top_k = 3 → 只取3条
  • top_k = 15 → 取15条

top_k 小

优点:

  • 干净
  • 精准

缺点:

  • 容易漏信息

top_k 大

优点:

  • 信息更全

缺点:

  • 噪音更多

一句话总结

top_k 决定模型"先看到多少参考资料"


三、Score 阈值:第一道过滤

作用:

过滤掉"不够相关"的候选内容

例如:

  • top_k = 10
  • Score 阈值 = 0.5

→ 最终可能只剩 5 条


一句话总结

Score 阈值 = 初检过滤线


四、Rerank:重新排序,让结果更准

Rerank 的作用:

对召回结果重新打分排序

流程:

初步检索

→ 得到候选结果

→ Rerank重新打分

→ 排序


举个例子(产品文档场景)

用户问:

如何创建用户账号?

初步检索可能返回:

  • 用户账号创建流程
  • 用户权限管理
  • 用户数据统计

Rerank 会把:

👉 "创建流程" 排到最前


一句话总结

Rerank = 二次排序,不增加内容,只提升准确度


五、重排阈值:第二道过滤

作用:

在 Rerank 后再次过滤低质量结果


对比总结

  • Score 阈值 → 初检过滤
  • 重排阈值 → 重排后过滤

六、三层过滤机制(非常关键)

假设你问:

用户注册流程有哪些步骤?

系统流程:

  • Score 阈值 = 0.5 → 第一轮过滤
  • 重排阈值 = 0.6 → 第二轮过滤
  • 最终相关度 = 0.7 → 最终拼接过滤

一句话总结

逐级收紧,层层过滤


七、BM25:传统关键词检索

适用于:

  • FAQ
  • 帮助文档
  • 产品说明
  • 固定术语

举例

搜索:

用户登录问题

BM25 返回:

  • 用户登录失败原因(高)
  • 用户登录流程(中)
  • 用户注册说明(低)

特点

优点:

  • 精确
  • 稳定

缺点:

  • 不理解同义词

一句话总结

BM25 = 关键词匹配型检索


八、精确搜索

特点:

必须完全匹配


举例

搜索:

用户注册流程

只返回:

  • 用户注册流程说明 ✅

不会返回:

  • 注册步骤 ❌

一句话总结

精确搜索 = 完全匹配,不做理解


九、语义检索(向量检索)

特点:

理解"意思相近"


举例

用户问:

怎么创建账号?

系统也能匹配:

  • 用户注册流程

一句话总结

语义检索 = 按意思找内容


十、混合检索(最推荐)

组合:

BM25 + 向量检索


作用

  • BM25 → 精确
  • 向量 → 语义

一句话总结

既要精准,也要理解语义


十一、为什么经常"只答一条"?(核心问题)

原因:

跨切片问题


举例(客服文档)

文档内容:

  1. 注册流程
  2. 登录流程
  3. 修改密码
  4. 找回密码

如果只召回 1 条:

👉 模型只回答一个


解决方案

  • 提高 top_k
  • 降低阈值
  • 优化切片结构
  • 提问加限制:逐条列出

十二、为什么会"答乱"?(跨文档问题)

问题:

多篇文档被混合回答


举例

用户问:

用户注册流程

系统召回:

  • 官网文档
  • 内部文档
  • FAQ
  • 培训材料

👉 模型拼着答 → 混乱


解决方案

  • 限制来源
  • 增加文档标识
  • 优先单文档回答

十三、检索参数 vs 生成参数(非常重要)


检索 top_k

作用:

控制"看多少资料"


生成 top_k / top_p

作用:

控制"怎么说话"


一句话总结

一个控制"看什么",一个控制"怎么说"


十四、生成参数

1)max_tokens

控制:

  • 回答长度

2)temperature

  • 低(0.1):稳定
  • 高(0.8):发散

一句话总结

低温稳定,高温发散


十五、实战调参建议

情况1:答不全

  • top_k ↑
  • 阈值 ↓
  • max_tokens ↑

情况2:答得乱

  • top_k ↓
  • 阈值 ↑
  • 开启 Rerank

情况3:不够准

  • 开启 BM25
  • 使用混合检索

十六、最终总结(最重要一句话)

RAG 的核心是:

召回 → 过滤 → 排序 → 生成

同时还要:

切片合理 + 提问清晰


十七、结语

真正懂 RAG,不是会用,而是:

知道为什么它会答错,并且知道怎么调。


💬 如果本文对你有帮助,欢迎点赞 + 收藏 + 分享

📌 更多 AI 工程实践内容,欢迎关注「YoanAILab」

相关推荐
星马梦缘3 小时前
提示词工程 与 实践 合集
人工智能·rag·提示词工程·mcp
小刘|6 小时前
揭秘RAG:检索增强生成技术解析
langchain·rag
菜到离谱但坚持9 小时前
【小白零基础】RAG+LangChain 搭建私有知识库问答系统(完整可运行代码+超详细教程+避坑指南)
python·langchain·rag
HappyAcmen10 小时前
2.PDF长文档完整读取
python·pdf·rag
尽兴-13 小时前
2.2 RAG 体系:RAG、Chunk 分块、Rerank 重排、混合检索
rag·混合检索·chunk 分块·rerank 重排
你不是我我14 小时前
【Agent 学习日记】Agent 的记忆是如何设计的?短期记忆和长期记忆有什么区别?
agent·rag
染指111014 小时前
19.LangChain框架7-LangChain1.0版本使用Agent(中间件实例)
人工智能·python·机器学习·langchain·agent·rag
lianyinghhh1 天前
FlowGame 从零上手:开源 AI 工作流编排框架与 Vue 3 接入实战
python·低代码·开源·vue·rag·flowgame·ai工作流编排
SL-staff2 天前
企业级私有化AI知识库完整搭建指南:从RAG架构到Llama 3落地实践
人工智能·系统架构·私有化部署·rag·ai知识库·llama3·jvs-ai
逻极2 天前
Hermes Agent深度解析:从ReAct到多智能体系统架构实战
llm·agent·react·rag·多智能体系统