知识库系列 EP04:给检索调了 22 条参数,最扎心的是发现它早就在重排了
从零开始搭建知识库 · EP04 · 检索篇(基础篇收官)
上期往库里塞完五份脏文档,我自己琢磨的第一个药方也是开重排:rerank 一上旧版不就压下去了?社区里讲检索优化的文章也基本都把重排当标配。但这题我没测过,心里没底。这期补上,22 条命令,把 bl knowledge retrieve 的参数面从头到尾拧了一遍。
先说最扎心的发现。我跑 bl knowledge info 看了一眼库配置,返回里赫然一行 rerankModelName: qwen3-rerank。也就是说,建库的时候选过排序模型的话,重排从那天起就一直在跑,每条检索都过它的手。我加 --rerank 重跑,五条返回一条没变。这 flag 是确认现状用的,不是打开新功能用的。
怕是自己测试姿势不对,我又换了个重排模型(--rerank-model qwen3-rerank-hybrid)重跑,五条分数整体变了,从 0.7226 档掉到 0.6878 档,但排位一个没动。参数确实传到了服务端,链路是通的,只是重排本来就开着。
然后是正面回答。上期最疼的考题,问"报销发票怎么提交",2023 旧版 0.7226 第一,现行版 0.7055 第二。这期我用了最狠的姿势:custom 模式加重排指令,白纸黑字写"优先返回2026年现行版制度"。结果跟基线逐位一致,旧版稳坐第一。similar 模式也一样,普通 rerank 也一样,问"新疆买沙发能发货吗"那条烂 Excel 碎片也还是 0.7982 第一。四组对照,全部纹丝不动。
想明白之后其实不难受。重排干的活是对候选切片按"和问题的文本相关度"重新打分。旧版那句"报销单与发票原件装订后交财务部王会计处",跟"报销发票怎么提交"长得就是像答案。reranker 打分打得再准,也只是把"更相关的"排前面,它不知道哪份制度作废了,这从来不是它的活儿。语料的病,得回语料治,参数管不着。
中间还翻出一个好玩的参数坑。--rerank-mode 明明在参数表里躺着,我往里填了个不存在的值 xxx,命令照常跑完,连报错都没有。无效值都不报错,说明这参数在查询时根本没被服务端消费。官方文档里有对应说法:排序模型的模式仅建库时可选,创建后无法修改。参数表里有,不代表你查询时改得动。
top-k 那两个参数也顺便弄清楚了。单设稠密 5 或者单设稀疏 5,啥也不变;两路一起设 5+5,返回里的 total 字段从 27 变成 6。原来 total 是进重排的候选池大小,top-k 管池子多大,--rerank-top-n 管从池子里端出几条。最有意思的是一次报错:两路各设 1,重排窗口设 10,服务端直接 400,报错原文就一行公式,dense_similarity_top_k + sparse_similarity_top_k >= rerank_top_n。两路召回之和必须装得下重排窗口,1+1 装不下 10,拒收。服务端把流水线的数学约束写在了报错里,这条报错比十篇教程都直观。
重排窗口开到 100 会怎样?我试了,只回来 17 条(全库 27 片)。少的 10 条被 rerankMinScore 0.2 这道闸拦住了,重排打分低于 0.2 的直接扔。你要 100 条是上限,过线的才是实际。
还有个换问法的实验,结果有点疼。"新疆买沙发能发货吗",答案碎片 0.7982 第一;换成口语的"偏远地区买大件家具送不送",第一名变成一条答非所问的碎片"大件华东免费送装",0.7420,就因为"大件"俩字撞上了。报销那条更狠,"发票交了之后多久能报下来"一问,现行版直接掉出前五,top5 里旧版 0.4700 带着四条烂 Excel 碎片。检索匹配的是字面,不是意图,用户不会照文档的措辞提问。
两件事收尾。一是勘误:上期我说知识库导入没有命令行命令,错了。bl knowledge --help 实际列出 31 条子命令,doc upload 就在列,我完整跑了一遍闭环:上传、PARSE_SUCCESS、删除清理,全通。错的原因是我只查了当期要用的那几条,把"我查到的"当成了"存在的"。二是新发现:retrieve 标记 deprecated 了,接棒的是 bl knowledge search,走已部署的检索服务,同一条 query 分数逐位一致,返回形态更适合直接喂 Agent。
最后把 22 条命令压成一张排查顺序,检索不准从上往下走:先看证据在不在场(top5 没有正确答案就回去修语料,调参没用),再跑双问法对照(字面口语各问一遍,top1 漂移说明问法和文档距离大),然后才轮到参数(top-k 管池子,top-n 管端出几条),重排的期望放平(它让更相关的排前面,不生产正确答案)。
基础篇到这里收官。下期进阶篇,把检索接到 Agent 上,让它自己决定什么时候查、查到了怎么用。那 11 片烂 Excel 还在库里躺着,到时候看 Agent 拿它们怎么办。
22 条检索命令基于百炼 CLI 实测,request_id 留痕于项目仓库。CLI 安装:官方文档,API Key:免费领取(新用户有免费额度)。

浙公网安备 33010602011771号