一、什么是 RAG?

RAG是Retrieval-Augmented Generation 的缩写,即检索增强生成的意思。

RAG 是一个将输入与一组相关的支持文档结合起来的技术,这些文档通常来自于像维基百科这样的来源。这些文档被添加到输入提示中,一起送入文本生成器,从而产生最终的输出。RAG 的这一机制特别适用于需要应对信息不断更新的场景,因为大语言模型(LLM)所依赖的参数知识本质上是静态的。通过 RAG,语言模型可以不经过重新训练而直接访问最新信息,以便生成可靠的、基于检索的输出。

简单来说是通过垂直数据库检索相关信息,然后合并成为提示模版,给大模型润色生成回答

二、为什么需要 RAG?

既然大模型(LLM)已经很强大了,为什么我们还需要 RAG?这是因为 LLM 也有自己的“薄弱区”。当我们将大模型应用于实际业务场景时会发现,通用基础大模型基本无法满足实际业务需求,主要的原因在于:

1、静态知识的局限性*。*

大多数 LLM 是离线训练的,其知识截止于模型训练时的快照,这种静态的知识构成存在时效性。例如GPT-4 截止于 2023 年,面对 2024 年的信息,它无法给出准确答案,无法回答“发生在模型之后”的信息。

如何解决?

RAG 将大模型与知识库连接,通过实时检索外部文档,实现知识即服务。只需更新知识库即可同步提升模型表现,不需要重新训练。

2、大模型的幻觉***。***

幻觉(Hallucination),LLM 在没有足够上下文或遇到知识盲区时,常会自己编一个看起来合理的答案。这是目前大模型最难控制的风险之一。即使语法通顺、逻辑看似完整,但毫无事实依据。

如何解决?

RAG 检索对应的信息,可以把生成过程锚定在对应文档上,只要被检索到内容才会让模型进行回答。这相当于有真凭实据才会回答,大大降低了编造现象,同时可以引导模型在不知道时说不知道,做一个诚实的 LLM。

3、大模型答案信息源不可追溯。

传统 LLM 生成答案时,用户无法其依据是否真实、是否权威。缺乏透明度和可追溯性。我去质疑 LLM 你怎么知道这个时候,它无法应答。

如何解决?

RAG 保留了原始信息片段的引用路径,可以在回答中清晰展示来源,如:“本答案参考了《xxx》”,这种引用式为生成让 LLM 具备了事实溯源能力。

三、RAG 应用典型工作流程?

一个典型的工作流程包含:输入、索引、检索、生成。

具体步骤如下:

  • 输入: 是指LLM系统需要回答的问题。如果不使用 RAG,问题直接由 LLM 回答。
  • 索引: 使用 RAG 时,会先将相关文档分块,为这些块生成嵌入向量,并将它们索引到向量库中。在进行查询时,查询内容也会以相似的方式进行嵌入。
  • 检索: 通过比较查询内容与索引向量,找到相关的文档。
  • 生成: 将找到的相关文档与原始提示结合作为额外上下文,然后传递给模型进行回应生成,最终形成系统对用户的回答。

四、RAG 的范式转换?

近几年来,RAG(检索增强生成)系统经历了从初级阶段到高级阶段,再到模块化阶段的演变。这一进化过程旨在克服性能、成本和效率方面的挑战。

4.1 朴素 RAG(Naive RAG)

朴素 RAG 也被称为 Naive RAG。朴素 RAG 采用了一个传统过程,包括索引建立、文档检索和内容生成 3 个基本步骤:

  • 索引— 将文档库分割成较短的 Chunk,并通过编码器构建索引;
  • 检索— 根据问题和 chunks 的相似度检索相关文档片段;
  • 生成— 以检索到的上下文为条件,生成问题和回答;

初级 RAG 的局限包括低精确度(检索到的信息不够准确)和低召回率(有时候无法检索到所有相关的信息)。此外,有时候模型可能会接收到过时的信息,这正是 RAG 系统希望首先解决的问题之一。这可能会导致模型产生不基于事实的幻想性回答,从而影响回答的准确性和可靠性。

4.2 进阶 RAG(Advanced RAG)

Naive RAG 在检索质量、响应生成质量以及增强过程中存在多个挑战。Advanced RAG 范式随后被提出,并在数据索引、检索前和检索后都做了额外处理。

进阶 RAG 通过更精细的数据清洗、设计文档结构和添加元数据等方法提升文本一致性、准确性和检索效率。在检索前阶段则可以使用问题的重写、路由和扩充等方式对齐问题和文档块之间的语义差异。在检索后阶段可以通过将检索出来的文档库进行重排序避免“Lost in the Middle”现象发生。或者通过上下文 筛选与压缩的方式缩短窗口长度。

4.3 模块化的 RAG 介绍

随着 RAG 技术的进一步发展和演变,新的技术突破了传统的 Naive RAG 检索 — 生成框架,基于此我们提出模块化 RAG 的概念。在解雇上它更加自由和灵活,引入了更多的具体的功能模块,例如查询搜索引擎、融合多个回答。技术上讲检索与微调、强化学习等技术融合。流程上也对 RAG 模块之间进行设计设计和编排,出现了多种的 RAG 模式。

这种设计让模块化 RAG 不仅包括了朴素 RAG 和高级 RAG 这两种固定模式,还扩展了包括搜索、记忆、融合、路由、预测和任务适配等多种模块,以解决各种问题。随着 RAG 系统构建变得更加灵活,一系列优化技术相继被提出,用于进一步优化 RAG 流程,包括:

  • 混合式搜索探索: 结合了关键词搜索与语义搜索等多种搜索技术,以便检索到既相关又富含上下文的信息,特别适用于处理多样化的查询类型和信息需求。
  • 递归式检索与查询引擎: 通过从小的语义片段开始,逐步检索更大的内容块以丰富上下文的递归过程,有效平衡了检索效率与信息的丰富度。
  • StepBack-prompt 提示技术: 一种特殊的提示方法,能让大语言模型进行概念和原则的抽象化处理,从而引导更加深入的推理过程。当应用于 RAG 框架时,能够帮助模型超越具体事例,进行更广泛的推理。
  • 子查询策略: 采用树状查询或按序查询小块信息的不同策略,适用于多种场景。LlamaIndex 提供的子问题查询引擎允许将大的查询任务拆分成多个小问题,分别利用不同的数据源进行解答。
  • 假设性文档嵌入技术 (HyDE): 通过生成查询的假设性回答并嵌入,来检索与这个假设回答相似的文档,而不是直接使用查询本身,以此来优化检索效果。

五、RAG 的框架组成?

概述 RAG 系统的核心组成部分包含检索、生成和增强三大环节的最新进展。这些组件共同构成了 RAG 的基础,使其能够有效处理各种信息检索和内容生成的任务,进而提升系统的整体性能和应用灵活性。

5.1 检索器(Retriever)

检索器是 RAG 系统中的信息搜集者。它的主要任务是在给定一个问题或提示时,从一个预先构建的知识库(如维基百科、专业数据库或互联网)中检索出与之相关的文档或信息片段。这个知识库可以是结构化的,也可以是非结构化的,它关键在于它保障了丰富的、多样化的信息。

向量索引的构建和查询过程涉及以下几个关键步骤:

1、文本预处理:首先,对数据库中的文档进行预处理,包括分词、去除停用词、词干提取等,以便于后续的向量化处理。

2、向量化:将预处理后的文本转换为数值向量。这通常通过词嵌入(如Word2Vec、GloVe或BERT等预训练的词向量)来实现。每个文档或文档片段都会被表示为一个高维空间中的点。

3、构建索引:使用向量索引算法(如倒排索引、KD树、球树、HNSW树等)将这些向量组织起来,以便快速检索。这些算法能够在高维空间中有效地检索与查询向量最接近的向量。

4、相似度度量:在检索过程中,需要计算查询向量与数据库中各个向量的相似度。常用的相似度度量方法包括余弦相似度、欧几里得距离等。

5、检索:当用户提出查询时,检索器首先将查询文本进行与数据库文档相同的预处理和向量化步骤,然后在索引中查找与查询向量最相似的文档向量。这个过程通常涉及到对索引进行遍历或使用特定的检索算法来快速定位。

6、结果排序:根据相似度得分对检索结果进行排序,选择最相关的文档片段作为生成器的输入。

5.2 生成器(Generator)

生成器是 RAG 系统中的文本创造者。生成器在 RAG 技术中通常可以被视为一个大型的语言模型,尤其是那些基于深度学习的序列到序列(Seq2Seq)模型。这些模型,如 GPT(Generative Pre-trained Transformer)系列或 BERT(Bidirectional Encoder Representations from Transformers)的变体,经过预训练,能够理解和生成自然语言文本。

在 RAG 框架中,生成器的作用是利用检索器提供的相关信息,结合输入的问题,生成连贯、准确的回答。这通常涉及到以下几个方面:

  • 上下文理解:生成器需要理解检索到的信息以及输入问题,以便在生成回答时保持上下文的一致性。
  • 信息整合:生成器需要整合检索到的信息片段,形成一个连贯的文本输出。
  • 语言生成:生成器负责将整合后的信息转化为自然语言,这包括选择合适的词汇、语法结构和表达方式。

大型语言模型如 GPT-3 等,由于其庞大的参数量和广泛的预训练数据,通常能够生成非常流畅和多样化的文本。在 RAG 系统中,这些模型可以被训练来更好地利用检索到的信息,从而提高回答的质量。

5.3 增强方法(Augmenter)

增强方法的核心作用是作为一个中间层,它接收检索器提供的相关信息,并将其与生成器的初步输出结合起来。这个过程通常涉及以下几方面:

1、信息融合:增强方法需要将检索到的多个信息片段融合成一个连贯的上下文。这可能包括对信息片段的排序、合并或过滤,以确保卒中的上下文既全面又准确;

2、上下文增强:在某些情况下,增强方法可能会对检索到的信息进行进一步的处理,比如摘要、扩展或重写,以更好地适应生成器的需要;

3、生成器指导:增强方法还可以为生成器提供指导,告诉它在生成回答时应重点关注哪些信息,或者在哪些方面进行扩展;

增强方法的技术细节|增强方法的技术实现可以有多种形式,包括但不限于:

  • 交互式学习:增强方法可以采用交互式学习的方式,通过与生成器的多次迭代来不断优化上下文信息。例如,生成器的输出可以作为反馈,指导增强方法调整检索到的信息。
  • 多任务学习:在某些情况下,增强方法可能需要同时处理多个任务,比如信息检索和信息摘要。多任务学习可以帮助模型在这些任务之间共享知识,提高整体性能。
  • 网神经网络:对于结构化或半结构化的数据,图神经网络可以用来捕捉信息片段之间的关系,从而更有效地整合信息。

增强方法的技术细节

增强方法的技术实现可以有多种形式,包括但不限于:

  • 注意力机制:在自然语言处理中,注意力机制可以帮助模型集中于输入序列中最重要的部分。在RAG系统中,增强方法可以使用注意力机制来确定哪些检索到的信息片段对于生成回答最为关键。
  • 交互式学习:增强方法可以采用交互式学习的方式,通过与生成器的多次迭代来不断优化上下文信息。例如,生成器的输出可以作为反馈,指导增强方法调整检索到的信息。
  • 多任务学习:在某些情况下,增强方法可能需要同时处理多个任务,比如信息检索和信息摘要。多任务学习可以帮助模型在这些任务之间共享知识,提高整体性能。
  • 网神经网络:对于结构化或半结构化的数据,图神经网络可以用来捕捉信息片段之间的关系,从而更有效地整合信息。

六、如何评估 RAG 的效果?

就像衡量大语言模型(LLM)在不同维度的表现一样,评估对于深入理解和提升 RAG(检索增强生成)模型在各种应用场景下的性能至关重要。传统上,人们通过特定任务的指标,如 F1 分数和准确率(EM),来评价 RAG 系统在下游任务上的表现。例如RaLLe 就是一个评估知识密集型任务中检索增强型大语言模型性能的著名框架。

在 RAG 模型的评估中,我们既关注检索的内容质量,也关注生成的文本质量。为了评估检索的效果,我们采用了推荐系统和信息检索等知识密集领域的评估指标,比如归一化折扣累计增益(NDCG)和命中率。而在生成质量的评估上,可以从相关性、有害内容的筛选(对未标记内容)或准确性(对已标记内容)等不同维度进行考量。整体上,RAG 模型的评估可以采用手动或自动的方法进行。

具体来说,RAG 框架的评估着眼于三个主要质量指标和四大能力。这三个质量指标包括:上下文相关性(即检索到的信息的精确度和相关度)、答案忠实度(即答案对于检索到的上下文的忠实反映)、以及答案相关性(即答案与提出的问题的契合度)。此外,还有四项能力评估 RAG 系统的适应性和效率,包括:对噪声的鲁棒性、负面信息的排除、信息整合能力和面对假设情况的鲁棒性。下面是一个评估 RAG 系统不同方面所用指标的概览:

七、如何优化 RAG?

RAG(Retrieval-Augmented Generation)在实际应用中可能会遇到的问题主要包括

1、文档多样性和处理难度:RAG模型需要处理多种类型的文档,如doc、ppt、excel、pdf等,每种文档的结构和内容特性都不同。特别是ppt和pdf文档,它们可能包含大量的图表和图片,这些非文本信息难以通过简单的文本抽取来整理。

2、文本切分方式:如果没有针对文档内容进行定制化的切分,而是采用固定的长度进行切分,可能会导致每个文本片段的语义、信息不完整,忽略了文本中的标题和其他关键信息,知识库质量下降。

3、垂直领域知识的理解:通用的大模型或句向量模型在处理特定行业的内部知识时存在局限性,它们可能无法准确理解企业内部的专用术语和缩写,从而影响向量化的精准度和模型的输出效果。

4、用户提问的模糊性:用户提出的问题可能不够具体,导致模型难以准确捕捉用户的真实意图,从而无法检索到最相关的文本段落,进而影响答案的准确性。

问题解决思路

对于以上问题,一般可以采取多种方式进行解决,最终应用还是能够较好的满足用户的需求。
1、对文档内容进行重新处理,以更准确地提取和表示信息。针对各种类型的文档,分别进行了很多定制化的措施,用于完整的提取文档内容。

**2、实施语义切分,以保持文本段落的完整性和语义连贯性。对文档内容进行重新处理后,语义切分工作其实就比较好做了。我们现在能够拿到的有每一段文本,每一张图片,每一张表格,文本对应的属性,图片对应的描述。**对于每个文档,实际上元素的组织形式是树状形式。例如一个文档包含多个标题,每个标题又包括多个小标题,每个小标题包括一段文本等等。我们只需要根据元素之间的关系,通过遍历这棵文档树,就能取到各个较为完整的语义段落,以及其对应的标题。

**3、使用 RAG Fusion 技术来增加相关文本块的召回率。RAG Fusion 技术就是,当接收用户query时,让大模型生成5-10个相似的query,然后每个query去匹配5-10个文本块,接着对所有返回的文本块再做个倒序融合排序,如果有需求就再加个精排,最后取Top K个文本块拼接至prompt。**实际使用时候,这个方法的主要好处,是增加了相关文本块的召回率,同时对用户的query自动进行了文本纠错、分解长句等功能。但是还是无法从根本上解决理解用户意图的问题。

4、引入追问机制,通过多轮对话来明确用户的问题。这里是通过 Prompt 就可以实现的功能,只要在 Prompt 中加入“如果无法从背景知识回答用户的问题,则根据背景知识内容,对用户进行追问,问题限制在3个以内”。这个机制并没有什么技术含量,主要依靠大模型的能力。不过大大改善了用户体验,用户在多轮引导中逐步明确了自己的问题,从而能够得到合适的答案。

5、微调 Embedding 句向量模型,以更好地适应垂直领域的知识。这部分主要是为了解决垂直领域特殊词汇,在通用句向量中会权重过大的问题。比如有个通用句向量模型,它在训练中很少见到“ SAAS ”这个词,无论是文本段和用户query,只要提到了这个词,整个句向量都会被带偏。

八、RAG 和微调的区别

除了 RAG,LLMs 主要优化手段还包括了提示工程 (Prompt Engineering)、微调 (Fine-tuning,FT)。他们都有自己独特的特点。根据对外部知识的依赖性和模型调整要求上的不同,各自有适合的场景。

九、RAG 技术的应用领域

1、问答系统(QA Systems)
RAG 技术可以用于构建强大问答系统,这些系统能够回答用户提出的各种问题。通过检索大规模文档集合来提供准确的答案,无需针对每个问题进行特定训练。这种应用使得问答系统能够处理广泛的知识密集型任务,提供及时且准确的信息。

**2、文档生成和自动摘要(Document Generation and Automatic Summarization)**RAG 技术可以自动生成文章段落、文档或自动摘要。它基于检索的知识来填充文本,使得生成的内容更具信息价值。这对于需要快速生成大量内容的场景,如新闻摘要、报告生成等,非常有用。

**3、智能助手和虚拟代理(Intelligent Assistants and Virtual Agents)**RAG技术可以用于构建智能助手或虚拟代理,结合聊天记录回答用户的问题、提供信息和执行任务,无需进行特定任务微调。这使得智能助手能够更好地理解和响应用户的查询,提供更加个性化的服务。

**4、信息检索(Information Retrieval)**RAG 技术可以改进信息检索系统,使其更准确深刻。用户可以提出更具体的查询,不再局限于关键词匹配。这提高了信息的质量和用户满意度。

**5、知识图谱填充(Knowledge Graph Population)**RAG 技术可以用于填充知识图谱中的实体关系,通过检索文档来识别和添加新的知识点。这对于构建和维护大模型知识库非常有价值。

**6、个性化对话系统。**RAG 技术可以结合用户的历史交互数据,生成更加个性化的回答。这在客户服务和个性化推荐系统中尤为重要,能够提供更加贴合用户需求的服务。

**7、教育辅助。**在在线教育平台中,RAG技术可以帮助生成针对特定学习内容的详细解释和示例,提高学习资源的质量和可用性。

**8、医疗咨询。**RAG 技术在医疗领域可以检索最新的医学研究和临床试验结果,为患者提供基于证据的建议,辅助医生进行诊断和治疗决策。

如何学习大模型 AI ?

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

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

2025最新大模型学习路线

明确的学习路线至关重要。它能指引新人起点、规划学习顺序、明确核心知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

对于从来没有接触过AI大模型的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线。

在这里插入图片描述

针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

大模型经典PDF书籍

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路!

在这里插入图片描述

配套大模型项目实战

所有视频教程所涉及的实战项目和项目源码等
在这里插入图片描述

博主介绍+AI项目案例集锦

MoPaaS专注于Al技术能力建设与应用场景开发,与智学优课联合孵化,培养适合未来发展需求的技术性人才和应用型领袖。

在这里插入图片描述

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

为什么要学习大模型?

2025人工智能大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

在这里插入图片描述

适合人群

  • 在校学生:包括专科、本科、硕士和博士研究生。学生应具备扎实的编程基础和一定的数学基础,有志于深入AGI大模型行业,希望开展相关的研究和开发工作。
  • IT行业从业人员:包括在职或失业者,涵盖开发、测试、运维、产品经理等职务。拥有一定的IT从业经验,至少1年以上的编程工作经验,对大模型技术感兴趣或有业务需求,希望通过课程提升自身在IT领域的竞争力。
  • IT管理及技术研究领域人员:包括技术经理、技术负责人、CTO、架构师、研究员等角色。这些人员需要跟随技术发展趋势,主导技术创新,推动大模型技术在企业业务中的应用与改造。
  • 传统AI从业人员:包括算法工程师、机器视觉工程师、深度学习工程师等。这些AI技术人才原先从事机器视觉、自然语言处理、推荐系统等领域工作,现需要快速补充大模型技术能力,获得大模型训练微调的实操技能,以适应新的技术发展趋势。
    在这里插入图片描述

课程精彩瞬间

大模型核心原理与Prompt:掌握大语言模型的核心知识,了解行业应用与趋势;熟练Python编程,提升提示工程技能,为Al应用开发打下坚实基础。

在这里插入图片描述

RAG应用开发工程:掌握RAG应用开发全流程,理解前沿技术,提升商业化分析与优化能力,通过实战项目加深理解与应用。 在这里插入图片描述

Agent应用架构进阶实践:掌握大模型Agent技术的核心原理与实践应用,能够独立完成Agent系统的设计与开发,提升多智能体协同与复杂任务处理的能力,为AI产品的创新与优化提供有力支持。
在这里插入图片描述

模型微调与私有化大模型:掌握大模型微调与私有化部署技能,提升模型优化与部署能力,为大模型项目落地打下坚实基础。 在这里插入图片描述

顶尖师资,深耕AI大模型前沿技术

实战专家亲授,让你少走弯路
在这里插入图片描述

一对一学习规划,职业生涯指导

  • 真实商业项目实训
  • 大厂绿色直通车

人才库优秀学员参与真实商业项目实训

以商业交付标准作为学习标准,具备真实大模型项目实践操作经验可写入简历,支持项目背调

在这里插入图片描述
大厂绿色直通车,冲击行业高薪岗位
在这里插入图片描述

文中涉及到的完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐