第 16 讲 · 召回质量调优:混合检索、重排序与评估指标
开篇:一次说不清对错的效果评审会
第 13 讲我们把最小 RAG 跑通了,第 14 讲调了切分,第 15 讲把 pgvector 的 HNSW 索引建好。东西能用了,于是你把它推给客服组试用。两周后的效果评审会上,发生了这样一段对话:
产品:「这个问答不准,我问『报销多久到账』,它给我讲了一堆发票贴法。」
你:「我把 top_k 从 3 调到 5 了,应该好一些。」
产品:「还是不对。还有,问『差旅系统报 ERR_2049 怎么办』,它说没找到相关资料,但我明明记得文档里写了。」
你:「那我把相似度阈值从 0.35 降到 0.2?」
运维:「别降了,降到 0.2 之后 P95 从 180ms 涨到 900ms,客服说卡。」
产品:「那你到底能不能改好?」
这段对话里藏着三个真实的工程问题:
- 没有指标。大家都在说"不准",但"不准"是多少?62% 还是 81%?改完之后是 65% 还是 78%?没有数字,所有的争论都是立场之争。
- 没有测试集。你只能靠产品同学随手问的十个问题判断好坏,而这十个问题这周和下周还不一样,昨天改好的今天又"感觉变差了"。
- 不知道该动哪个环节。召回率不够、排序不对、片段切坏了、模型生成跑偏了——这四种病症状一模一样,但药完全不同。你把
top_k从 3