RAG(检索增强生成):作为大语言模型的动态知识引擎,它能够打破模型静态知识的局限,切实解决知识时效性欠缺、输出可信度不高等问题。
Agent(智能代理):作为大语言模型的智能执行核心,它让模型拥有自主规划任务、作出决策以及调用各类工具的能力,使模型具备更积极的行动能力。
1、RAG是什么?
检索增强生成(RAG)是一种融合了信息检索(Retrieval)与生成模型(Generation)的技术,目的是提升生成模型的性能和精准度。它创新性地将信息检索能力和生成模型的创造力相融合,构建出“先检索、再生成”的闭环逻辑。
具体来说,当模型收到用户的提问或任务指令时,RAG会先主动从海量的外部知识源(包含但不限于文档库、数据库、实时网络信息等)中精准找到并提取与问题紧密相关的证据性内容——这些内容就如同为生成过程提供了“实时参考资料”;之后,生成模型会依据这些检索到的事实依据,结合用户输入的具体需求,生成既符合语境又紧扣真实信息的回答。
这种机制从根源上解决了传统生成模型因依赖静态训练数据而出现的“知识过时”“虚构信息”等问题,让AI的输出既保留了生成式模型的流畅性,又具备可追溯、可验证的可信度。
2、为什么需要RAG?
为了解决生成模型在处理需要特定知识或最新信息的任务时存在的不足。RAG技术通过引入信息检索过程,从外部知识库中获取相关信息,再将这些信息与生成模型结合,进而提高生成文本的准确性和相关性。这种方法不仅能降低生成模型产生幻觉的概率,还能让模型在回答问题时给出更具时效性和针对性的答案。
3、RAG面临什么样的挑战
3.1. 检索环节:“找得准”的难题
检索模块是RAG系统的基础,其性能对整个系统的表现起着直接影响。目前,RAG系统面临的首要问题是检索精度不够和效率存在瓶颈。相关研究指出,在复杂的查询场景里,传统向量检索的准确率常常不到60%,这使得后续的生成环节所依据的知识基础是错误或不充分的。检索质量方面的问题主要体现在以下几个方面:
- 文档质量与噪声干扰:知识库中的文档可能存在冗余信息(像重复的段落)、噪声(例如错误的数据、主观的观点)或者过时的内容(如过期的政策、被推翻的科研结论)。以医疗领域为例,若知识库中混入了旧版的诊疗指南,那么检索之后可能会生成错误的治疗建议。另外,文档格式混乱(如非结构化的PDF扫描件、杂乱的表格)会给信息提取带来困难,进而降低检索的相关性。
- 语义鸿沟问题:主流的检索方式依靠向量嵌入(Embedding)技术,该技术通过将文本转化为向量,再计算向量间的相似度来匹配查询。但这种方法在处理歧义、多义词、复杂语义时存在固有的缺陷。用户的查询和知识库文档之间存在语义不匹配的情况,尤其是专业术语和日常表达之间的差异。比如在医疗场景中,患者描述的症状(“头晕”)和医学术语(“眩晕症”)不对应,就会导致检索失败。
- 多跳推理困难:对于那些需要把多个文档片段串联起来才能回答的复杂问题,现有的检索系统很难有效地将分散的知识片段关联起来。金融风控分析的结果显示,多跳查询的答案完整度仅仅是单跳查询的43%。
- 长尾查询处理:针对低频专业术语或者新兴概念的查询,由于训练数据不足,检索模型的表现会明显下降。科技领域新术语的检索召回率比常见概念要低35 - 50%。
在效率方面,随着知识库规模的扩大,检索延迟成了瓶颈。十亿级向量数据库的查询延迟能达到数百毫秒,难以满足实时交互的需求。某电商平台的数据表明,当检索延迟超过500ms时,会有23%的用户放弃查询。
3.2. 知识更新:“跟得上”的挑战
现实世界的知识处于动态变化之中(如发布新法规、取得科技突破、更新市场数据等),如果RAG的知识库不能及时同步这些变化,那么生成的回答就会存在“滞后性”,甚至会误导用户。具体的挑战有:
- 增量更新的效率瓶颈:传统的向量数据库在新增文档时,如果要对全量数据重新进行嵌入和索引,会消耗大量的计算资源(尤其是当知识库的规模达到百万级文档时)。虽然部分数据库支持“增量索引”,但新增文档和历史文档之间的语义关联可能会被忽略(如“新政策对旧政策的补充条款”),这就导致在检索时无法将新旧信息联动起来。
- “知识冲突”的处理难题:新知识可能会与旧知识产生冲突(如“某药物的副作用被新研究修正”),但RAG系统很难自动识别出这种冲突,也无法优先采用最新的信息。例如,若知识库中同时存在2022年“某疫苗有效性90%”和2024年“有效性修正为75%”的文档,在检索时可能因为向量相似度接近而返回旧数据,从而导致生成错误的结论。
3.3. 生成环节:“用得好”的障碍
尽管RAG的设计初衷是减少幻觉现象,但生成不可靠的问题仍然存在。行业测试显示,即便采用了RAG架构,LLM仍有5 - 8%的概率生成与检索内容相矛盾的回答。这种“有据幻觉”现象特别危险,因为系统看起来提供了引用支持,实际上却歪曲了原文的含义。生成质量方面的问题具体表现为:
- 过度生成:超出检索内容的范围,添加一些看似合理但实际上没有依据的细节。
- 信息遗漏:没有充分利用检索到的全部相关信息,只选择部分内容来作答。
- 语义扭曲:对检索内容的理解出现偏差,导致生成的答案与原文的精神相悖。
- 引用不当:错误地将检索片段和生成内容关联起来,或者引用不相关的文档作为支持。
3.4.场景适配:“用得通” 的限制
RAG 的性能与具体场景紧密相关,通用方案在复杂场景中很容易出现“水土不服”的情况,主要表现在以下方面:
- 领域适配性欠佳:不同领域的知识体系、术语逻辑存在明显差异。
- 多模态信息处理能力不足:现实世界的知识载体并非只有文本,还涵盖表格、图片、公式、音频等(例如科研论文里的实验图表、产品手册中的电路图)。目前 RAG 大多专注于文本处理,在非文本信息的检索(比如“依据图表数据回答趋势”)和整合方面能力较弱,进而造成信息缺失。
4、RAG技术原理
RAG系统的工作流程通常分为两个主要阶段:数据准备阶段和应用阶段。
在数据准备环节,系统会依次开展数据提取、文本分割、向量化(embedding)以及数据入库操作;
进入应用环节后,系统先对用户的提问进行处理,接着完成数据检索(召回)和Prompt注入,最终由LLM生成答案。具体来说,RAG遵循“检索-增强-生成”的三步流程:
- 检索模块:从预先构建的知识库中检索与问题相关的信息,为后续的生成过程提供有效的上下文信息和知识支持。该步骤与传统信息检索系统的工作模式类似,但凭借先进的文本嵌入和向量搜索技术,RAG的检索过程更为高效和精准。
- 增强步骤:把检索到的信息作为生成模型的上下文输入,将这些外部知识融入生成过程,让生成的文本内容更丰富、准确,且更贴合用户需求。通过这一步骤,LLM模型能够充分运用外部知识库中的信息,从而解决知识截止的问题。
- 生成模块:结合LLM生成满足用户需求的回答。生成器会以检索到的信息作为上下文输入,同时借助大语言模型,生成连贯、准确且信息详实的文本内容。
4.1 基本原理
RAG的基本原理可归纳为以下步骤:
- 用户向大型语言模型(LLM)发出查询请求。
- 大型语言模型接收并解析该查询后,会自动启动信息检索流程。
- 系统的检索模块依据查询的语义,从外部数据源(涵盖互联网资源、结构化知识库及各类数据库)中动态提取相关信息。
- 检索系统将获取到的相关上下文信息与原始查询相结合,形成增强型的输入内容。
- 大型语言模型结合外部检索结果和自身内部的知识库,生成精准且全面的最终回应。
在RAG里,外部数据源的信息一般会被转化为向量嵌入,也就是以大型向量空间形式存在的数字表征。这些向量嵌入被存储在向量数据库中,方便进行文档检索。向量数据库支持基于语义相似性的快速精准检索,进而提升RAG的效率。
4.2 关键组件
一个完整的RAG系统通常包含三个核心组件:检索器(Retriever)、生成器(Generator) 和排序器(Ranker)。
检索器的作用是从候选文档集合中找出与查询相关的文档,它借助多种检索技术和算法,例如基于关键词匹配、语义相似度等,来快速筛选出可能相关的文档。生成器根据检索到的候选文档生成与查询相关的摘要或答案,通常采用生成式模型,如语言模型或生成对抗网络(GAN),以自然语言的形式生成文本。排序器则对生成的文本进行排序和评分,确定最终输出的文档顺序。
在RAG技术的实现中,文档的分块与向量化是极为关键的环节。长篇文档会被分割成多个文本块,以便更高效地处理和检索信息。这些文本块通过嵌入模型生成语义向量,并建立索引,便于在后续检索过程中快速定位与查询相关的文档块。医疗领域的实践显示,采用专业分块策略处理的医学文献,其检索准确率能提高40%以上。
RAG系统的三级架构能够重构传统生成模式,其核心流程包含动态知识库构建、混合检索和上下文增强生成三个关键阶段。在动态知识库构建阶段,运用滑动窗口分块和结构感知切割技术,将各类文档转化为高密度语义单元;混合检索引擎融合BM25关键词检索与BERT向量检索,通过高斯混合模型(GMM)实现自适应召回;生成优化模块则借助注意力机制重构技术,将检索结果与原始提示词进行多维度融合。
4.3.技术优势
RAG技术与传统方法的对比优势
对比维度 | 传统微调 | Prompt工程 | RAG技术 |
---|---|---|---|
知识更新成本 | 高(需重新训练) | 低(仅调整prompt) | 极低(仅更新知识库) |
幻觉率 | 中等(~20%) | 较高(~27%) | 低(❤️%) |
复杂推理能力 | 有限 | 一般 | 强大 |
数据实时性 | 差(静态知识) | 中等(依赖prompt设计) | 优秀(动态检索) |
可解释性 | 低 | 中等 | 高(可追溯来源) |
表:RAG技术三个发展阶段的比较
技术特点 | 朴素RAG | 进阶RAG | 模块化RAG/SAGE |
---|---|---|---|
架构复杂度 | 简单(检索+生成) | 中等(增加预处理和后处理) | 高(模块化、可扩展) |
检索策略 | 单一向量检索 | 混合检索(BM25+向量) | 自适应多策略检索 |
生成方式 | 一次性生成 | 带后处理的生成 | 迭代式、反思式生成 |
知识更新 | 批量更新 | 增量更新 | 实时搜索+动态更新 |
典型应用场景 | 简单问答 | 专业领域问答 | 复杂决策支持系统 |
4.4.不同类型的RAG模型
依据架构特点以及整合外部知识的方式,RAG模型可划分为以下几类:
- 基于查询的RAG:LLM会根据输入内容生成查询语句,再利用该查询从外部知识源中检索相关信息。之后,将检索到的信息与LLM生成的输出内容相结合,进而生成最终的响应。此方法适用于处理事实性或基于知识的查询。
- 基于潜在表示的RAG:借助输入内容和外部知识源的潜在表示,来判断检索信息的相关性。LLM生成输入的潜在表示,随后将其与知识源的潜在表示进行对比,以此识别出最相关的信息。该方法能够捕捉到更深层次的语义关系。
- 基于Logit的RAG:运用Logit(即LLM在最终Softmax激活之前的原始输出值)来确定检索信息的相关性。通过把Logit与外部知识源的表示进行比较,挑选出最相关的信息,并将其整合到最终输出中。这种方法可以更直接地利用LLM的内部状态。
- 推测性RAG:LLM先生成多个假设或潜在输出,然后从知识源中检索相关信息,以此来支持或反驳每个假设。最终输出是依据最受支持的假设以及检索到的信息生成的。该方法有助于提高LLM输出的多样性和准确性。
- 简单RAG:作为RAG最基础的形式,它直接按照查询检索文档,并利用这些文档生成答案。适用于基本的问答任务。
- 带记忆的简单RAG:是对简单RAG的扩展,通过保留先前交互的上下文来实现功能。适用于需要上下文连续性的对话式AI。
- 分支RAG:执行多个检索步骤,根据中间结果优化搜索。适用于需要多步骤推理或信息综合的复杂查询。
- HyDe(假设文档嵌入):在进行检索之前,生成假设的理想文档,以提高搜索的相关性。适用于知识库中可能没有完全匹配项的查询。
- 自适应RAG:根据查询的类型或难度,动态调整检索和生成策略。适用于处理不同类型的查询或多样化的知识库。
5、搭建应用中常见问题与优化策略
在评估过程中,RAG系统存在的常见性能瓶颈和质量问题也显现了出来。在仅使用3篇PDF格式文档的测试里,即便文档结构较为清晰,系统还是遇到了几个典型问题:
- 答案不完整:例如对于问题“产品安全审核有哪些模式,分别有什么区别?”,答案应该是6种审核模式,但大部分产品只列出了3~4种。这一结果与embedding模型有关,更换不同的embedding模型,输出的结果也会不一样。embedding模型作为RAG应用的核心,对最终效果有着直接影响。
- 不依据文档回答问题,编造答案:比如提问“漏洞必须修复吗,不修复可以吗?”,依据原文应该回答类似“根据漏洞严重性和业务情况确定”的内容,但在不使用Prompt时,RAG给出的答案虽然合理,却没有依据原文回答。不过,通过添加特定Prompt(如“根据已知信息回答,如无法得到答案请说‘根据已知信息无法回答该问题’”),这一问题能得到显著改善。
- 未拒答文档范围外问题:对于本地知识问答系统而言,系统应该拒答与文档无关的问题,这一点也可以通过优化Prompt来实现。
- 无法进行复杂逻辑推理:RAG擅长回答原文中有直接答案的问题,却不擅长处理需要深层次推理的问题。例如,当原文要求使用TLSv1.2或更高版本时,用户询问“使用HTTP是否合规”,系统没能正确识别出这种违规情况。
针对这些挑战,行业内提出了多种优化策略:
- 查询改写(Query Rewriting):尝试采用改写、HyDE或子查询等方法,提高检索的准确性。查询转换技术既包括修正语法错误、补充关键字等初级转换,也包括利用大模型进行语义分解、抽象、补充等高级转换。
- 数据增强:通过使用同义词、释义等方式增加语料库的多样性,从而提升系统对多样化查询的理解能力。
- 分块策略优化:选择合适的分块技术,调整块大小和块重叠比例。结构感知分块是依据文档结构(如标点符号、标题级别)来划分的,而语义感知分块则是利用深度学习模型提取语义信息。
- LLM选择与微调:根据任务需求选择合适的基座模型,必要时进行领域适配微调。千帆大模型开发与服务平台等工具能够辅助进行模型选择与优化。
- 混合检索策略:将BM25关键词检索与语义向量检索相结合。
- 增量索引更新:对于时效性要求较高的场景,建立每小时自动更新的增量索引机制,以保持知识的新鲜度。
6、如何评估
评估RAG系统的性能,需要从多个维度进行全面考量,主要关注检索质量和生成质量这两个方面。
检索质量的关键测评指标包括高引用召回率、高引用精度、流畅性、实用性等;而生成质量则主要取决于模型的智能水平以及生成器对检索到的信息的处理能力。RAGAs(Retrieval - Augmented Generation Assessment)评估框架提供了一种系统化的分析方法,用于评估RAG系统在检索和生成环节的性能。该框架既评估检索系统识别相关上下文段落的能力,也评估大语言模型在生成过程中对这些段落的有效利用能力,同时特别关注生成内容的质量。
在实际应用中,研究者提出了更为详细的评估指标体系,尤其针对问答场景下的RAG应用。这些指标主要包括:
- 上下文相关性(Context Relevance):用于评估检索到的上下文的精准程度,确保检索到的上下文与问题直接相关,并尽可能降低对无关内容的处理成本。该指标衡量的是系统能否精准定位到与问题最相关的文本片段,避免引入无关信息对生成过程造成干扰。
- 答案忠实度(Answer Faithfulness):评估生成的答案是否遵循原文,是否存在胡乱编造的情况。这一指标针对的是RAG系统减少幻觉的核心价值,检验生成内容是否严格以检索结果为依据。
- 答案相关性(Answer Relevance):判断生成的答案与提出的问题是否直接相关,能否有效解决核心问题。优秀的RAG系统应该能够准确理解问题意图,提供切中要害的回答。
- 噪音鲁棒性(Noise Robustness):评估模型处理噪音文档的能力,这里所说的噪音文档是指与问题相关但缺乏实质性信息的文档。现实中的知识库常常包含不完整或低质量的内容,因此系统需要具备辨别信息价值的能力。
- 拒答能力(Negative Rejection):评估模型能否辨别出文档范围外的问题,是否能够拒答与文档无关的问题。对于企业级应用来说,系统应该明确了解自身的知识边界,避免对不了解的问题给出误导性回答。
- 信息整合能力(Information Integration):评估模型从多个文档中综合信息以解决复杂问题的能力。高级RAG系统应该能够进行多文档推理,综合不同来源的信息形成完整答案。
- 识别错误信息能力(CounterFactual Robustness):评估模型识别并忽略文档中已知不准确信息的能力。知识库中可能存在错误信息,所以系统需要具备一定的事实核查能力。
如何学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
学习路线
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓