Skip to content

核心概念

RAG 流水线可以抽象为一条“数据进、答案出”的管道。理解每个阶段的核心概念,是设计可扩展 RAG 系统的前提。

端到端 RAG 流水线

text
原始文档 → 加载 → 分块 → 嵌入 → 向量索引 → (在线)

用户查询 → 查询理解 → 检索 → 重排 → 上下文组装 → 生成 → 后处理/引用

每个阶段都有明确的目标、可选算法和工程权衡。

1. 文档加载与解析(Document Loading)

  • Loader:从 PDF、Word、网页、数据库、API 读取原始内容。
  • Parser:把二进制文件解析为结构化文本,保留标题、表格、图片占位符。
  • 关键问题:扫描版 PDF 需要 OCR;表格需要保留行列关系;代码需要保留缩进与注释。

2. 分块(Chunking)

Chunk 是检索和生成的最小知识单元。分块策略直接影响召回率和生成质量。

策略说明适用
固定长度按字符/Token 数切分通用、简单
重叠滑动窗口相邻 chunk 共享部分文本避免上下文断裂
语义分块按句子/段落语义边界切分需要保留完整语义
结构分块按标题、章节、Markdown 层级切分技术文档、法律文本
Agentic 分块让模型决定切分边界高精度、高成本

Chunk 过大:检索精度下降,生成上下文被浪费。
Chunk 过小:语义不完整,生成缺乏上下文。
经验法则:优先让 chunk 能独立回答一类问题,再调整长度。

3. 嵌入(Embedding)

Embedding 把文本映射为稠密向量,使得语义相似的文本在向量空间中距离近。

  • Dense Embedding:BERT/Sentence-BERT、OpenAI text-embedding-3、BGE、E5 等。
  • Sparse Embedding:BM25、SPLADE,基于词项统计,对关键词匹配友好。
  • Late Interaction:ColBERT 在查询时保留 token 级交互,精度高但计算重。
  • 多模态 Embedding:CLIP、图像编码器,把图片、表格也映射到同一向量空间。

4. 向量存储与索引(Vector Store & Index)

向量库负责高效存储和近似最近邻(ANN)检索。

能力说明
ANN 索引HNSW、IVF、DiskANN 等,用精度换速度
元数据过滤在向量检索前按 source、tenant、date 过滤
混合检索同时保留向量索引与倒排索引
增量更新支持 upsert、delete、versioning

常见向量库:Milvus、Pinecone、Weaviate、Qdrant、Chroma、pgvector、Faiss、Elasticsearch。

5. 检索策略(Retrieval)

策略原理优点缺点
Dense Retrieval向量相似度语义泛化好对罕见词、专有名词弱
Keyword/Sparse RetrievalBM25/TF-IDF精确匹配、可解释语义鸿沟
Hybrid Retrieval稠密+稀疏融合兼顾语义与关键词需要调权与融合算法
RRFReciprocal Rank Fusion无需归一化,鲁棒仅利用排名,丢失绝对分值
Multi-Query一个查询扩展为多个子查询提高召回增加检索成本
Query Rewriting用 LLM 改写/扩展查询弥合查询与文档语义 gap增加延迟与 token 成本

6. 重排(Reranking)

检索阶段追求高召回,重排阶段追求高精度。

  • Cross-Encoder:把 query 与 chunk 拼接后输入模型打分,精度高但延迟大。
  • Bi-Encoder + 轻量模型:先用双塔召回,再用小模型重排。
  • 特征融合:结合向量分数、关键词分数、元数据 freshness、用户反馈。

Reranker 通常只处理 Top-K(如 50→20 或 20→5),控制成本。

7. 生成增强(Generation Augmentation)

把检索到的 chunks 注入 prompt,常见模式:

text
根据以下参考资料回答问题:
---
[1] {chunk1}
[2] {chunk2}
---
问题:{query}
要求:仅使用参考资料,并标注引用编号。

生成阶段的关键:

  • 上下文排序:最相关的 chunk 放在 prompt 前后两端(中间位置易丢失)。
  • 引用生成:让模型输出 [1][2] 等引用标记。
  • 后处理:验证引用是否真实存在,防止幻觉引用。
  • 拒绝回答:当检索结果置信度低时,让模型回答“不知道”。

8. 评估(Evaluation)

维度指标含义
检索质量Hit Rate、MRR、NDCG@K相关文档是否被召回、排名是否靠前
生成质量Faithfulness、Answer Relevance答案是否忠实于检索内容、是否回答用户问题
端到端RAGAS、ARES、TruLens综合评估检索+生成
效率检索延迟 P99、吞吐、索引构建时间系统性能

小结

RAG 不是“向量库 + LLM”的简单拼接,而是一个需要反复权衡的流水线:chunk 多大、embedding 多强、检索多深、重排多准、生成多可控。下一章将从架构视角把这些概念组织成可落地的系统。

Released under CC-BY-SA-4.0 License.