智构学堂人工智能应用工程
返回路线

生产级检索增强生成(RAG)与知识系统

混合检索、重排与查询改写

40 分钟 · 挑战 · 会员章节

公开章节可直接阅读。登录后可同步阅读进度、保存笔记与高亮、完成章节测验。

学习目标

  • 理解关键词检索和向量检索各自适用场景。
  • 能设计 retrieve、merge、rerank 的基础流程。
  • 知道查询改写如何提升模糊问题召回。

核心概念

向量检索擅长语义相近,关键词检索擅长精确命中。用户问“怎么撤销付款”,向量可能命中“退款流程”;用户问“SSO SAML 配置”,关键词往往更可靠。生产系统通常需要混合检索。

混合检索先从多个召回器拿候选片段,再合并、去重、归一化分数。Rerank 再对候选片段和用户问题做更细的相关性判断,把最适合进入上下文的片段排到前面。

查询改写解决用户输入和知识库表达不一致的问题。例如用户问“项目怎么交”,可以改写为“项目提交要求 交付物 运行说明 验收标准”。

示例与拆解

一个查询链路可以这样组织:

1{ 2 "query": "项目怎么交", 3 "rewritten_queries": ["项目提交要求", "项目交付物 运行说明 验收标准"], 4 "retrievers": ["keyword", "vector"], 5 "merge": "dedupe_by_chunk_id", 6 "rerank_top_n": 20, 7 "context_top_k": 5 8}

如果 keyword 命中“提交要求”,vector 命中“交付物定义”,重排器应该根据问题把包含提交材料、运行说明和验收标准的片段排前。

常见误区

  • 误区一:只用向量检索。精确术语、错误码、产品名和 API 名称常常需要关键词。
  • 误区二:把 rerank 当召回。候选池里没有正确片段,重排也救不了。
  • 误区三:查询改写自由发挥。改写必须保留用户意图,不能加入不存在的假设。

小练习

为“项目提交要求”设计一个混合检索流程,写出原始查询、改写查询、关键词召回、向量召回、合并和重排规则。

实操检查点

准备 5 个用户口语化问题,为每个问题写出应该命中的 chunk id。再说明 keyword、vector、rerank 各自负责什么。

1问题:最后要交哪些东西? 2改写:项目提交要求 交付物 运行说明 3期望命中:project_ai_knowledge_assistant_deliverables

如果一个问题完全依赖模型猜,说明知识库表达或查询改写还不稳定。

随堂测验

完成本章测验,重点检查你是否理解多路召回和重排的分工。

本章总结

生产级检索增强生成需要组合关键词、向量、查询改写和重排。正确片段先被召回,才有机会被模型使用。

下一步学习指引

下一章学习增量索引、回收策略和质量回归,解决知识持续变化后的稳定性。