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」

相关推荐
龙侠九重天5 小时前
RAG 检索增强生成:原理与应用场景
ai·大模型·rag·检索增强生成
dddaidai1236 小时前
LlamaIndex
python·ai·rag·llamaindex
knight_9___7 小时前
RAG面试篇10
人工智能·python·机器学习·agent·rag
knight_9___7 小时前
RAG面试篇11
java·面试·职场和发展·agent·rag·智能体
uncle_ll18 小时前
LangChain基础学习笔记
笔记·学习·langchain·llm·rag
yuyuyui20 小时前
LangChain框架-Model
langchain·rag
knight_9___1 天前
RAG面试篇6
人工智能·python·机器学习·agent·rag
knight_9___1 天前
RAG面试篇9
java·人工智能·python·算法·agent·rag
knight_9___1 天前
RAG面试篇8
人工智能·python·面试·agent·rag
AI算法沐枫2 天前
OpenAI Operator vs Claude Act:两大厂商Agent对比
人工智能·深度学习·神经网络·计算机视觉·大模型·rag