RAG 检索增强生成入门:拆解“检索-增强-生成”三大环节
AIAI Summary (BLUF)
本文详细介绍了RAG(检索增强生成)技术的概念、原理、工作流程和技术架构,通过检索外部知识库来增强大语言模型的生成能力,解决知识截止和幻觉问题。文章还以搭建知识问答系统为例,说明了数据准备、检索模块和生成模块的设计方法。
核心洞察
这篇文章最有意思的点,是把 RAGRetrieval-Augmented Generation - an AI framework that combines information retrieval with language generation to produce more accurate and contextually relevant responses. 拆成"检索、增强、生成"三个动作,主谓宾捋清楚,整个系统的逻辑就顺了。网上讲 RAG 的资料不少,但很多一上来就甩架构图,对刚接触的人不太友好。这篇从数据准备一路讲到检索和生成,适合当大模型应用开发的第一份读物。
RAG,全称 Retrieval-Augmented Generation,中文叫检索增强生成。它把信息检索技术和语言生成模型凑到一块,先从外部知识库检索相关内容,再作为提示词(Prompt)喂给大语言模型(LLM)大型语言模型是驱动ChatGPT等AI系统的机器学习工具,能够理解和生成人类语言,但在不同问题表述下可能产生不一致答案。,让模型在处理问答、文本摘要、内容生成这类知识密集型任务时更准确。RAG 由 Facebook AI Research(FAIR)团队在 2020 年提出,后来迅速成了大模型应用里的热门方案。
核心结论
RAG(检索增强生成)是一种结合信息检索与大语言模型的 AI 框架,由 Facebook AI Research(FAIR)团队在 2020 年提出。
RAG 的核心动作拆分为“检索、增强、生成”三个环节:检索是从知识库获取相关内容,增强是把检索结果加入提示词,生成则由大语言模型基于增强后的提示词输出答案。
RAG 的完整工作流程分为五步:知识准备、嵌入与索引、查询检索、提示增强、生成回答。
RAG 技术架构由检索模块和生成模块组成:检索模块通过文本嵌入将文本数据映射到连续向量空间的技术,保留语义关系,用于机器学习任务中的特征表示。模型和向量数据库A database system designed to store and perform high-dimensional semantic similarity searches on vector embeddings of data.(如 FAISSFacebook's open-source library for efficient similarity search and clustering of dense vectors.、MilvusA cloud-native vector database built for scalable similarity search applications.)实现相似度检索,生成模块则利用预训练大模型完成上下文融合与回答生成。
RAG 通过引入外部知识库,能够有效缓解大语言模型的知识截止问题和幻觉问题。
一、检索增强生成(RAG)
什么是 RAG
RAG 是一种 AI 框架。它把传统信息检索系统(比如数据库)的优势,和生成式大语言模型的能力拼在一起。LLM 拿到检索出来的额外知识,再配合自己的语言能力,输出自然更靠谱。
如何理解 RAG 的"检索、增强、生成"
RAG 的目标是从外部知识库检索相关信息,辅助大语言模型生成更准确、更丰富的文本。三个关键词拆开看:
检索:RAG 流程的第一步,从预先建好的知识库中找出和问题相关的信息,为后面的生成提供上下文和知识支撑。
增强:把检索到的信息作为上下文输入给生成模型,增强模型对特定问题的理解和回答能力。外部知识融进生成过程,生成的内容自然更丰富、更准确。
生成:最后一步。生成器拿着检索到的上下文,结合大语言模型产出符合用户需求的回答。
这里的主语值得捋一捋。从知识库检索到的东西,增强的是 LLM 的提示词,LLM 再拿着增强后的提示词生成答案。检索增强的是提示词,生成答案的是 LLM,这个关系别搞反。
如何使用 RAG
概念聊完了,看怎么落地。以搭建知识问答系统为例,分三步。
数据准备与知识库构建
先收集和问答系统相关的数据,文档、网页、数据库都行。接着做数据清洗,去掉噪声、重复项和无关信息。清洗完的数据切分成较小的片段(chunks),用文本嵌入模型(比如 GLM)转成向量,存进向量数据库(FAISS、Milvus 等),知识库就建好了。
检索模块设计
用户输入问题时,用同一个文本嵌入模型把问题转成向量,再到向量数据库里做相似度检索,一般用余弦相似度。按相似度得分排序,挑出最相关的片段,作为后续生成的输入。
生成模块设计
这一步很直接:把检索到的相关片段和原始问题合并,组成更丰富的上下文,交给大语言模型生成回答。大模型会根据检索到的信息给出准确、有用的答案。
你可以结合自己的业务领域,先搭一个医疗、法律或者产品知识问答的 Demo,再在工作中慢慢完善知识库里的问答对。
二、RAG 的原理、流程及架构
RAG 工作原理是什么
大语言模型有两个毛病:知识截止和幻觉。
知识截止:模型的知识到训练数据截止那天就没了。你问它截止之后的事,它要么答不上来,要么给你一个过时的答案。
幻觉:模型一本正经地给出错误答案,自己还没察觉。
RAG 把外部数据接进来,从知识库检索相关信息增强模型的生成能力,绕开了这两道坎。
RAG 工作流程是什么
完整流程五步:
- 知识准备:收集知识文档,转成文本,做预处理和索引。
- 嵌入与索引:用嵌入模型把文本转成向量,存进向量数据库。
- 查询检索:用户查询转成向量,从数据库里检索相关知识。
- 提示增强:把检索结果拼进提示词模板。
- 生成回答:大语言模型根据增强后的模板生成回答。
RAG 技术架构是什么
RAG 架构由两个核心模块组成:检索模块(Retriever)和生成模块(Generator)。
检索模块干三件事:
- 文本嵌入:用预训练的文本嵌入模型把查询和文档转成向量,方便在向量空间里算相似度。
- 向量搜索:用 FAISS、Milvus 这类向量数据库,检索出和查询向量最相似的文档或段落。
- 双塔模型:检索模块常采用双塔结构(Dual-Encoder),一个编码器管查询,一个编码器管文档,两者映射到同一个向量空间再算相似度。
生成模块也干三件事:
- 生成模型:通常用大规模预训练的生成模型(比如 GLM),自然语言生成能力很强。
- 上下文融合:把检索到的相关文档和原始查询合并,形成更丰富的上下文输入。
- 生成过程:模型根据输入的上下文,生成连贯、准确的回答。
检索模块负责找料,生成模块负责写稿,两者一组合,基于外部知识增强的自然语言生成就落地了。
常见问题(FAQ)
RAG是什么?
RAG是检索增强生成,一种AI框架,结合信息检索和大语言模型。它先检索外部知识库相关内容,作为提示词增强LLM,再生成准确回答,解决知识截止和幻觉问题。
RAG的工作原理是什么?
RAG通过从外部知识库检索相关信息,增强大语言模型的生成能力。用户查询转成向量,在向量数据库中找到最相似内容,拼进提示词模板,LLM基于增强后的上下文生成回答。
如何理解RAG的检索增强生成三个词?
检索:从知识库找相关信息;增强:将检索结果作为上下文输入给模型;生成:LLM基于增强后的上下文输出答案。检索增强的是提示词,生成答案的是LLM。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



