RAG 工作机制详解——检索增强生成技术全流程

什么是 RAG

RAG 全称为 Retrieval Augmented Generation,翻译为检索增强生成。其核心工作原理包含两个步骤:

  1. 检索:从资料库中检索相关内容
  2. 生成:基于检索到的内容生成答案

RAG 是目前最常用的 AI 问答方案之一,广泛应用于企业知识助手和智能客服系统。

RAG 解决的核心问题

传统方案的局限性

直接将完整文档发送给大模型(如 GPT-4ODeepSeek 等)会遇到以下问题:

  1. 上下文窗口限制:每个模型只能处理一定量的信息,超过上下文窗口大小会导致"读了后面忘了前面"
  2. 推理成本过高:输入内容越多,成本越高
  3. 推理速度慢:输入内容过多会严重影响模型响应速度

RAG 的解决方案

RAG 通过以下方式解决上述问题:

  • 将文档切分为多个片段
  • 根据用户问题检索相关片段(如从上百页文档中找出 3 个相关片段)
  • 仅将相关片段和用户问题发送给大模型

RAG 完整流程架构

RAG 流程分为两个主要部分:

数据准备部分(用户提问前)

  1. 分片(Chunking)
  2. 索引(Indexing)

回答部分(用户提问后)

  1. 召回(Retrieval)
  2. 重排(Reranking)
  3. 生成(Generation)

核心技术概念详解

向量(Vector)

向量是数学概念,代表有大小和方向的量,可用数组表示:

  • 一维向量:[1][-3]
  • 二维向量:[2, 1][-1, 2]
  • 三维向量:[1, 2, 3]

RAG 中使用的向量维度通常较大(几百到几千维),维度越大包含的信息越丰富。

Embedding

Embedding 是将文本转换为向量的过程。核心特点:

  • 语义相近的文本对应的向量也相近
  • 通过专门的 embedding 模型完成(非 GPT-4O 等通用模型)

示例

复制代码
"马克喜欢吃水果" → 向量 [1, 2]
"马克爱吃水果"   → 向量 [1, 1]  
"天气真好"       → 向量 [-3, -1]

前两个句子向量相近,说明语义相关;第三个句子向量距离较远,说明语义不相关。

模型选择 :可参考 MTEB 排行榜评选最优 embedding 模型。

向量数据库

向量数据库专门用于存储和查询向量,具备以下特点:

  • 为向量存储做了优化
  • 提供向量相似度计算功能
  • 存储内容包括原始文本和对应向量

典型数据结构:

原始文本 向量
马克喜欢吃水果 1, 2
天气真好 -3, -1

五个核心环节详解

1. 分片(Chunking)

将完整文档切分为多个片段,常见方式:

  • 按字数分片(如 1000 字一个片段)
  • 按段落分片
  • 按章节分片
  • 按页码分片

2. 索引(Indexing)

索引流程包含两个步骤:

  1. 通过 embedding 模型将每个片段文本转换为向量
  2. 将片段文本和对应向量存储到向量数据库

3. 召回(Retrieval)

召回是搜索与用户问题相关片段的过程:

  1. 用户问题发送给 embedding 模型转换为向量
  2. 向量数据库计算向量相似度
  3. 返回最相关的 N 个片段(通常 10 个)
向量相似度计算方法

余弦相似度

  • 计算两个向量夹角的 cosine 值
  • 夹角越小,相似度越高

欧氏距离

  • 计算两个向量间的直线距离
  • 距离越小,相似度越高

点积

  • 考虑向量方向和长度
  • 值越大,相似度越高
  • 方向一致时为正值,相反时为负值,垂直时为 0

4. 重排(Reranking)

从召回的 10 个片段中精选出 3 个最相关的片段。

召回 vs 重排对比
特性 召回阶段 重排阶段
计算方法 向量相似度 Cross-Encoder 模型
成本
耗时
准确率
适用场景 初步筛选 精挑细选

类比:召回像简历筛选(快速粗选),重排像面试环节(仔细精选)。

5. 生成(Generation)

将用户问题和重排后的 3 个相关片段一起发送给大模型,生成最终答案。

完整流程演示

提问前的准备流程

原始文档
分片处理
Embedding模型
向量数据库

  1. 对相关资料进行分片
  2. 将所有片段发送给 embedding 模型生成向量
  3. 将向量和原始文本存入向量数据库

用户提问后的处理流程

用户问题
Embedding模型
向量数据库查询
召回10个片段
Cross-Encoder重排
精选3个片段
大模型生成答案

  1. 用户问题通过 embedding 模型转换为向量
  2. 向量数据库查找 10 个最相似片段
  3. Cross-Encoder 模型重排,选出 3 个最相关片段
  4. 将 3 个片段和用户问题发送给大模型
  5. 大模型生成最终答案

技术要点总结

  • 核心原理:先检索相关内容,再基于内容生成答案
  • 关键技术:向量化表示、相似度计算、分阶段筛选
  • 性能优化:通过召回+重排的两阶段设计平衡效率和准确性
  • 应用场景:企业知识库、智能客服、文档问答系统

RAG 技术通过将复杂的文档检索问题转化为向量空间中的相似度计算问题,实现了高效准确的知识检索和问答生成。

参考来源:RAG 工作机制详解------一个高质量知识库背后的技术全流程

相关推荐
utmhikari7 小时前
【AI原生】用Vibe Coding写产品前端原型的一些经验
前端·ai·产品经理·web·web开发·ai-native·qoder
可乐ea7 小时前
【知识获取与分享社区项目 | 项目日记第 24 天】终章总结:从认证、发布、计数、Feed、搜索到 RAG:完整复盘一个知识社区后端系统
java·spring boot·redis·mysql·elasticsearch·ai·kafka
张哈大8 小时前
MCP:重塑AI工具调用的统一标准,告别重复造轮子的时代
人工智能·python·ai·prompt
极光代码工作室8 小时前
基于深度学习的智能图像识别平台
python·深度学习·机器学习·ai·系统设计
一条咸鱼_SaltyFish8 小时前
Agent 工程化避坑指南——从实践看常见反模式
ai·agent·ai编程·memory·obsidian·harness·llm-wiki
装不满的克莱因瓶8 小时前
掌握神经网络的模型结构
人工智能·python·深度学习·神经网络·机器学习·ai
无忧.芙桃8 小时前
vibe coding之opencode的使用
ai·单元测试·opencode
装不满的克莱因瓶8 小时前
从梯度下降到 Adam 优化器:掌握神经网络参数优化的核心原理
人工智能·python·深度学习·神经网络·机器学习·计算机视觉·ai
笨蛋©8 小时前
基于Infra CONVERT 正版授权的图纸识别与FAI自动化实务
ai·数字化·cad·制造业·图纸识别
ShareBeHappy_Qin8 小时前
AI —— Agent相关概念-1
人工智能·ai·agent