为什么 RAG 重要

检索增强生成(RAG)是将 LLM 回答建立在你自己数据上的最实用方式。但构建生产级系统远不止连接向量数据库。

分块策略

  • 固定大小:简单但可能割裂语义单元。
  • 语义分块:使用嵌入相似度按含义分割。
  • 递归分块:按标题、段落、句子逐层分割。
  • 文档感知:尊重 Markdown/HTML 结构。

混合搜索

将密集向量搜索与稀疏关键词搜索(BM25)结合,同时捕获语义匹配和精确术语匹配。

重排序

初始检索后,使用交叉编码器模型重新评分结果,显著提高精确度。

评估

  • 忠实度:回答是否忠于检索到的上下文?
  • 相关性:检索到的块是否真正有用?
  • 答案正确性:最终答案是否事实正确?

工具与框架

  • LlamaIndex:高级 RAG 框架,内置常用方案。
  • LangChain:灵活的编排层。
  • RAGAS:专用评估框架。
  • Chroma / Qdrant / Weaviate:各有取舍的向量数据库。

高级分块策略

默认分块(按字符数分割)常破坏语义。更好的方法:

  • 语义分块:用 LLM 识别主题边界。
  • 递归分割:按标题 > 段落 > 句子分割。保留层级。
  • 重叠:块之间添加 10–20% 重叠以保留边界上下文。
  • 元数据丰富:为每个块标记来源、日期、作者和类别。

评估框架

  • 检索精确率:是否检索到正确的块?
  • 忠实度:答案是否仅使用检索块中的信息?
  • 答案相关性:答案是否真正回答了问题?
  • 延迟:端到端时间目标 <3 秒。

生产清单

  • 实现混合搜索(BM25 + 向量相似度)。
  • 添加重排序步骤。
  • 设置检索质量监控。
  • 创建反馈循环。
  • 分别版本化知识库和嵌入。

高级分块策略

默认分块(按字符数分割)常破坏语义。更好的方法:

  • 语义分块:用 LLM 识别主题边界。
  • 递归分割:按标题 > 段落 > 句子分割。保留层级。
  • 重叠:块之间添加 10–20% 重叠以保留边界上下文。
  • 元数据丰富:为每个块标记来源、日期、作者和类别。

评估框架

  • 检索精确率:是否检索到正确的块?
  • 忠实度:答案是否仅使用检索块中的信息?
  • 答案相关性:答案是否真正回答了问题?
  • 延迟:端到端时间目标 <3 秒。

生产清单

  • 实现混合搜索(BM25 + 向量相似度)。
  • 添加重排序步骤。
  • 设置检索质量监控。
  • 创建反馈循环。
  • 分别版本化知识库和嵌入。