【RAG 的基本流程】
2026/6/24 15:10:08 网站建设 项目流程

RAG 的基本流程

RAG(Retrieval-Augmented Generation,检索增强生成)主要分为五个核心步骤。这五个步骤可以划分为提问前(知识库构建)和提问后(检索与生成)两个阶段。

📚 秒懂:RAG 的五步就好比一场“开卷考试”

  1. 分片 (Chunking):把一本厚厚的教材,拆解成一页一页的“知识卡片”,方便后续翻找。
  2. 索引 (Indexing):给每张卡片贴上“语义条形码”(转成向量),并整齐地放进超级档案柜(向量数据库)里。
  3. 召回 (Retrieval):看到考试题目后,去档案柜里快速扫描,一把抓出 10 张看起来最相关的卡片(这是一个求快、求全的“粗排”过程)。
  4. 重排 (Reranking):仔细阅读这 10 张卡片,剔除掉其实没用的废话,精挑细选出 3 张真正能完美回答问题的卡片(这是一个求准的“精排”过程)。
  5. 生成 (Generation):把题目和这 3 张卡片一起交给“超级学霸”(大模型),并嘱咐他:“你只能用卡片上的内容作答”,学霸据此总结出完美的答案。

阶段一:提问前(构建知识库)

1. 分片 (Chunking)

将本地知识库中的长文本分割成较小的、语义完整的文本片段,以便后续处理。

2. 索引 (Indexing)

将文本片段转换成向量,并存储在向量数据库中。

  • 向量化 (Embedding):通过嵌入技术,将文本片段转换为向量。在经历了 Embedding 之后,语义相近的文本在向量空间中会离得比较近。
    • 向量:一个有大小有方向的量,通常用数组(高维浮点数)表示,每个向量都有其特定的维度。
  • 存储:将文本片段及其对应的向量存入向量数据库中。
    • 向量数据库 (Vector Database):专门用来存储和检索向量数据的数据库。与传统数据库(如 MySQL、PostgreSQL)不同,它不直接通过文本查询,而是基于向量及元数据进行操作。

向量数据库的核心功能

  • 向量存储:接收 Embedding 模型生成的向量数据。
  • 向量索引:构建高效的索引结构(如 HNSW、IVF)以支持快速相似性搜索。
  • 相似性搜索:根据查询向量找到最相似的 Top-K 向量(支持余弦相似度、欧氏距离等)。
  • 元数据过滤:支持在向量搜索的同时对元数据进行过滤。

常用向量数据库产品

  • Chroma (ChromaDB):极度轻量级,支持以本地文件形式存储,与 LangChain / LlamaIndex 等框架深度集成,是本地测试和原型开发的首选。
  • Milvus:专为海量数据设计的分布式架构,支持百亿级向量的大规模、高并发检索。
  • Pinecone:纯 SaaS 托管型服务,免去底层部署和运维,开箱即用,提供高稳定性的 API 接口。
  • Weaviate:提供灵活的 GraphQL 查询,内置自动向量化模块(支持文本、多模态),适合构建复杂的语义搜索引擎。
  • Qdrant:基于 Rust 构建,内存占用控制极佳,并在“向量检索 + 复杂的元数据过滤(Payload Filtering)”方面具有优异性能。

阶段二:提问后(检索与生成)

3. 召回 (Retrieval)

根据用户的问题,在向量数据库中搜索并召回相关的文本片段。

  • 过程:计算用户问题向量与数据库中向量的相似度,取出最相似的前几个(Top-K)。
  • 向量相似度计算方法
    • 余弦相似度:计算两个向量夹角的余弦值,夹角越小越相似。
    • 欧氏距离:计算两个向量之间的空间直线距离,距离越近,相似度越高。
    • 点积:通过代数方式计算,不仅考虑向量方向,还考虑其长度。点积越大,相似度越高。
  • 特点:成本低、耗时短、准确率相对较低(粗排)。
  • 适用场景:初步筛选。能够在短时间内计算出成千上万个片段的相似度,并挑出最相关的若干条(如 Top-10)。

4. 重排 (Reranking)

对召回的文本片段进行再次排序,精准选出最相关的片段。

  • 过程:从召回的 Top-10 片段中,通过更复杂的模型(如 Cross-Encoder)选出与问题最相关的几个片段。
  • 特点:成本高、耗时长、准确率高。
  • 适用场景:精挑细选,对初步筛选的结果做最终把关。

5. 生成 (Generation)

将重排后最终筛选出的文本片段,连同用户的原始问题一起输入给大语言模型(LLM),由模型生成最终的答案。


💡 流程总结图解

  • 提问前(构建知识库)
    相关资料分片传给 Embedding 模型产出向量存入向量数据库

  • 提问后(检索与生成)
    用户提问传给 Embedding 模型转为向量传给向量数据库,检索出 Top-10 相似片段 (召回)发给重排模型,筛选出最相关的片段 (重排)最终片段 + 用户提问发给大模型生成答案


🚀 进阶与优化策略 (Advanced RAG)

在基础的 RAG 流程上,工业界通常会引入以下策略来提升准确率和效果:

  1. 数据清洗与预处理
    • 在“分片”之前,需去除无意义的 HTML 标签、特殊字符、乱码等,确保文本干净。
  2. 重叠分片 (Chunk Overlap)
    • 分片时保持相邻片段有一部分重叠(如每段 500 字,重叠 50 字),防止关键上下文被生硬截断。
  3. 查询重写 / 意图扩展 (Query Rewrite)
    • 在用户提问后,先让大模型对问题进行改写、拆解或补充同义词,然后再去向量库检索,从而提高召回命中率。
  4. 混合检索 (Hybrid Search)
    • 将“向量相似度检索”与传统的“关键词检索(如 BM25 算法)”结合。向量检索擅长语义理解,关键词检索擅长精准匹配(如特定人名、专有名词、产品型号)。
  5. Prompt 工程约束 (Prompt Engineering)
    • 在最终生成环节,提示词中通常会严格约束大模型:“仅根据以下参考片段回答问题,如果片段中没有相关信息,请直接回答‘我不知道’”,以最大程度缓解大模型的“幻觉”问题。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询