什么是RAG?一文搞懂检索增强生成技术

在大语言模型(LLM)如ChatGPT、Claude、Gemini日益强大的今天,人们希望它们不仅能"生成",还要"准确生成"。然而,LLM训练的数据往往是静态的、封闭的,这使得它们在面对时效性强、专业性高、上下文复杂的问题时,力不从心。

在有些时候,企业内部或者事业部门内部的数据是不允许公开上传的,那么也就没有办法享受到大模型的服务,生产力也得不到解放。

这时,RAG(Retrieval-Augmented Generation,检索增强生成)应运而生。它是连接"生成能力"与"外部知识"的桥梁,让LLM不再是"闭门造车",而成为真正的知识型智能体。

一、RAG的基本原理

RAG是一种通过**"先检索、后生成"**的方式,是一个提升语言模型生成准确性的技术框架。其核心流程如下:

  1. Query输入:用户提出一个问题或任务。比如我问"明天的天气怎么样",大语言模型大概率不会知道明天的天气,因为训练数据时间范围是今天前。
  2. Retriever检索器 :从外部知识库(文档、数据库、网页等)中检索与问题相关的内容。我问"明天的天气怎么样"之后,假设知识库里面刚好就有明天的天气信息,那么就会经过检索得到对应的语料信息"明天气温50度(千万不要出门)"。
  3. Generator生成器 :将检索到的内容连同问题一起输入大语言模型,让它生成更加精准、上下文丰富的回答。还是拿上面的我问"明天的天气怎么样",Generator生成器 得到Retriever检索器 检索到的**"明天气温50度(千万不要出门)"和我问的问题 "明天的天气怎么样"**一起输入到LLM中,得到回答"明天气温50度,达到历史新高,请您注意一定不要出门,不然容易晒伤"。

简单来说,RAG把**"我说我知道的"变成 "我先当自己不知道"-> "看看我的背包里有什么知识"-> "哎找到了"->"总结一下再说"**。

二、为什么需要RAG?

大模型有知识盲点、时间滞后,原因在于:

  • 训练数据是静态的,无法获取实时信息;
  • 在专业领域(如医疗、金融、法律)中,模型缺乏最新的、结构化的知识;
  • 模型生成易产生"幻觉"(hallucination),即编造事实。

RAG通过引入检索机制,可以实时接入外部信息,同时精准聚焦专业文档,显著降低模型幻觉率。

三、RAG的技术架构

RAG的系统主要分为两个核心模块:Retriever + Generator,可进一步细化为以下几部分:

1. 数据预处理与切分

  • 文档按结构或语义切分成段(chunk),如按标题、段落、Token窗口等,不同的文档处理方法不同,比如有图片,pdf,word,txt等等,后续会专门出一篇文章详细介绍以下不同文档的处理方法;
  • 使用向量化技术(如BERT、GTE等)构建**向量索引库,**向量数据库是深度学习领域专门使用的数据库,具有极快的查询速度,其中能够查询向量之间的相似度的特性能够很好的为RAG服务。

2. 检索阶段(Retrieval)

  • 稀疏检索:如 BM25,依赖关键词匹配;
  • 密集检索:如DPR、ColBERT,基于语义相似度;
  • 混合检索(Hybrid):结合两者,提升覆盖率与精度。

3. 生成阶段(Generation)

  • 使用LLM(如ChatGPT、LLaMA、Mistral)输入"问题+检索结果",生成高质量回答。

RAG是一项将"语言生成"与"知识检索"紧密结合的关键技术,正快速从实验室走向产业。无论是NLP工程师、产品经理还是AI应用开发者,理解并掌握RAG,都将为我们开启智能系统的新可能。


接下来我将深入拆解RAG系统全景图谱,带你了解数据处理、检索增强、生成优化、评估反馈、架构部署到行业应用的全链路流程!

文中图片来自

一图了解RAG的基本流程 - 小红书

RAG 方案体系介绍 - 小红书

非常感谢,如有侵权请联系删除!

相关推荐
何以解忧,唯有..12 分钟前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
想吃火锅10051 小时前
【leetcode】88.合并两个有序数组js
算法
生成论实验室2 小时前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres8212 小时前
算法复键——树状数组
数据结构·算法
H178535090962 小时前
SolidWorks第四部分_直接实体建模特征9_替换面原理
线性代数·算法·机器学习·3d建模·solidworks
不会就选b2 小时前
算法日常・每日刷题--<二分查找>3
算法
绿算技术2 小时前
Mooncake 与绿算ForinnBase GroundPool如何联手打破推理僵局?
科技·算法·架构
-森屿安年-3 小时前
63. 不同路径 II
c++·算法·动态规划
老余捞鱼3 小时前
线性回归实战:5步验证你的量化因子是否真有效
算法·金融·回归·线性回归·ai量化
想吃火锅10053 小时前
【leetcode】121.买卖股票的最佳时机js/c++
算法·leetcode·职场和发展