D
AI
学习工作台
Agent 开发2026-03-171 分钟阅读

RAG 架构设计与优化

从分块、嵌入、检索到重排序,全面掌握 RAG 架构设计与优化策略

RAG检索增强EmbeddingReranking记笔记标记疑惑

RAG 流程概览

RAG(Retrieval-Augmented Generation) 通过检索外部知识库增强 LLM 的生成能力,是构建企业知识问答、文档助手的基础架构。典型流程为:分块 → 嵌入 → 存储 → 检索 → 重排序 → 注入 Prompt → 生成

Chunking(分块)

分块决定了检索的粒度与质量:

  • 固定长度:简单但可能切断语义,适合通用文本
  • 语义分块:按段落、小节、标题等自然边界切分,保留完整语义
  • 重叠窗口:相邻块有重叠,避免边界信息丢失
  • 混合策略:标题+内容、代码按函数/类分块,表格单独处理
块大小建议 256–512 tokens,可根据文档类型微调。

Embedding(嵌入)

将文本转为向量,用于相似度计算:

  • 模型选择:OpenAI、Cohere、开源如 BGE、m3e、E5 等
  • 维度:768–1536 常见,高维度通常效果更好但存储与计算成本更高
  • 归一化:多数场景下对向量做 L2 归一化,便于余弦相似度计算

Retrieval(检索)

  • 向量检索:FAISS、Milvus、Pinecone、pgvector 等
  • 混合检索:向量 + 关键词(BM25),兼顾语义与精确匹配
  • 过滤:按元数据(来源、时间、类型)过滤,缩小检索范围

Reranking(重排序)

初检返回 Top-N(如 50)后,用 Reranker 模型精排取 Top-K(如 5):

  • 交叉编码:BGE-reranker、Cohere Rerank 等,对 query-doc 对打分
  • 成本:只对少量候选重排,延迟与成本可控
  • 收益:显著提升最终注入上下文的准确性

优化策略

  • 查询改写:将用户问题扩展为多个子查询,合并检索结果
  • HyDE:用 LLM 先生成假设性答案,再以其为 query 检索,提升语义对齐
  • 多路召回:向量 + BM25 + 图检索等,再融合排序
  • 上下文压缩:对检索到的长文档做摘要或关键句提取,减少 token 消耗
  • 小结

    RAG 的效果取决于分块、嵌入、检索、重排序各环节的协同。从分块策略入手,选好 Embedding 与 Reranker,再结合业务做混合检索与上下文压缩,可系统性地提升 RAG 的准确率与效率。

    知识卡片

    问题

    RAG 中 Chunking 策略如何影响检索效果?

    点击翻转查看答案

    答案

    块过大易引入噪声、块过小易丢失上下文。常用策略:按语义边界分块、重叠滑动窗口、混合大小块。需结合领域特点(如代码、法律文档)调整。

    问题

    为什么需要 Reranking 步骤?

    点击翻转查看答案

    答案

    向量检索基于语义相似度,可能返回相关但非最精准的文档。Reranking 用更强的交叉编码模型对候选做精排,提升 Top-K 的准确率,是性价比高的优化手段。

    问题

    Embedding 模型选择要考虑哪些因素?

    点击翻转查看答案

    答案

    考虑维度、语言支持、领域适配(通用 vs 专业)、延迟与成本。多语言场景选 m3e、bge 等;英文可考虑 OpenAI text-embedding-3;长文本需支持 8K+ 的模型。