RAG 不是向量数据库的堆砌:一次检索质量优化实录
把文档灌进向量库只是起点。这篇记录一次检索质量排查:如何区分没召回和召回没用,切片、混合检索、重排各自解决哪一段,以及怎样用五十条标注把每次改动量化。
输入关键词开始搜索
试试「Docker」「RAG」「死锁」AI Engineering · 09 POSTS
大模型、RAG 与 Agent 的工程实践。
把文档灌进向量库只是起点。这篇记录一次检索质量排查:如何区分没召回和召回没用,切片、混合检索、重排各自解决哪一段,以及怎样用五十条标注把每次改动量化。
同一个 prompt 连跑两次给出两种答案,未必是模型退化。把采样参数、上下文顺序和服务端差异拆开,用格式合法率与多次采样一致率把「稳定」变成两个可测的数字。
选本地模型不是比参数大小。先把权重、KV cache 和并发预留的显存账算清,再确认量化削掉了哪类能力,最后用首 token 延迟和生成速度决定 7B、14B 还是 32B,以及它值不值得占你一张卡。
演示里能查单、能下单的 Agent,接进真实系统后成功率不到七成。问题多半不在模型,而在参数 schema、错误信息、幂等、工具数量和终止条件这五处,每一处都能单独修。
关键词搜不到「多久能收到发票」,因为原文写的是「二十四小时内发送」。这篇把向量检索拆成归一化、内积、切片和阈值四件事,并给出一份能直接跑的代码。
在 prompt 里写「不要编造」基本无效。把答案拆成句子,逐句检查引用是否存在、数字是否对得上、证据是否覆盖,再把不达标的部分换成拒答,并给出下一步建议。
「模型不懂我们的业务」这句话,八成该用 RAG 解,不是微调。把知识、行为、格式和成本四件事分开看,用一张表决定该改索引还是改权重,以及先跑哪个基线。
Demo 里一次调用只要一点二秒,上线后长尾变成几十秒,账单还超了预期。超时要分层、重试要有总预算、降级要留退路、成本要能归因,四件事缺一件就得出事。
有的任务能省掉大半时间,有的反而更慢。按「可验证性」和「上下文局部性」分四格,看清哪些该交、哪些必须自己写,验收闸门该卡在哪一步。