flag92 flag92
博客
发布于 Wed Feb 25 2026 08:00:00 GMT+0800 (中国标准时间)
深度评测FastGPTRAG

FastGPT 知识库调优全攻略:把准确率从 0.62 提到 0.89

FastGPT 知识库默认配置只能拿到 60% 准确率,调对了能到接近 90%。本文给出分块策略、问题增强、Reranker 的逐步实测。

基准设置#

  • 数据:3500 条电商 FAQ + 200 条产品文档
  • 测试集:150 道真实用户问题
  • 评估指标:MRR@5

起点:默认配置#

bge-m3 Embedding,500 字按段落切,top_k=5。

结果:MRR@5 = 0.62——勉强能用,但用户反馈「答案常常错位」。

第 1 步:换分块策略#

策略MRR@5提升
按段落切(默认)0.62
按 H2/H3 标题切0.71+9
QA 拆分(FastGPT 自带)0.79+17
父子分块(小切检索 + 大块回传)0.83+21

关键:FastGPT 的「QA 拆分」是国内项目里做得最好的,它会用 LLM 把长段落改写成「问题—答案」对,再分别索引。

第 2 步:开启问题增强#

FastGPT 有个开关叫「索引时问题增强」,对每个 chunk 自动生成 2-3 个变体问题。

状态MRR@5
关闭0.83
开启(每条 2 个变体)0.86

代价:索引时间 3-5 倍,但只是一次性成本。

第 3 步:加 Reranker#

检索回 5 条后用 Reranker 重新排序。bge-reranker-v2-m3 是默认推荐。

配置MRR@5耗时增加 (ms)
无 Reranker0.860
+ bge-reranker-v2-m30.89+150

150ms 换 3 个百分点准确率,几乎所有客服场景都赚。

第 4 步:检索后处理#

后处理MRR@5
0.89
+ 去重(cosine > 0.95 视为同一条)0.89
+ 强制 top_k 内至少有一条「答」类 chunk0.91

第 5 步:Prompt 端的最后一脚#

你是 [品牌] 的客服助手。请只使用「参考资料」回答用户问题。
要求:
1. 若参考资料不足以回答,回复「我没有相关信息,正在转人工」
2. 不要编造任何数字或日期
3. 回答需附上来源 chunk_id

参考资料:
{{context}}

用户问题:{{question}}
Prompt 状态Faithfulness
默认 Prompt0.81
加严格约束 + 引用 chunk_id0.94

总成本对比#

阶段MRR@5Faithfulness累计成本
起点0.620.78
+ QA 拆分0.790.81索引时间 +50%
+ 父子分块0.830.81索引时间 +30%
+ 问题增强0.860.82索引时间 +200%
+ Reranker0.890.85查询 +150ms
+ Prompt 优化0.890.940
总收益+0.27+0.16

没用的尝试#

我们也试过这些但没有显著提升

  • 把 Embedding 换成 Conan-embedding(+0.005,差距在噪音范围)
  • 上下文窗口从 5 改 10 轮(对单轮检索无关)
  • 调高 LLM temperature 让回答「更丰富」(反而降低 Faithfulness)

站内搜索

按 ⌘ K 随时唤起