1. 为什么RAG技术成为大模型时代的"刚需"?
1.1 传统大模型的"知识瓶颈":过时、片面、易幻觉
传统语言模型(如早期GPT系列、BERT基础版)虽能生成流畅文本,但存在一个致命短板:知识被"封印"在训练数据中。它们的知识库截止于训练 cutoff 时间,无法动态吸收新信息;面对垂直领域(如芯片设计、罕见病诊疗)的专业知识,更是如同"门外汉"——因为预训练数据难以覆盖所有细分场景。
更棘手的是"幻觉问题":当模型面对未知问题时,不会承认"不知道",反而会编造看似合理的答案。比如你问"2025年最新发布的编程语言有哪些?",训练数据只到2023年的模型,可能会虚构几种语言名称;在法律场景中,它甚至可能引用不存在的法条,这在专业领域是完全不可接受的。

这种局限性在实时性、专业性要求高的场景中尤为突出:
- 金融从业者需要基于最新政策解读市场趋势,模型却只能调用2年前的行业数据;
- 程序员查询某框架3.0版本的新特性,模型却一直在讲1.0版本的用法;
- 科研人员想了解某疾病的最新临床试验结果,模型给出的还是3年前的研究结论。
1.2 RAG的诞生:给大模型装一个"实时知识外挂"

为解决传统大模型的"知识滞后"和"专业性不足",检索增强生成(Retrieval-Augmented Generation, RAG) 技术应运而生。它的核心思路很简单:给大模型配一个"可实时更新的知识库",当收到查询时,先从外部知识源(文档、数据库、网页等)中检索最相关的信息,再把这些信息作为"参考资料"喂给大模型,让模型基于事实生成答案。
这就像考试时,传统大模型是"死记硬背"的学生,只能靠考前背的知识点答题;而RAG模型是"带了参考书"的学生,遇到不会的题可以快速翻书找答案,既保证了准确性,又能应对超纲问题。
举个直观的例子:当你问"LLaMA 3的最新微调技巧有哪些?",RAG会先从2024-2025年的技术博客、论文库中检索相关内容,再结合模型自身对LLaMA系列的基础理解,生成包含具体方法、实验数据的答案——而不是停留在"LLaMA 3是Meta发布的大模型"这种基础信息上。
1.3 RAG的应用场景:从日常问答到企业级解决方案
RAG的价值早已不局限于简单问答,而是渗透到程序员、产品经理、科研人员等各类人群的工作流中,尤其适合这些场景:
(1)程序员高效开发
- 技术文档查询:快速检索框架API、报错解决方案(比如检索"Python requests库SSL证书报错处理",直接获取最新版本的解决代码);
- 代码生成辅助:基于公司内部代码规范、历史项目代码片段,生成符合要求的代码(避免生成过时语法);
- 知识库问答:搭建团队内部问答系统,新人可查询"项目架构设计文档"、"数据库表结构说明"等。
(2)垂直领域专业支持
- 医疗:检索最新临床指南、药物相互作用数据,辅助医生诊断(比如"某抗癌药与降压药能否联用");
- 法律:实时查询最新法条、司法解释,生成法律意见书(比如"2025年新修订的劳动合同法对试用期的规定");
- 教育:根据教材、考试大纲生成个性化习题和解析(比如"高中数学导数部分高频考点及解题步骤")。
(3)企业级知识管理
- 内部文档问答:将公司财报、员工手册、项目文档整合为知识库,员工可自然语言查询(比如"2025年Q1销售目标是什么");
- 客户服务:基于产品手册、常见问题库,自动回复用户咨询(比如"智能家居设备如何连接WiFi");
- 舆情分析:实时检索网络信息,生成行业动态报告(比如"2025年AI大模型行业投融资趋势")。
简单说,只要需要"基于特定知识生成准确内容",RAG就是性价比最高的解决方案——无需重新训练大模型,只需更新知识库,就能让模型持续输出高质量结果。
2. RAG技术核心解析:检索与生成的"双向奔赴"
2.1 核心逻辑:先找对资料,再写好答案
RAG的本质是"检索+生成"的协同工作流,整个过程可以拆解为两步:
- 检索阶段:把用户查询转化为"检索指令",从知识库中精准抓取相关信息(比如文档片段、数据表格、代码块);
- 生成阶段:大模型结合"检索到的外部知识"和"自身预训练知识",生成逻辑连贯、事实准确的答案。
这两步缺一不可:没有检索,生成就会回到"幻觉频发"的老路;没有生成,检索到的碎片化信息无法直接满足用户需求(比如用户要"总结某论文的核心观点",检索只能拿到论文原文,生成才能提炼出简洁结论)。

举个程序员熟悉的例子:当查询"如何用LangChain搭建基础RAG系统"时,检索阶段会从LangChain官方文档、GitHub示例代码库中抓取"安装依赖、创建向量数据库、定义检索器、整合生成器"等关键步骤的代码和说明;生成阶段则会把这些碎片化信息整理为"步骤+代码+注释"的完整教程,还会补充常见坑(比如向量数据库连接超时解决方案)。
2.2 检索机制:从"关键词匹配"到"语义理解"
检索是RAG的"地基",检索的准确性直接决定了最终答案的质量。目前主流的检索方式分为两类,各有优劣,实际应用中常结合使用:
(1)稀疏检索:关键词匹配的"老可靠"
核心原理是通过关键词的出现频率、位置等信息判断相关性,典型代表是BM25算法(比传统TF-IDF更精准)。比如查询"Python 异步编程",稀疏检索会直接匹配包含"Python"、“异步编程”、"asyncio"等关键词的文档。
优点:速度快、算力消耗低、解释性强(能明确看到是哪些关键词匹配上的);
缺点:无法理解语义,比如查询"Python如何实现非阻塞IO",如果文档中只写"asyncio库的核心是事件循环",没有直接出现"非阻塞IO",就可能检索不到。
(2)稠密检索:语义理解的"新势力"
核心原理是把查询和文档都转化为低维向量(嵌入向量),通过计算向量之间的相似度(如余弦相似度)来判断相关性,典型代表是DPR(Dense Passage Retrieval)、BGE Embedding等。
比如查询"Python如何实现非阻塞IO",稠密检索能理解"非阻塞IO"和"asyncio事件循环"是语义相关的,即使文档中没有直接出现"非阻塞IO"这个短语,也能精准检索到相关内容。
优点:语义理解能力强,能处理同义词、 paraphrase(改写)查询,检索准确率更高;
缺点:需要训练嵌入模型,算力消耗比稀疏检索高。
(3)混合检索:取长补短的"最优解"
实际项目中,大多采用"稠密检索为主,稀疏检索为辅"的混合策略:先用稠密检索找到语义相关的文档,再用稀疏检索补充关键词匹配的结果,最后合并去重——既保证了语义理解能力,又避免了稠密检索可能遗漏的关键词信息。
2.3 生成过程:如何让"资料"变成"答案"
生成阶段的核心是"去噪+整合+推理",大模型需要完成三件事:
- 去噪过滤:剔除检索到的无关信息(比如检索"LangChain RAG"时,可能会混入LangChain其他模块的文档,需要过滤掉);
- 信息整合:将多个来源的碎片化信息串联起来(比如从A文档拿到安装步骤,从B文档拿到核心代码,从C文档拿到调试技巧);
- 逻辑推理:基于整合后的信息,按照用户需求生成答案(比如用户要"教程"就按步骤写,要"对比"就列表格,要"代码"就附完整示例)。
举个具体例子:用户查询"LangChain和LlamaIndex搭建RAG的优缺点对比",生成过程如下:
- 去噪:从检索结果中剔除与"RAG搭建"无关的内容(如LangChain的Agent功能、LlamaIndex的文档加载功能);
- 整合:从文档中提取两者的"部署难度、自定义程度、性能、适用场景"等关键维度的信息;
- 推理:按照"维度对比+总结建议"的结构生成答案,比如"LangChain自定义程度高,适合有编程基础的开发者;LlamaIndex开箱即用,适合快速搭建原型"。
2.4 知识整合:三种主流方式,适配不同场景
如何把检索到的信息高效传递给生成模型?主要有三种整合方式,各有适用场景:
(1)输入层整合:简单直接,新手友好
把检索到的文档片段和用户查询拼接在一起,作为大模型的输入。比如:
用户查询:如何用LangChain搭建RAG?
检索到的信息:[文档1:LangChain RAG核心组件包括Retriever、VectorStore、LLM...;文档2:安装命令:pip install langchain openai...]
输入给LLM:"根据以下信息,回答用户问题:如何用LangChain搭建RAG?信息:[文档1内容][文档2内容]"
优点:实现简单,无需修改模型结构,适合快速验证原型;
缺点:受LLM上下文窗口限制,如果检索到的信息太多,可能需要截断(导致信息丢失)。
(2)中间层整合:灵活高效,性能更强
通过注意力机制,在大模型的中间层(隐藏层)融入检索到的信息。比如RETRO模型引入了"交叉注意力模块",让模型在生成每个token时,都能动态关注检索到的相关文档片段。
优点:无需拼接长文本,能更精准地利用相关信息,减少冗余;
缺点:需要修改模型结构,对技术门槛要求较高。
(3)输出层整合:精准校准,减少幻觉
将检索到的信息转化为"置信度分数",在生成答案后,用分数校准输出——比如某条信息的置信度低(来源不可靠),就弱化甚至不提及;置信度高(来源是官方文档),就重点强调。
优点:能有效减少幻觉,提升答案的可信度;
缺点:需要额外设计置信度评估机制,适合对准确性要求极高的场景(如医疗、法律)。
3. RAG实战关键步骤:从0到1搭建的全流程

搭建一个可用的RAG系统,核心要走8步:用户意图理解→知识源与解析→知识嵌入→知识索引→知识检索→知识整合→答案生成→知识引用。每一步都有明确的目标和实操技巧,新手可以按流程逐步落地。
3.1 用户意图理解:把"模糊查询"变成"精准检索指令"
用户的查询往往是模糊的(比如"RAG怎么优化?"),直接用于检索会导致结果杂乱。这一步的核心是让查询更精准,常用两种方法:
3.1.1 查询分解:复杂问题拆成"小任务"
对于多跳、复杂查询(比如"如何用Python+LangChain+Milvus搭建企业级RAG系统?"),需要拆分成多个子查询,分别检索后再整合:
- 子查询1:Python+LangChain的基础使用方法;
- 子查询2:Milvus向量数据库的部署与连接;
- 子查询3:LangChain与Milvus的集成步骤;
- 子查询4:企业级RAG的优化技巧(如分块策略、缓存机制)。
常用的分解策略:
- 最少到最多提示(Least-to-Most Prompting):从最简单的子问题开始,逐步解决复杂问题;
- 自问(Self-Ask):让模型自己提出子问题,直到能回答原始查询(比如"要搭建企业级RAG,需要先解决什么问题?→ 数据库选择→ 集成方法→ 优化策略");
- 链中搜索(SearChain):每分解一个子查询,就进行一次检索验证,确保子问题的有效性。
3.1.2 查询重写:让模糊查询更"具体"
对于模糊查询(比如"RAG优化"),通过重写让其包含关键词、场景、约束条件,提升检索准确性。比如:
- 原始查询:"RAG优化"→ 重写后:“LangChain RAG系统的检索准确率优化方法(针对中文文档)”;
- 原始查询:"文档问答"→ 重写后:“基于PDF文档的RAG问答系统搭建步骤(Python实现)”。
常用的重写工具和方法:
- RRR(Rewrite-Retrieve-Read):用LLM直接重写查询,提升与知识库的对齐度;
- HyDE(Hypothetical Document Embeddings):让LLM先生成一个"假设答案",再把假设答案作为检索查询(比如用户问"RAG分块策略",先生成"RAG分块包括固定长度分块、语义分块等",再用这句话检索相关文档);
- Step-Back Prompting:让LLM从具体问题抽象到核心概念(比如"如何优化RAG的检索速度"→ 抽象为"RAG检索效率优化方法"),再进行检索。
3.2 知识源与解析:让RAG"读懂"你的数据
RAG的知识库可以是任何类型的数据,关键是要把不同格式的数据解析成模型能处理的形式。常见的知识源类型及解析方法如下:
3.2.1 结构化知识:知识图谱、数据库
结构化数据是指有固定格式的数据,比如知识图谱(KG)、MySQL数据库、Excel表格等。这类数据的优势是查询高效、关系明确,适合处理实体关联类问题(比如"谁是某公司的创始人?")。
解析与整合技巧:
- 知识图谱(KG):用GNN(图神经网络)提取实体和关系,转化为"实体-关系-实体"的三元组(比如"LangChain-开发公司-Hugging Face"),再通过图索引进行检索;
- 数据库:用SQL生成器(如LangChain的SQLDatabaseChain)将自然语言查询转化为SQL语句,查询后将结果转化为文本格式,再输入生成模型;
- 工具推荐:处理KG用Neo4j、NebulaGraph;处理表格用Pandas、LangChain TableQA模块。
3.2.2 半结构化知识:JSON、HTML、XML
半结构化数据没有严格的格式,但有一定的组织规则,比如网页HTML、API返回的JSON数据、邮件等。这类数据的核心是提取"关键字段+内容"。
解析与整合技巧:
- HTML网页:用Beautiful Soup、Scrapy提取正文内容,过滤掉广告、导航栏等噪声;
- JSON数据:直接提取key-value中的核心信息(比如API返回的"title"、"content"字段);
- 工具推荐:Python库Beautiful Soup(HTML解析)、jsonpath-ng(JSON解析)、html5ever(高性能HTML解析)。
3.2.3 非结构化知识:PDF、Word、纯文本
非结构化数据是最常见的知识源(比如论文、技术文档、小说),其中PDF是企业和科研场景的"重灾区"——格式复杂(包含表格、公式、图片)、排版多样,解析难度最大。
解析与整合技巧:
- 文本提取:用OCR工具(如Tesseract、ABINet)提取扫描件PDF的文本;用PyPDF2、pdfplumber提取可编辑PDF的文本;
- 格式保留:用Marker、GPTPDF将PDF中的表格、公式转化为Markdown格式(方便模型理解);
- 噪声过滤:去除页眉页脚、页码、水印等无关信息;
- 工具推荐:Marker(学术PDF解析)、GPTPDF(复杂格式PDF转Markdown)、Zerox OCR(扫描件PDF解析)。
3.2.4 多模态知识:图片、音频、视频
多模态数据(如图像、语音、视频)能丰富RAG的应用场景(比如"根据产品图片生成使用说明"),核心是将不同模态的数据对齐到同一向量空间。
解析与整合技巧:
- 图片:用CLIP、ViT模型将图片转化为向量,与文本向量进行跨模态检索;
- 音频:用Wav2Vec 2.0、CLAP模型将语音转化为文本或向量(比如检索"某段音频中提到的RAG技术");
- 视频:用ViViT、VideoPrism提取视频的帧特征和音频特征,再与文本对齐;
- 应用场景:产品手册(图片+文字)问答、视频内容检索(比如"检索视频中讲解LangChain的片段")。
3.3 知识嵌入(Knowledge Embedding)
知识通常存储在大量文本文档中,首先被分割为简洁且有意义的单元,每个单元封装一个核心思想。这些单元随后被转换为向量嵌入,编码语义信息,便于通过相似性度量进行高效检索。
3.3.1 分块划分
分块划分是一个基础过程,显著影响文档检索质量,从而影响整体性能。分块划分的主要目标是将大段文本分割为可管理的单元或“块”,从而实现更高效的检索和生成。通过将复杂文档分割为更小、连贯的单元,RAG可以实现对上下文保留的精细控制,并提升信息检索的准确性。分块划分的目标和挑战在于确保分割后的块保留有意义的上下文,同时避免冗余和信息丢失。传统的分块方法,如固定长度、基于规则或基于语义的划分,相对简单,但缺乏捕捉复杂文本中细微结构的灵活性。这些方法在处理格式多样或包含跨段落语义流的文档时往往表现不佳,导致由于上下文信息碎片化而检索效果不理想。
随着分块划分方法的演变,早期的固定长度方法逐渐被更自适应和智能的策略所取代。最近的优化策略旨在捕捉文本中细粒度的信息分布和语义结构。例如:
- 命题级分块:将文本分割为单个事实的小单元,从而捕捉更丰富的信息。
- LumberChunker:使用LLM检测段落之间的内容变化,从而创建上下文敏感的块。
- 元分块方法:(如边际采样分块和困惑度分块)优化块边界,以更好地满足RAG需求,提升上下文捕捉和检索效果。
- 延迟分块:一种创新方法,与传统做法不同,它在分块之前对整个文档进行嵌入,从而使模型保留完整的上下文,特别是在处理复杂或上下文密集的文本时,显著改善了检索结果。这些先进的分块策略使RAG能够更好地适应复杂的文档结构,捕捉细微信息,并提升检索准确性,为多样化的检索和生成任务提供了更强大的支持。
3.3.2 文本嵌入模型

在基于查询检索块时,该过程依赖于查询与块之间的向量相似性计算(如余弦相似性)。将块准确映射为向量表示对于有效捕捉语义意义并与相关查询对齐至关重要。
传统方法,如:
- 词袋模型(Bag of Words, BoW):强调词频但忽略语法
- N-gram:捕捉语言结构但面临维度挑战
- TF-IDF模型:结合了词频和上下文,但仍受高维度问题的限制。
以上方法无法全面表示语义信息。相比之下,基于深度学习的现代词嵌入方法,如:Word2Vec、GloVe和fastText:通过利用上下文、共现模式或词根变化来编码单词。
然而,这些嵌入是静态的,无法适应不同的上下文。
Transformer架构 的引入,特别是BERT ,在捕捉上下文意义和增强语义表示方面取得了重大进展。BERT 及其衍生模型,如RoBERTa、ALBERT 和DPR,显著提升了文档检索能力。
BGE、NV-Embed和SFR-Embedding,在多语言和特定领域的基准测试中表现出色。
3.3.3 多模态嵌入模型
知识不仅以文本形式表示,还包括图像、音频和视频。因此,对多模态嵌入模型的需求日益增加,这些模型将来自不同模态的信息整合到一个统一的向量空间中。这些模型专门设计用于捕捉不同数据类型之间的关系和共享信息,从而实现更全面和统一的表示。
对于图像,模型处理JPG或PNG等图像格式,生成与文本相同的语义向量空间中的嵌入。
- Normalizer-Free ResNets (NFNet) :提供了一个高效的框架来提取图像特征
- **Vision Transformer (ViT)**:利用Transformer架构学习高质量表示。
- 对比语言-图像预训练(CLIP):通过对比学习将视觉和文本模态对齐,生成了适用于零样本分类和跨模态检索的多功能嵌入。
对于音频,模型提取音高、音色、节奏和语义等关键特征,从而实现对音频的有效和有意义分析,以支持检索任务。
- Wav2Vec 2.0:一种自监督学习模型,直接从原始波形中学习音频表示,生成适用于多种音频任务的高层次嵌入。
- 对比语言-音频预训练(CLAP):一种最先进的模型,通过从成对的音频和文本数据中学习生成音频嵌入,为音频与自然语言的整合提供了统一框架。
对于视频,模型旨在将视频数据表示为紧凑且特征丰富的向量,捕捉空间、时间和语义信息。
- **Video Vision Transformer (ViViT)**:基于ViT,能够有效处理视频理解任务,捕捉空间和时间特征。
- VideoPrism:因其在广泛视频理解基准测试中的最先进表现而备受关注。它特别擅长在不同视频领域中泛化,而无需特定任务的微调。
3.4 知识索引(Knowledge Indexing)
在RAG中,索引被定义为数据的结构化组织,能够从大规模数据集中高效访问和检索信息。索引将用户查询映射到相关的文档块、知识片段或其他信息内容,充当存储数据与检索机制之间的桥梁。索引的有效性对RAG系统至关重要,因为它直接影响响应准确性、检索速度和计算效率。
3.4.1 索引结构
结构化索引:结构化索引基于预定义的固定属性组织数据,通常采用表格或关系格式。在早期的知识检索工作中,如REALM系统,文本倒排索引被广泛用作基础技术,而Table RAG则使用特定于表格的索引结构,结合列索引和行索引,以高效检索相关表格条目用于语言生成任务[30]。
非结构化索引:非结构化索引则设计用于自由格式或半结构化数据,在现代RAG系统中更为常见。向量索引利用先前嵌入阶段生成的向量来提高检索效率,如naive RAG、ANCE和G-retriever,后者使用语言模型将图的文本属性转换为向量。
图索引:图索引是一种非结构化索引,利用图结构的固有优势来表示和检索互连数据。在图索引中,数据点被表示为节点,而它们之间的关系通过边表示。这种索引范式特别擅长捕捉语义关系和上下文信息,从而支持复杂的查询和推理任务。
3.5 知识检索( Knowledge Retrieval)
在RAG系统中,知识检索是一个关键步骤,决定了生成模型能够获取到哪些外部知识。知识检索的目标是从大规模的外部知识库中快速、准确地找到与用户查询最相关的信息。为了实现这一目标,RAG系统通常依赖于高效的检索算法和索引结构。

知识检索是基于给定查询从向量数据库中识别并检索相关知识的过程。包括检索策略和搜索方法。检索策略关注如何识别相关知识,而搜索方法则定义了用于快速定位最相关信息的算法。
3.5.1 检索策略
检索的目标是根据输入查询识别并提取最相关的知识。通过使用相似性函数检索最相关的 top-k 个知识块。根据不同的相似性函数,检索策略可以分为三种类型:稀疏检索、稠密检索和混合检索。
稀疏检索
稀疏检索策略通过词语分析和匹配利用稀疏向量检索文档或知识块。传统的稀疏检索策略使用术语匹配指标,如 BM25、TF-IDF 和查询似然,通过计算词语出现频率和逆文档频率来估计文档与查询的相关性。
稠密检索
稠密检索策略将查询和文档编码到低维向量空间中,通过向量表示的点积或余弦相似度来衡量相关性。稠密检索器,如 DPR 和 ANCE,基于 BERT 架构的预训练语言模型,并在无监督数据上进行微调,以生成高质量的查询和文档表示。
最近,大语言模型(LLMs)在语义理解和表示能力方面表现出色。基于 LLMs 的强大能力,研究者们尝试使用 LLMs 生成判别性文本嵌入。例如,Llama2Vec 是一种轻量级方法,通过两个无监督预训练任务(EBAE 和 EBAR)将 LLMs 用于稠密检索。RepLLaMA 微调 LLaMA 作为稠密检索器,利用其整体表示长文档的能力进行高效文本检索。
混合检索
混合检索策略结合了稀疏和稠密检索技术,旨在通过利用每种方法的优势来优化性能。例如,RAP-Gen 和 BlendedRAG 将传统的关键词匹配与深度语义理解相结合,使系统既能从稀疏检索的效率中受益,又能通过稠密表示捕获更深层次的上下文。BASHEXPLAINER 采用两阶段训练策略,首先使用稠密检索器捕获语义信息,然后使用稀疏检索器获取词汇信息,从而实现性能优异的自动代码注释生成。这种双重策略解决了每种方法的局限性;例如,稀疏策略可能在语义细微差别上表现不佳,而稠密策略则可能计算密集。通过结合两者的优势,混合模型提高了各种任务中的检索准确性和相关性。
3.5.2 搜索方法
搜索方法是指为给定查询向量从向量数据库中高效识别相似向量的算法。搜索方法可以分为两种类型:最近邻搜索(NNS)和近似最近邻搜索(ANNS)。
最近邻搜索
NNS 的暴力算法是一种简单的算法,穷举扫描数据库中的所有向量,计算与查询向量的距离以识别最接近的向量。然而,这种方法计算成本高,在大规模数据集上不切实际。
引入了基于树的方法来提高搜索效率。例如,Bentley 提出了一种基于 k-d 树的方法,该方法将 k 维空间递归划分为超矩形区域,从而提高了数据组织和搜索速度。其他基于树的结构,如 Ball-tree、R-tree和 M-tree,也通过将数据划分为超球体、矩形或度量空间等结构来增强最近邻搜索,从而提高了搜索性能,特别是在高维和复杂数据集中。
近似最近邻搜索
ANNS 在准确性、速度和内存效率之间取得了平衡,使其特别适用于大规模和高维数据。这包括基于哈希的方法、基于树的方法、基于图的方法和基于量化的方法。
- 基于哈希的方法,将高维向量转换为二进制代码,优化内存使用并加速搜索操作。例如,深度哈希使用深度神经网络学习哈希函数,将高维向量映射为二进制代码,同时保留相似数据之间的语义关系。
- 基于树的 ANNS 方法,包括 K-means 树和 ANNOY,通过层次化组织数据,通过高效遍历树结构来减少搜索空间。这些方法将数据集划分为分区或簇,使得在搜索过程中仅探索相关区域。
- 基于图的方法,如分层可导航小世界(HNSW),通过反映数据点之间接近度的边连接数据点,从而通过导航图快速进行最近邻搜索。
- 基于量化的方法,如乘积量化,旨在通过将向量量化为较小的码本来压缩数据,从而在保持搜索速度和准确性之间良好平衡的同时减少内存需求。
多样化的 ANNS 方法为大规模、高维数据集中的快速高效最近邻搜索提供了强大的解决方案,每种方法在准确性、速度和内存使用方面都有其自身的权衡。
3.6 知识整合
知识整合是指将检索到的外部知识与生成模型的内部知识相结合,以提高输出的准确性和连贯性。基本上,知识整合可以分为三种类型:输入层整合、中间层整合和输出层整合。
3.6.1 输入层整合
输入层整合是指在输入层将检索到的信息与原始查询直接整合,旨在增强生成过程中的上下文信息。根据整合方法的不同,输入层整合可以分为两种类型:文本级整合和特征级整合。
文本级整合
将检索到的 top-k 文档直接与查询拼接。为了减少低质量信息的影响并更好地利用大语言模型(LLMs)的上下文学习能力,一些方法对知识块进行重新排序,优先处理最相关的内容,而另一些方法则应用加权过滤从检索内容中去除不相关信息。由于 LLMs 的输入长度限制,对上下文进行压缩,使模型能够在有限的输入大小内学习更多信息。
特征级整合
特征级整合侧重于在特征级别将检索内容的编码形式与原始输入整合。与简单地拼接原始文本不同,将输入查询和检索到的文档转换为特征表示(如稠密或稀疏向量),然后再输入到模型中。通过在特征表示而非原始文本上操作,特征级整合允许对输入数据进行更灵活的操纵。
3.6.2 中间层整合
中间层整合是指将外部知识整合到生成器的隐藏层中。基于注意力的方法 是中间层整合中常见的方法之一。
- RETRO 模型:引入了一种新颖的交叉注意力模块,将检索到的信息与模型的中间表示相结合。
- TOME:引入了 提及记忆 机制,通过存储和检索实体提及表示,将外部知识整合到 Transformer 中。
- LongMem框架:使用自适应残差网络进行记忆检索,结合注意力机制高效访问和检索相关的长期记忆。
3.6.3 输出层整合
输出层整合是指在生成器的输出层整合检索到的知识。这种方法通常将检索知识的 logits 与模型的输出 logits 结合,从而实现增强生成。输出层整合可以分为两个主要分支:
- 基于集成的整合 聚合来自检索的 logits,例如在 kNN-LM中,最近邻的概率与模型的预测进行插值,以提高泛化能力和鲁棒性。
- 基于校准的整合 则使用检索 logits 来优化模型的预测置信度,如置信度增强的 kNN-MT。
3.7 答案生成

在 RAG 系统中,生成组件是生成既准确又上下文相关的回答的核心。
然而,在 RAG 模型中实现高质量输出需要克服两大挑战:处理噪声检索以及实现对多样化信息的有效推理。
3.7.1 去噪
去噪在 RAG 模型中至关重要,目的是减少从大型知识库中检索到的无关、矛盾或误导性信息的影响。检索中的噪声会严重影响生成输出的事实准确性和连贯性,因此去噪机制在 RAG 管道中不可或缺。
显式去噪技术
一种有效的去噪方法是通过显式监督。InstructRAG引入了 理性生成,模型被指示生成中间理性,以澄清每个检索文档的相关性。这些理性通过引导模型专注于更准确和上下文相关的内容,有效地过滤了噪声。REFEED 框架利用大语言模型根据检索数据重新评估响应的准确性,迭代地丢弃不太相关的信息,从而优化初始答案。
基于判别器的去噪
COMBO 框架使用预训练的判别器将生成的段落与检索到的段落配对,在最终生成阶段之前评估每对的连贯性和相关性。这种基于判别器的方法确保识别并过滤无关或矛盾的信息,从而最小化幻觉的风险。
自反思和自适应去噪
Self-RAG引入了一种自反思机制,模型通过评估其响应的连贯性和事实性来批评和修订自己的输出。这种方法提供了一种动态处理噪声的方式,因为模型可以通过自我评估迭代地过滤不可信或无关的信息。此外,自适应检索策略允许模型根据任务特定标准检索文档,动态调整检索范围和过滤强度,以优化相关性和质量。
上下文过滤和置信度评分
模型可以根据检索信息与查询的一致性为其分配分数,在整合之前过滤掉低置信度的检索。这种方法利用置信度阈值系统地排除噪声文档,特别适用于相关性差异显著的开放域问答任务。
3.7.2 推理
除了去噪,推理对于需要跨多个文档综合信息的任务至关重要。有效的推理使模型能够将检索到的信息情境化,建立逻辑连贯性,并生成准确反映复杂关系的响应。
结构化知识和基于图的推理
一种高级推理方法涉及整合结构化知识源(如知识图谱)以辅助复杂的关系推理。Think-on-Graph 2.0 引入了一个框架,将知识图谱与非结构化文本相结合,使模型能够推理实体之间的结构化关系。通过利用图结构,模型获得了更深层次的上下文理解,提高了回答涉及复杂关系的查询的能力。
跨注意力用于多文档推理
为了促进跨多个文档的推理,RETRO 模型采用了分块跨注意力,使生成模型能够关注检索到的文本块中的相关信息。这种跨注意力机制有助于保持上下文连贯性,特别是在信息跨越多个文档的开放域设置中。跨注意力也在增强的 kNN 方法中得到了探索,其中 kNN 注意力层允许模型在生成过程中利用邻域信息,从而实现上下文相关内容的无缝整合。
记忆增强推理
记忆增强推理,如 EAE 和 TOME 等模型中所示,整合了特定实体的记忆模块。这些模型存储并动态检索与实体相关的信息,使生成模型能够随着时间的推移保持一致性和连贯性。记忆模块在需要纵向一致性或多步推理的任务中特别有益,因为它们允许模型在对话或文档的不同部分中回忆特定实体的细节。
检索校准和选择性推理推理的另一个关键进展是检索校准,模型被训练为根据上下文相关性优先处理某些检索信息。校准技术帮助模型识别最关键的信息,在推理之前过滤掉不太相关的检索。
分层和多轮推理对于需要多步推理的复杂查询,分层或多轮推理模型允许模型迭代处理检索到的信息,每轮都优化其理解。多轮推理特别适用于涉及因果或时间依赖性的任务,因为它使模型能够根据新信息“重新审视”先前的知识,形成分层的理解,从而提高响应的准确性和连贯性。
3.8 知识引用
在 RAG 中,引用对于确保模型响应的透明度、可信度和事实基础至关重要。通过将生成的内容归因于可验证的来源,用户可以轻松验证信息,减少声明验证的负担,并改进评估过程。此外,有效的引用有助于减少幻觉,增强模型输出的事实完整性。
3.8.1 引用生成策略
在语言模型中生成引用有两种主要策略:同步引用生成 和 生成后引用检索。
- 同步生成被 WebGPT、GopherCite 和 RECLAIM 等模型使用,它们在响应生成过程中实时检索信息。这种方法确保答案和引用紧密对齐,减少幻觉并提高事实准确性。
- 生成后引用被 RARR和 LaMDA等模型使用,它先生成答案,然后再检索引用。虽然这种方法降低了计算复杂性,但由于答案的生成独立于引用,增加了响应与引用来源之间不一致的风险。
两种方法各有优势:同步生成提供了更强的事实基础,而生成后引用则在响应生成中提供了更大的灵活性。
3.8.2 引用粒度的进展
引用粒度——即引用中提供的细节水平——在最近的模型中有了显著提升。早期的模型如 LaMDA 使用粗粒度引用,通常引用整个文档或 URL,虽然有助于事实基础,但需要用户筛选无关信息。最近的模型,如 WebGPT、WebBrain和 GopherCite,已经向细粒度引用发展。
这些模型检索特定的证据片段,或专注于理解长文档以支持个别声明。RECLAIM 模型代表了最高水平的引用粒度,将个别声明链接到源材料中的确切句子。
4. 高级RAG
高级RAG方法超越了基础的RAG模型,通过一系列创新技术克服了基础RAG系统的局限性。这些方法旨在从多个维度提升RAG系统的能力,包括训练优化、多模态处理、记忆增强和智能推理。
4.1 RAG训练

RAG训练的核心在于优化检索和生成组件之间的协同作用,以实现最佳性能。有效的训练策略确保检索器获取相关信息的同时,生成器能够产生连贯且准确的输出。本节将介绍三种主要的训练方法:静态训练、单向引导训练和协同训练。
4.1.1 静态训练
静态训练是一种简单但有效的方法,在训练过程中固定检索器或生成器中的一个组件,专注于优化另一个组件。这种方法在计算资源有限或需要快速部署的场景中尤为适用。例如,固定检索器并优化生成器可以利用已有的检索机制(如BM25或BERT),从而减少训练开销。然而,静态训练的缺点是可能影响系统的整体性能,因为只有单一组件被优化,可能导致检索与生成之间的协同作用不足。
4.1.2 单向引导训练
单向引导训练通过一个组件引导另一个组件的优化,分为检索器引导生成器训练和生成器引导检索器训练两种方式。
• 检索器引导生成器训练:利用高质量检索文档指导生成器的训练,例如RETRO和RALMs等模型通过预训练的检索器(如BERT和COLBERTV2)提升生成器的输出质量。
• 生成器引导检索器训练:根据生成器的性能优化检索器,例如DKRR和AAR等模型利用生成器的注意力分数或生成信号指导检索器的训练,确保检索内容与生成需求一致。
4.1.3 协同训练
协同训练同时优化检索器和生成器,通过联合训练实现整体系统性能的提升。这种方法确保两个组件的改进相互促进,例如RAG和MIPS等模型通过协同训练优化检索过程,使检索器能够根据生成器的反馈逐步提升检索效果,同时生成器也能更好地利用检索信息。
4.2 多模态RAG
多模态RAG扩展了传统文本RAG系统,通过整合图像、音频、视频等多种模态信息,丰富了系统的输出能力。然而,多模态RAG面临两大挑战:一是如何有效表示和检索跨模态知识,二是如何理解和利用多模态信息生成合适的响应。
4.2.1 多模态表示与检索
多模态RAG的基础在于将不同模态的数据转换为统一的向量表示,并实现跨模态的高效检索。例如,CLIP通过学习图像和文本的对齐表示,实现了跨模态检索;Wav2Vec 2.0和ViViT则分别处理音频和视频内容,提取丰富的特征表示。
4.2.2 多模态理解与生成
多模态RAG系统需要进一步理解跨模态关系并生成连贯的输出。例如,MuRAG和RA-CM3通过检索和生成多模态内容(如图像和文本)提升问答系统的能力;Transfusion和Show-o等模型则结合语言建模和扩散模型,支持广泛的视觉-语言任务。
4.3 记忆RAG

记忆RAG通过引入显式记忆机制,弥补了传统RAG系统中隐式记忆和实时检索之间的空白。这种机制在处理长文档理解、个性化知识管理等场景中表现出色。
4.3.1 记忆类型
• 隐式记忆:存储在模型参数中的知识,例如预训练的检索器和生成器权重,提供快速推理但难以更新。
• 显式记忆:压缩的、结构化的长期知识表示,例如对整本书或用户行为模式的理解,比隐式记忆更灵活且易于更新。
• 工作记忆:临时存储的检索文本块,用于当前任务的生成,类似于人类的短期记忆。
4.3.2 技术实现
记忆RAG通过稀疏键值缓存实现显式记忆,例如Memory3通过两阶段预训练将原始输入转换为显式记忆;MemoRAG采用轻量级LLM作为全局记忆系统,提升长文本处理能力;CAG则通过预计算键值缓存完全消除实时检索需求,提高系统效率。
4.4 Agentic RAG

Agentic RAG将自主智能体与RAG技术结合,通过动态管理检索策略和优化推理过程,显著提升了系统的性能。
4.4.1 查询理解与策略规划
智能体通过分析查询复杂性和主题,制定合适的检索策略。例如,AT-RAG通过主题过滤和迭代推理提升多跳查询的检索效率;REAPER则通过基于推理的检索规划优化复杂查询的处理。
4.4.2 工具利用
Agentic RAG能够利用多种外部工具(如搜索引擎、计算器和API)增强检索和推理能力。例如,AT-RAG和RAGENTIC通过多代理协作和工具集成,灵活应对不同任务需求。
4.4.3 推理与决策优化
智能体通过多步推理和决策优化,评估信息源可靠性并优化检索策略。例如,PlanRAG通过“先计划后检索”的方法提升生成模型的决策能力;REAPER则通过推理增强检索规划,提高系统响应速度。
通过以上高级RAG方法,RAG系统在处理复杂、动态和专门化任务时展现出更强的能力和适应性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】


为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。


大模型入门到实战全套学习大礼包
1、大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

2、大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

3、AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

4、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

5、大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

适用人群

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

612

被折叠的 条评论
为什么被折叠?



