本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI。
RAG(Retrieval-Augmented Generation,检索增强生成)是一种将大型语言模型(LLM)与外部知识源动态融合的技术框架。
一、RAG的基本概念
其名称精准概括了三个核心环节的协同机制:
- 检索(Retrieval) 指从外部知识库(如向量数据库)中主动查询与用户问题相关的信息片段,这一过程突破了传统LLM受限于静态训练数据的固有缺陷,通过近似最近邻搜索(ANN)算法高效定位语义相关的知识块,确保模型能够访问训练时未涵盖的新数据(如最新财报或私有文档),而非依赖预训练知识的被动回忆。
- 增强(Augmented) 体现在将检索到的外部知识注入到LLM的上下文窗口中,通过动态扩展输入信息的方式赋予模型实时认知能力,这种增强既避免了因重新训练LLM而产生的巨额成本,又解决了有限上下文窗口无法容纳海量补充知识的矛盾,使模型能够基于权威来源生成回答而非虚构内容。
- 生成(Generation) 则是LLM基于原始查询与检索结果的融合语境,执行语义理解与语言合成的终极任务,其关键价值在于将碎片化的检索内容转化为连贯、结构化且符合人类语言习惯的自然文本输出,同时自动标注知识来源(如“根据2023Q4财报第5节”),显著降低模型幻觉风险并提升结果的可信度与可解释性。
简言之,RAG通过 “主动获取-动态扩展-可信生成” 的闭环,将LLM从封闭的知识容器转变为开放的知识处理器,成为平衡实时性、准确性与成本的最优解。
二、RAG系统的七步工作流:从知识固化到智能生成
下面这张图片清晰的表明了RAG的7个工作步骤:
步骤1:知识分块(Chunking)——构建可检索的知识单元
外部知识(如PDF报告或私有数据库)首先被切割为语义完整的片段,这一过程需兼顾文本连贯性与嵌入模型输入限制,例如表格需保持结构完整避免跨块分割,段落则按主题边界切分,其核心目标是生成既能独立表达语义又适配向量化处理的文本单元,为后续精准检索奠定基础。
常见的分块起码有以下5种策略
步骤2:生成嵌入(Embedding)——语义的向量化映射
每个知识块通过预训练的嵌入模型(如基于Transformer的双编码器)转化为高维向量,这一过程捕捉文本的深层语义特征(如“抗过拟合技术”与“正则化方法”的关联性),使非结构化的自然语言被编码为数学空间中的可计算对象,为相似性检索提供可比对的数学表征。
这里使用的嵌入模型是“上下文嵌入模型”(不是单词嵌入模型),因此像双编码器(我们上次讨论过)这样的模型在这里高度相关。
通过一致的训练,模型可以学习不同单词在句子中如何相互关联。它了解哪些单词经常组合在一起,以及它们如何融入句子的整体含义。
这个学习过程有助于 BERT 为单词和句子创建嵌入,这些嵌入是上下文化的,这与 Glove 和 Word2Vec 等早期嵌入不同:
上下文化意味着嵌入模型可以根据单词使用的上下文动态生成单词的嵌入。因此,如果一个单词出现在不同的上下文中,模型将返回不同的表示形式。比如:苹果,可能是一个水果,也可能是一个品牌,这就需要根据上下文嵌入模型的语义理解,将“苹果”嵌入到不同的语义空间中。
步骤3:向量存储(Vector Storage)——构建动态知识记忆体
生成的向量与原始文本、元数据(如来源文档页码)共同存入向量数据库,该数据库不仅充当海量向量的高效存储器,更通过近似最近邻索引(如HNSW)支持毫秒级相似性搜索,其设计本质是将人类知识转化为机器可实时查询的“语义记忆网络”。
向量数据库充当 RAG 应用程序的内存,这是我们存储所有附加知识的地方,使用这些知识将回答用户的查询。
向量数据库还存储元数据、原始内容以及向量嵌入。
至此,我们的向量数据库已创建完成,并已添加了相关信息。如有需要,还可以在此基础上添加更多内容。
步骤4:用户查询嵌入(Query Embedding)——意图的数学表达
用户问题(如“解释RAGFlow的多模态支持”)被同一嵌入模型转化为查询向量,此时查询向量与知识块向量处于同一语义空间,使“多模态支持”等抽象概念可被量化为与数据库向量相似度计算的数学对象,实现意图的精准数学表达。
首先,用户的查询信息也会先通过Embeding模型转化为“查询的embedding”信息。
步骤5:语义检索(Semantic Retrieval)——知识库的智能筛选
查询向量通过近似最近邻算法(ANN)在向量库中快速扫描,召回Top-K个最相关的知识块(如包含“OCR提取图片文字”“表格转Markdown”的段落),此步骤融合语义匹配(向量相似度)与关键词匹配(BM25)的优势,确保结果既覆盖语义关联内容又包含精确术语命中。
步骤6:重排序(Reranking)——相关性的精细化校准
检索后,所选块可能需要进一步细化,以确保最相关的信息得到优先级排序。
初步检索结果需经交叉编码器(Cross-Encoder)进行精细化评分,该模型深度分析查询与每个知识块的交互关系(如判断“表格处理说明”是否真正解答“多模态支持”),通过重排序将最契合的片段置于前列,有效解决语义相似但主题偏离的噪声干扰问题。
步骤7:增强生成(Augmented Generation)——知识的融合与表达
LLM接收原始查询与重排序后的知识块,通过注意力机制整合信息并生成最终回复,例如综合“OCR技术”“表格转换流程”等片段输出结构化答案:“RAGFlow通过OCR提取图像文本,将表格转为Markdown以保持结构,实现多模态内容的统一语义处理”,此过程严格遵循检索依据生成文本,显著降低幻觉并提升专业性。
七步流程形成 “知识固化→意图解析→动态增强→可控输出” 的完整链条,每一步的输出均为下一步的输入,构成紧密耦合的增强回路。
RAG系统通过检索、增强、生成的精密协作,将LLM从封闭的文本生成器进化为开放环境下的认知代理,其七步流程既是技术框架亦是知识流动的管道。
学习资源推荐
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。
本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI。