一套 RAG 系统在测试集上几十道题只错少数几道,看起来已经能放心用了。结果把问题换一种表达方式,之前能检索到的资料,突然就找不到了。
问题不在模型变弱了,而在评测方式本身有盲区:真实用户根本不会按你准备好的模板提问。知识库里有一份差旅制度,标准测试题问的是“员工住宿报销上限是多少”,真实用户却可能问“我明天去外地出差,酒店最多能订多少钱”,甚至只问某个城市、某种职级对应的住宿标准,连差旅制度四个字都不提。业务上是同一件事,关键词、句子结构和表达方式全变了。检索系统一旦过度依赖固定关键词,或者查询改写环节丢了业务条件,召回立刻出问题。
所以测试集里最该补的,是语义变化:同一个事实用不同说法提问,问题里掺进无关信息,或者故意省略某些条件,检查系统会不会乱猜。换 Embedding、换 Reranker、改查询改写策略之后,都拿同一套独立标准复测,看提升能不能延续到没见过的问题上。
但也别以为换几种问法就够了。资料解析、权限控制、版本有效性、检索排序、答案生成,每一环都可能单独引入错误。更要警惕的是,一套 RAG 在固定测试集上反复调优,很容易变成“适应了样本”,而不是“变强了”。测试集里留一部分,开发过程中不拿来反复调参,才是检验真本事的办法。
固定测试题答得漂亮当然是好事。但如果客户只是换了一种正常说法,系统就开始找错文件,那这个知识库离稳定交付还差得很远。