从检索到 RAG
定义
RAG 不只是把检索结果塞进提示词,而是通过切分、元数据管理、权限过滤、结果融合和引用控制,让检索结果成为可靠、可评测的回答依据。
说明
在线链路通常包括四步:用写入时同一个模型编码查询;在检索阶段执行租户和权限过滤,再进行 Top-K 向量检索;对候选结果重排、去重并控制 Token 总量;最后要求模型只依据证据回答并给出引用来源。权限过滤必须在检索阶段完成,不能只依赖提示词约束模型。
离线摄取决定了 RAG 的上限。内容需要按标题、段落和语义边界切分,保留少量重叠以维持上下文;同时保存来源、版本、章节、租户和访问控制等元数据,后续引用、过滤和删除都依赖这些信息。内容或 Embedding 模型变化后需要重新计算向量,并用蓝绿 collection 切换避免新旧向量混用。
评测应分两层:检索层评测 Recall@K、MRR、nDCG 和过滤正确性;答案层评测忠实度、引用准确率和拒答率。只看回答是否流畅会掩盖检索失败。
边界与误区
向量检索和关键词检索为什么要混合: 向量检索擅长语义相似,但可能漏掉产品型号、错误码等必须精确匹配的词语。关键词检索能覆盖精确词,两者混合可以提升召回质量,不过两种分数尺度不同,不能直接相加,通常需要用 RRF 等融合方法按排名合并。
RRF 和重排分别解决什么问题: RRF 用于融合多路检索结果,它只依赖排名而不是原始分数,实现简单、稳健;重排则用更精确的模型对候选集进一步排序,并完成去重和 Token 控制,通常在 RRF 之后进行。