NLP / AIGC / 03

RAG、知识库与检索增强

RAG 的目标是让大模型基于外部知识回答问题,减少幻觉,并接入企业私有知识。它不是“向量库 + prompt”这么简单,而是一条检索、重排、生成和评测链路。

RAG 基本链路

文档处理 -> 切分 -> 向量化 -> 召回 -> 重排 -> 组装上下文 -> 生成 -> 评测

每一环都会影响最终答案质量。

文档处理

文档来源可能是 PDF、网页、Markdown、数据库、工单、知识库。处理时要注意:

  • 清洗噪声。
  • 保留标题层级。
  • 表格和图片处理。
  • 元数据提取。
  • 权限控制。

很多 RAG 效果差,不是模型差,而是文档处理差。

切分

切分 chunk 太短会丢上下文,太长会影响召回精度和上下文成本。

常见策略:

  • 按标题切。
  • 按段落切。
  • 滑动窗口。
  • 保留父子层级。
  • 对代码、表格、FAQ 单独处理。

召回

召回方式:

  • BM25 关键词召回。
  • 向量召回。
  • 混合召回。
  • 多路 query rewrite。

向量召回适合语义匹配,但关键词、编号、专业术语场景下 BM25 仍然很重要。

重排

召回候选通常需要重排。Cross-encoder 或 reranker 可以更准确判断 query 和文档片段的相关性。

重排能显著提升答案质量,尤其是召回候选较多时。

生成

生成阶段要控制:

  • 只基于证据回答。
  • 引用来源。
  • 不知道时拒答。
  • 输出格式稳定。
  • 避免泄露无权限内容。

Prompt 要包含任务、上下文、约束和输出格式。

评测

RAG 评测至少看:

  • 召回是否命中答案片段。
  • 重排是否把正确片段排前。
  • 答案是否正确。
  • 是否有幻觉。
  • 引用是否准确。
  • 延迟和成本。

如果只看最终答案,很难定位问题出在召回、重排还是生成。

面试题:RAG 效果差怎么排查

按链路排:

  1. 文档是否干净。
  2. chunk 是否合理。
  3. query 是否需要改写。
  4. 召回是否命中。
  5. 重排是否有效。
  6. prompt 是否约束清楚。
  7. 模型是否适合。
  8. 评测集是否覆盖真实问题。

面试题:RAG 和微调怎么选

RAG 适合知识频繁更新、需要引用来源、企业私有知识的场景。微调适合固化风格、格式、任务能力或领域表达。很多系统会组合使用:RAG 提供知识,微调提升遵循指令和格式稳定性。

总结

RAG 是检索系统和生成模型的结合。面试里要讲清召回、重排、上下文、生成约束和评测闭环,不能只说“用了向量数据库”。

下一篇建议继续看: