一、RAG介绍

1、LLM的缺陷

  • LLM的知识不是实时的,不具备知识更新.
  • LLM可能不知道你私有的领域/业务知识.
  • LLM有时会在回答中生成看似合理但实际上是错误的信息。

2、为什么会用到RAG

  • 减少幻觉(Hallucination):回答基于真实资料,大幅降低 AI 编造事实的概率。
  • 知识实时更新:只需更新外部文档库,无需重新训练昂贵的大模型。
  • 接入私有数据:让通用 AI(如 GPT)使用企业内部文件、客户数据等私有知识。
  • 可追溯、可验证:回答可附带来源链接 / 文档,方便审核与查证。
  • 成本更低:相比全量微调(Fine-tuning),RAG 是更经济的领域适配方案。

总之:

  • 提高准确性:通过检索相关的信息,RAG可以提高生成文本的准确性。
  • 减少训练成本:与需要大量数据来训练的大型生成模型相比,RAG可以通过检索机制来减少所需的训练数据量,从而降低训练成本。
  • 适应性强:RAG模型可以适应新的或不断变化的数据。由于它们能够检索最新的信息,因此在新数据和事件出现时,它们能够快速适应并生成相关的文本。

3、RAG 定义

RAG (Retrieval Augmented Generation 检索增强生成)是一种让大语言模型(LLM)在回答问题时,先从外部知识库检索相关信息,再基于检索到的内容生成回答的 AI 技术框架。

简单来说,就是让模型 **“开卷考试”**,先查资料再作答

4、RAG vs. 传统搜索 vs. 模型微调

  • 传统搜索:返回文档片段,需要用户自己阅读总结;RAG:直接返回自然语言答案。
  • 纯 LLM:知识有截止日期、易编造;RAG:基于外部实时 / 私有数据。
  • 模型微调(Fine-tuning):修改模型权重、成本高、难更新;RAG:外挂知识库、成本低、易更新。

RAG文档:2312.10997

5、核心工作流程

RAG 主要分为离线构建在线查询两大阶段:

1. 离线:构建知识库(Indexing)
  • 文档处理:将 PDF、Word、网页等资料切割成小文本块(Chunk)。
  • 向量化(Embedding):用 Embedding 模型将每个文本块转换成数值向量(代表语义)。
  • 存储:将向量与原文存入向量数据库(Vector DB)

2. 在线:查询与生成
  1. 检索(Retrieval):用户提问 → 问题向量化 → 在向量库中做语义相似度搜索 → 找出最相关的几段文本。
  2. 增强(Augmentation):将用户问题 + 检索到的参考资料,拼接成一个新的 Prompt。
  3. 生成(Generation):将 Prompt 送入 LLM,模型严格依据参考资料生成最终回答。

6、典型应用场景

  • 企业智能客服:基于产品手册、内部规章回答员工 / 客户问题。
  • 法律 / 医疗助手:引用法条、病历、文献生成专业分析。
  • 学术研究:总结论文、基于最新文献回答专业问题。
  • 个人知识库:基于自己的笔记、邮件、资料进行问答。

7、核心技术栈(简版)

  • 向量数据库:Milvus, FAISS, Pinecone, Chroma
  • Embedding 模型:text-embedding-ada-002, BGE, E5
  • LLM:GPT-4o, Claude 3, Llama 3, 通义千问
  • 框架:LangChain, LlamaIndex

二、完整走一遍 RAG(检索增强生成) 流程。

场景:用公司内部产品手册,做一个智能问答客服

一、先明确目标

用户问:

“咱们这款智能门锁支持指纹解锁吗?最多能录几个指纹?”

纯大模型会瞎编(幻觉),RAG 会先去查手册 → 再回答


二、第 1 步:准备知识库(离线)

你有一份:智能门锁产品手册.pdf

1. 文档切分(Chunking)

把长 PDF 切成小段,比如:

  • chunk1:产品外观、材质
  • chunk2:解锁方式(指纹、密码、NFC)
  • chunk3:指纹录入上限说明
  • chunk4:电池续航
  • ...

2. 向量化(Embedding)

把每个 chunk 变成一串数字向量(语义向量)。比如:

  • “指纹最多支持 50 个” → [0.12, 0.45, 0.67, ...]

3. 存入向量数据库

向量 + 原文 一起存起来,方便后面快速检索。


三、第 2 步:用户提问(在线)

用户问题:

“智能门锁支持指纹吗?能录多少个?”

1. 问题向量化

把问题也变成向量:[0.11, 0.46, 0.68, ...]

2. 向量检索(最关键一步)

系统在向量库里找最相似的 chunks

  • 最相似:chunk2(解锁方式)
  • 次相似:chunk3(指纹上限)

返回结果:

chunk2:本门锁支持指纹、密码、NFC 三种解锁方式。chunk3:指纹最多支持录入 50 个。


三、第 3 步:构造 Prompt(增强)

问题 + 检索到的资料一起喂给大模型:

请根据以下资料回答问题,不要编造。

资料:

1. 本门锁支持指纹、密码、NFC 三种解锁方式。

2. 指纹最多支持录入 50 个。

问题:智能门锁支持指纹吗?能录多少个?

四、第 4 步:大模型生成回答

模型输出:

这款智能门锁支持指纹解锁,最多可以录入 50 个指纹。

这就是 RAG:检索 → 增强 → 生成


五、RAG 检索增强生成 标准技术架构框图

六、RAG 干了啥

  • 传统 LLM:闭卷考试,容易瞎编
  • RAG:开卷考试,先查资料再答题

一句话极简版:先查资料 → 再给答案

检索 = 查书

增强 = 把书里内容放进问题里

生成 = AI 整理成通顺回答

先外挂知识库检索 → 再把资料喂给模型 → 最后生成可靠回答

三、RAG系统搭建流程

英文术语 中文释义
User 用户
Query 查询
Input 输入
Output 输出
Knowledge base 知识库
loader 加载
Documents 文档
Spliter 切分
document snippets 文档片段
Embedding Machine 嵌入器
Embeddings 向量化
Vetor Database 向量数据库
Similarity query 相似度查询
Relevant Snippets 相关片段
Combine Context and Prompt 结合上下文和提示
Indexing 索引
Retrieval 检索

索引(Indexing):索引首先清理和提取各种格式的原始数据,如PDF、HTML、Word、Markdown,然后将其转换为统一的纯文本格式。为了适应语言模型的上下文限制,文本被分割成更小的、可消化的块【chunk】。然后使用嵌入模型将块编码成向量表示,并存储在向量数据库中。这一步对于在随后的检索阶段实现高效的相似性搜索至关重要。知识库分割成chunks,并将chunks向量化至向量库中。

检索(Retrieval):在收到用户查询(Query)后,RAG系统采用与索引I阶段相同的编码模型将查询转换为向量表示,然后计算索引语料库中查询向量与块向量的相似性得分。该系统优先级和检索最高k(Top-K)块,显示最大的相似性查询。
例如,二维空间中的向量可以表示为(x,y),表示从原点(0,0)到点(x,y)的有向线段

1.将文本转成一组浮点数:每个下标i,对应一个维度
2.整个数组对应一个n维空间的一个点,即文本向量又叫Embeddings
3.向量之间可以计算距离,距离远近对应语义相似度大小

更多推荐