RAG

2026/11/1 AIRAG

# RAG

RAG(检索增强生成):先检索相关资料,再让大模型基于资料回答问题。

# 一、录入流程:把资料变成可检索的知识库

数据接入 → 文档解析 → 清洗 → 分块 → 建立索引 → 入库
                                  ├─ 文本块 → Embedding → 向量索引
                                  └─ 文本块 → BM25 倒排索引
1
2
3
顺序 步骤 做什么
1 数据接入 收集文档、网页、PDF、数据库等资料
2 文档解析 提取文本和标题、表格等结构;扫描件可用 OCR
3 清洗 去噪、去重、统一格式
4 分块(Chunking) 按长度、段落或语义切成文本块,可保留少量重叠内容
5 建立索引 用 Embedding 模型将文本块向量化,建立向量索引;同时为关键词检索建立 BM25 倒排索引
6 入库 保存文本块、向量、索引及来源、权限、版本等元数据

这里展示的是混合检索的准备流程,索引构建和存储通常由检索引擎一起完成。资料更新或删除时,需要同步更新相关文本块和索引。

# 二、查询流程:找到资料并生成答案

用户问题 → 查询改写 / 扩展(可选)
              ├─ Embedding → 向量检索 TopK ┐
              └─ BM25 关键词检索 TopK     ┴→ 融合 → 重排 TopN → 组装上下文 → 生成答案 → 校验输出
1
2
3
顺序 步骤 做什么
1 查询处理 Query rewrite 改写问题,或 multi-query 生成多个查询,帮助召回;简单问题可直接检索
2 混合召回 一路将问题向量化后做语义检索,另一路用 BM25 匹配关键词,分别取 TopK 候选;按权限和元数据过滤
3 融合(Fusion) 合并、去重多路结果,用 RRF 等算法形成统一排序
4 重排(Rerank) 用重排模型进一步判断相关性,保留 TopN 条资料
5 组装上下文 将资料、用户问题和提示词组合,控制长度并标记引用
6 生成答案 LLM 基于上下文回答问题
7 校验输出 检查格式、引用以及答案是否得到资料支持
  • TopK:召回的候选数量;TopN:重排后保留的数量,通常更少。
  • 可选环节:查询改写、混合检索、融合、重排可按需求取舍;单路检索可以跳过融合。
  • 模型与代码:Embedding、模型重排、答案生成依赖模型;索引、检索、融合、存储和流程编排主要由代码完成。查询改写、OCR 等也可使用模型。
  • 效果评估:用 Recall@K 看召回覆盖率、MRR 看首条相关结果的排名、Faithfulness 看答案是否忠实于资料。
Last Updated: 2026/11/1 15:20:24
    飘向北方
    那吾克热-NW,尤长靖