RAG技术通过构建外部知识库与LLM的动态交互,解决了大模型幻觉、知识时效性不足等问题。其工作流程包括知识准备、向量化存储、检索和生成回答等步骤,相比微调能提供最新知识、减少幻觉、提高可解释性。该技术在金融风控、医疗诊断、教育辅导等多个领域有广泛应用,被视为LLM的"智能知识外挂"。

一、RAG 产生的背景

ChatGPT、GLM等生成式人工智能在文本生成、文本到图像生成等任务中表现出令人印象深刻的性能,但它们也存在固有局限性:

(1)存在幻觉问题。LLM大模型的底层原理是基于数学概率进行预测,其模型输出本质上是一种概率预测的结果。所以LLM大模型有时候会出现胡言乱语,或者生成一些似是而非的答案,在大模型并不擅长的领域,幻觉问题会更加严重。使用者要区分幻觉问题是非常困难的,除非使用者本身就具备了相应领域的知识。

(2)缺乏对生成结果的可解释性。LLM大模型本身是一个黑盒,这个模型使用了什么数据进行训练,对齐策略是怎么样的,使用者都无从得知。所以对于大模型生成的答案,更加难以追踪溯源。

(3)缺乏对专业领域知识的理解。LLM大模型知识的获取严重依赖训练数据集的广度,但目前市面上大多数的训练数据集都来源于网络公开数据,对于企业内部数据、特定领域或高度专业化的知识,大模型无从学习。因此大模型的表现更像是一个及格的通才,但是在一些专业场景,比如企业内部的业务流,一个及格的通才是无法使用的,需要利用企业的专属数据进行喂养和训练,打造为优秀的专才。

(4)数据的安全性。这是对上面第三点的延伸,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。因此,完全依赖通用大模型自身能力的应用方案,在企业场景下是行不通的。

(5)知识的时效性不足。大模型的内在结构会被固化在其被训练完成的那一刻,但是当你询问大模型一些最新发生的事情,则难以给出答案。

为了克服这些问题,第一种方式是微调,即Fine Tune。但是由于生成模型依赖于内在知识,也就是各类参数的权重,即使做了微调,模型还是无法摆脱幻觉问题。此外在实际场景中,很多新的信息、数据、政策每时每刻都在产生,除非对模型进行高频的微调,否则模型的训练速度永远赶不上外部信息更新的速度,而高频微调的成本就太高了。

在2020 年,Facebook AI Research(FAIR)团队首次提出RAG技术,为LLM大模型提供了一种与外部信息高效互动的解决方案。其主要作用类似于搜索引擎,找到用户提问最相关的知识或者是相关的对话历史,并结合原始提问,创造信息丰富的prompt,指导LLM大模型生成更准确的输出。

RAG 技术在 QA 问题中的案例

一个典型的 RAG 案例如图所示。如果我们向 ChatGPT 询问 OpenAI CEO Sam Atlman 在短短几天内突然解雇随后又被复职的事情。由于受到预训练数据的限制,缺乏对最近事件的知识,ChatGPT 则表示无法回答。RAG 则通过从外部知识库检索最新的文档摘录来解决这一差距。在这个例子中,它获取了一系列与询问相关的新闻文章。这些文章,连同最初的提问,被合并成一个丰富的提示,使 ChatGPT 能够综合出一个有根据的回应。

二、RAG 基础概念

2.1 什么是 RAG

RAG是一种结合了信息检索技术与语言生成模型的人工智能技术。该技术通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型(LLMs),以增强模型处理知识密集型任务的能力,如问答、文本摘要、内容生成等。

2.2 RAG的工作流程

RAG可分为5个基本流程:知识文档的准备、嵌入模型、存入向量数据库、查询检索和生成回答。

2.2.1 知识准备

收集知识文档:需要收集与问答系统相关的各种数据,这些数据可以来自文档、网页、数据库等多种来源。现实场景中,我们面对的知识源可能包括多种格式,如Word文档、TXT文件、CSV数据表、Excel表格,甚至图片和视频。因此需要使用专门的文档加载器(例如PDF提取器)或多模态模型(如OCR技术),将这些丰富的知识源转换为大语言模型可理解的纯文本数据。

数据预处理:对收集到的数据进行清洗,去除噪声、重复项和无关信息,确保数据的质量和准确性。

文档分块:将处理后的文档分割为适合检索的片段(chunks),以便更高效地处理和检索信息。

2.2.2 嵌入与索引

知识向量化:利用预训练的嵌入模型(如BERT和GPT系列)将这些文档片段转换成向量。我们使用的日常语言中充满歧义和对表达词意无用的助词,而向量表示则更加密集、精确,能够捕捉到句子的上下文关系和核心含义。这种转换使得我们能够通过简单计算向量之间的相似度来确定它们的关联程度。

存储向量:将生成的向量存储在向量数据库(如FAISS、Milvus、Pinecone等)中,构建高效的索引结构。

2.2.3 查询检索

查询向量化:使用相同的嵌入模型将用户查询转换成向量。

相似度检索:在向量数据库中检索与查询向量最相似的文档或段落(通常通过计算向量之间的余弦相似度来实现)。

检索结果排序:根据相似度得分对检索到的结果进行排序,选择top-k个片段作为后续生成的输入。

2.2.4 提示增强

组装提示词:将检索到的相关文档与原始查询合并,形成增强的Prompt上下文信息。

增强提示模板:根据任务需求设计提示模板,确保生成模块能够充分利用检索到的信息。

2.2.5 生成回答

输入增强提示:将增强提示模板输入生成模型(如GLM),这些模型在生成自然语言文本方面表现出色。

生成文本:大语言模型根据提示模板生成准确回答,综合考虑检索到的知识和自身的训练知识。

后处理:对生成的回答进行格式调整、语法检查等后处理,确保输出的质量和一致性。

2.3 RAG的技术架构

RAG技术架构包含三个核心模块:首先是多模态知识库,将结构化数据、非结构化文本、图像等信息通过嵌入技术转化为高维向量,存入可高效检索的向量数据库;其次是动态检索模块,基于用户查询生成语义向量,通过余弦相似度等算法在知识库中召回相关度最高的文本片段;最后是融合生成模块,将检索结果与用户 prompt 进行整合,通过 prompt engineering 引导 LLM 生成更准确、有依据的回答。

RAG的“检索、增强、生成”,谁增强了谁,谁生成了答案,主语很重要。是从知识库中检索到的问答对,增强了LLM的提示词(prompt),LLM拿着增强后的Prompt生成了问题答案。

2.4 RAG 和微调应该如何选择?

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

特点对比 检索增强生成(RAG) 微调 (FT)
知识更新 RAG直接更新检索知识库,保持信息最新,模型无需频繁的重新训练,适合动态数据环境。 FT存储静态数据,知识与数据更新需要重新训练。
外部知识 RAG擅长利用外部资源,非常适合文档或其他结构化/非结构化数据库。 虽然FT可以对大语言模型进行微调以对齐预训练学到的外部知识,但对于频繁更改的数据源来说可能不太实用。
数据处理 RAG对数据加工和处理的要求低 FT依赖高质量数据集,有限的数据集可能不会产生显著性能提升。
模型风格 RAG主要关注信息检索,擅长整合外部知识,但可能无法完全定制模型的行为或写作风格。 FT允许根据特定的语气或术语调整大语言模型的行为、写作风格或特定领域的知识。
可解释性 RAG通常可以追溯到特定数据源的答案,从而提供更高等级的可解释性和可溯源性。 FT就像黑匣子,并不总是清楚模型为何会做出这样的反应、,具有相对较低的可解释性。
计算资源 RAG需要高效的检索策略和大型数据库相关技术。另外还需要保持外部数据源集成以及数据更新。 FT需要准备和整理高质量的训练数据集、定义微调目标以及相应的计算资源。
延迟和实时要求 RAG需要进行数据检索,可能会有更高延迟。 经过FT的大语言模型无需检索即可响应,延迟较低。
减少幻觉 RAG本质上不太容易产生幻觉,因为每个回答都建立在检索到的证据上。 FT可以通过将模型基于特定领域的训练数据来减少幻觉。但当面对不熟悉的输入时,它仍然可能产生幻觉。
道德和隐私问题 RAG的道德和隐私问题来源于从外部数据库检索的文本。 FT的道德和隐私问题则因为模型的训练数据存在敏感内容。

表1:检索增强生成与微调的特点对比

RAG 就像给模型一本教科书,用于定制的信息检索,非常适合特定的查询。另一方面,FT 就像一个学生随着时间的推移内化知识,更适合模仿特定的结构、风格或格式。FT 可以通过增强基础模型知识、调整输出和教授复杂指令来提高模型的性能和效率。然而,它不那么擅长整合新知识或快速迭代新的用例。RAG 和 FT,并不是相互排斥的,它们可以是互补的,联合使用可能会产生最佳性能。

RAG 与其他大模型微调技术对比

三、技术进阶与优化

下面介绍的方法均在AI开发框架langchain和LLamaIndex中有具体实现,具体操作方法可参考官方文档。

3.1 数据清洗

高性能RAG系统依赖于准确且清洁的原始知识数据。一方面为了保证数据的准确性,我们需要优化文档读取器和多模态模型。特别是处理如CSV表格等文件时,单纯的文本转换可能会丢失表格原有的结构。因此,我们需引入额外的机制以在文本中恢复表格结构,比如使用分号或其他符号来区分数据。另一方面我们也需要对知识文档做一些基本数据清洗,其中包括:

  • 基本文本清理:规范文本格式,去除特殊字符和不相关信息,去除重复文档或冗余信息。
  • 实体解析:消除实体和术语的歧义以实现一致的引用。例如,将“LLM”、“大语言模型”和“大模型”标准化为通用术语。
  • 文档划分:合理地划分不同主题的文档,不同主题是集中在一处还是分散在多处?如果作为人类都不能轻松地判断出需要查阅哪个文档才能来回答常见的提问,那么检索系统也无法做到。
  • 数据增强:使用同义词、释义甚至其他语言的翻译来增加语料库的多样性。
  • 用户反馈循环:基于现实世界用户的反馈不断更新数据库,标记它们的真实性。
  • 时间敏感数据:对于经常更新的主题,实施一种机制来使过时的文档失效或更新。

3.2 分块和向量化技术

在处理自然语言处理(NLP)任务时,特别是在使用transformer模型进行文本分析和搜索时,分块和向量化是两个关键步骤。

  • 向量索引和查询向量:首先,需要将文档内容转换成向量形式,这通常通过使用预训练的transformer模型来实现。这些向量可以被存储在一个索引中,以便快速检索与查询向量最接近的语义。
  • 分块技术:Transformer 模型的输入序列长度是固定的。即便输入上下文窗口较大,单个句子或几个句子的向量通常比覆盖几页文本的平均向量更能准确反映它们的语义意义(这也取决于具体模型,但总体而言是这样)。因此,我们需要将数据进行分块处理,把原始文档分割成一定大小的部分,同时保持其原有意义(如将文本分割成句子或段落,而不是将一个句子切成两半)。
  • NodeParser:在LlamaIndex中,通过 NodeParser 类及其一些高级选项,允许用户定义文本的分割方式,包括自定义文本分割器、处理元数据以及定义节点或块之间的关系。
  • 数据块大小:块的大小取决于所使用的嵌入模型以及其在 Token 上的容量。标准的 Transformer Encoder 模型(例如基于 BERT 的句子转换器)最多处理 512 个 Token,而像 OpenAI 的 ada-002 则能处理更长的序列,达到 8191 个 Token。这里需要权衡的是,为大语言模型提供足够的上下文以便于推理,与保持文本嵌入具体到足以高效执行搜索之间的平衡。
  • 嵌入模型的选择:为了生成块的嵌入,可以选择专门的搜索优化模型,如bge-large或E5系列。这些模型可能在特定任务上进行了优化,以提供更好的搜索结果。
  • MTEB排行榜:推荐参考Hugging Face推出的嵌入模型排行榜MTEB(https://huggingface.co/spaces/mteb/leaderboard),这个排行榜提供了多种模型的性能比较。

在实际应用中,选择合适的分块策略和嵌入模型对于提高搜索的准确性和效率至关重要。此外,还需要考虑如何将分块后的向量与查询向量进行比较,以找到最相关的结果。这通常涉及到距离度量(如余弦相似度)和可能的后处理步骤,以优化搜索结果的相关性。

3.3 搜索索引

在这个架构及后续内容中,为了简化描述,我们不考虑编码器部分,直接把查询内容送入索引。显然,查询内容会首先进行向量化。类似地,尽管索引是根据向量而不是具体的块来进行检索的,但最终我们还是以块的形式展现结果,因为获取这些块相对简单。

3.3.1 向量存储索引

RAG 流水线的核心部分是搜索索引,用于存储我们在前一步骤中得到的向量化内容。最基本的实现方法是使用扁平索引(Flat Index) —— 直接计算查询向量与所有数据块向量之间的距离。

更高效的搜索索引,专为处理超过 10000 个元素的大规模检索而优化,通常采用向量索引,如 faiss、nmslib 或 annoy,它们采用近似最近邻算法,比如聚类、树形结构或 HNSW 算法。

还有一些托管解决方案,如 OpenSearch 或 ElasticSearch,以及像 Pinecone、Weaviate 或 Chroma 这样的向量数据库,它们在后台处理第 1 步中描述的数据摄取流程。

根据选择的索引类型、数据和搜索需求,还可以存储元数据,并利用元数据过滤功能来搜索特定日期或来源的信息。

LlamaIndex 支持多种向量存储索引,但也支持其他更简单的索引实现,如列表索引、树索引和关键词表索引——我们将在融合检索部分进一步讨论这些实现方式。

3.3.2 分层索引

如果需要从大量文档中检索信息,你需要能够高效地搜索这些文档,找到相关信息,并将其整合成一个包含参考来源的统一答案。对于大型数据库,一个有效的方法是创建两个索引:一个包含摘要,另一个包含所有的文档块,并通过两步搜索,先利用摘要筛选相关文档,再在这些相关文档中进行具体搜索。

3.3.3 多种切分方式索引

向量检索中chunks的大小以及部分符号会对相似度结果产生较大影响(这种影响在chunks内容相似时尤其明显)。当chunks过小时,没有上下文信息,可能导致宽泛性query 匹配不准确,但能够匹配精准的问题;当chunks过大时,chunk涵盖的信息多,将导致精确的问题匹配时存在噪音,而忽略了chunks中的准确答案,因此为了增加稳健性,采用机器学习中的 ensemble方式,可以同时构建多个chunks 数据集,每个数据集的chunks大小不同(一般依据文档的内容数量选择2~3个切分方式即可),采用并行的方式进行同时匹配。并进行集中排序,选择 top_k 个文本块作为增强内容。

这种方式能够显著提升检索的准确率和鲁棒性,但是也会消耗存储资源和匹配时间,更适合文档数量级较小的情况下,当文档量级非常大时,将大大增加资源的消耗。

3.4 查询转换

查询转换是利用LLM(大语言模型)作为推理引擎,对用户输入进行调整,以提升检索效果的技术,实现这一目标有多种方法。

3.4.1 结合历史对话的重新表述

在向量空间中,对人类来说看似相同的两个问题其向量大小并不一定相似,我们可以直接利用LLM 重新表述问题来进行尝试。此外,在进行多轮对话时,用户提问中的某个词可能会指代上文中的部分信息,因此可以将历史信息和用户提问一并交给LLM重新表述,具体可参考“聊天引擎”部分。

3.4.2 假设性问题和 HyDE

一个策略是让大语言模型为每个数据块生成一个问题,并将这些问题转换为向量。在运行时,对这些问题向量的索引进行查询搜索(将索引中的数据块向量替换为问题向量),然后在检索后将原始文本块作为上下文发送给大语言模型,以获取答案。 这种方法由于查询和假设性问题之间的语义相似性更高,相较于实际数据块,可以提升搜索质量。

还有一种反向逻辑的方法叫做 HyDE —— 让大语言模型根据查询生成一个假设性回应,然后使用其向量与查询向量共同提高搜索质量。

3.4.3 回溯提示技术(Step Back Prompting)

通过大语言模型生成更通用的查询,从而检索出更广泛或更高层次的上下文,有助于为原始查询的答案提供基础。同时,也会对原始查询进行检索,并在最终答案生成步骤中将两种上下文一起输入大语言模型。LangChain 有一个参考实现https://github.com/langchain-ai/langchain/blob/master/cookbook/stepback-qa.ipynb。

3.4.4 多查询检索/多路召回(Multi Query Retrieval)

如果查询内容复杂,大语言模型可以将其分解为几个子查询。例如,如果问:

“在 Github 上,Langchain 和 LlamaIndex 哪个框架星星更多?” 

不太可能在语料库的某些文本中直接找到答案,因此把这个问题分解成两个更具体、更简单的子查询是合理的:

“Langchain 在 Github 上有多少星?”

“LlamaIndex 在 Github 上有多少星?”

这些子查询将并行执行,然后将检索到的上下文合并成一个整体,供大语言模型综合出最初查询的终极答案。Langchain 作为多查询检索器和 LlamaIndex 作为子问题查询引擎都实现了这一功能。

3.4.5 查询重写

利用大语言模型重新构造初始查询,以提高检索效果。LangChain 和 LlamaIndex 都有各自的实现方式,虽然略有不同,但我认为 LlamaIndex 的解决方案在这方面更为强大。https://llamahub.ai/l/llamapacks-fusionretriever-query_rewrite。

3.5 高级检索策略

3.5.1 上下文压缩

我们提到过当文档文本块过大时,可能包含太多不相关的信息,传递这样的整个文档可能导致更昂贵的LLM调用和更差的响应。上下文压缩的思想就是通过LLM的帮助根据上下文对单个文档内容进行压缩,或者对返回结果进行一定程度的过滤仅返回相关信息。

3.5.2 句子窗口检索

在这个方法中,文档的每个句子都单独进行嵌入,这提高了查询到上下文的余弦距离搜索的准确度。 为了在检索到最相关的单个句子之后更好地进行推理,我们会在检索到的句子前后扩展 k 个句子作为上下文窗口,然后将这个扩展的上下文发送给大语言模型。

图中绿色部分表示搜索索引时找到的句子嵌入,而整个黑色和绿色的段落一起被送给大语言模型,用于在处理提供的查询时扩展其上下文。

3.5.3 父文档检索器

这里的思路与句子窗口检索器类似 ,文档被划分为较小的子块,这些子块都与更大的父块相关联。在检索过程中,首先获取较小的数据块,如果在检索到的前 k 个数据块中,超过 n 个数据块与同一父节点 (更大的数据块)相关联,我们会用这个父节点来替换提供给大语言模型的上下文。这个过程类似于自动合并几个检索到的小数据块为一个更大的父数据块,因此得名。值得注意的是,搜索仅在子节点的索引内进行。要深入了解,可以查看 LlamaIndex 关于递归检索器和节点引用的教程。

3.5.4 自动合并

是在父文档搜索上更进一步的复杂解决方案。同样地,我们先对文档进行结构切割,比如将文档按三层树状结构进行切割,顶层节点的块大小为1024,中间层的块大小为512,底层的叶子节点的块大小为128。而在检索时只拿叶子节点和问题进行匹配,当某个父节点下的多数叶子节点都与问题匹配上则将该父节点作为结果返回。

3.5.5 多向量检索

同样会给一个知识文档转化成多个向量存入数据库,不同的是,这些向量不仅包括文档在不同大小下的分块,还可以包括该文档的摘要,用户可能提出的问题等有助于检索的信息。在使用多向量查询的情况下,每个向量可能代表了文档的不同方面,使得系统能够更全面地考虑文档内容,并在回答复杂或多方面的查询时提供更精确的结果。例如,如果查询与文档的某个具体部分或摘要更相关,那么相应的向量就可以帮助提高这部分内容的检索排名。

3.5.6 Self-RAG

在业务复杂或问题复杂的场景下,可以考虑引入Agent或使用Self-RAG架构。Self-RAG是一种引入反思机制的RAG,流程如下:

  • 从知识库中检索出结果后,评估其与用户提问的相关性。
  • 如果不相关,则改写查询并重复RAG流程,直到相关度评分达到要求。

实现Self-RAG需要以下两个组件:

  • 基于Graph的任务编排系统。
  • 在Graph内执行的必要算子。例如,在Self-RAG中,评分算子至关重要。可以通过训练一个打分模型来针对检索结果评分,或者采用LLM(Large Language Model)进行评分,以简化系统开发并减少对各类环节的依赖。

Self-RAG是相对初级的Agentic RAG,实践证明,Self-RAG对较复杂的多跳问答和多步推理可以明显提升性能。

3.5.7 Adaptive-RAG架构

可以根据用户提问的不同意图采用对应的策略:

  • 开放域问答:直接通过 LLM 产生答案而无需依赖 RAG 检索。
  • 多跳问答:首先将多跳查询分解为更简单的单跳查询,重复访问 LLM 和 RAG 检索器来解决这些子查询,并合并它们的答案以形成完整答案。
  • 自适应检索:适用于需要多步逻辑推理的复杂问题。复杂的问答往往需要从多个数据源综合信息并进行多步推理。自适应检索通过迭代地访问 RAG 检索器和 LLM,逐步构建起解决问题所需的信息链。

如下图所示,Adaptive-RAG 的工作流程与 Self-RAG 类似,只是在前面增加了一个查询分类器,就提供了更多种对话的策略选择。

3.5.8 融合检索(混合搜索)

融合检索结合了不同的搜索技术,以提高从数据库或知识库中检索信息的准确性和效率。通常,融合检索方法利用传统的基于关键词的搜索(稀疏检索)和语义搜索(密集检索),以充分利用这两种方法的优势。

  • 语义或向量检索:将查询和知识库中的内容转化为向量,然后通过相似度度量(如余弦相似度)找到最相关的片段。
  • 稀疏检索:利用倒排索引或基于关键词的检索方法(如tf-idf 或BM25)从大型文本库中挑选相关文档。

我们可以结合稀疏和密集检索得出最终结果。向量数据库通常允许设定两者对最终结果评分的权重比例,如0.6表示40%的得分来自稀疏检索,60%来自密集检索。

在 LangChain 中,融合检索通过 Ensemble Retriever 类实现,它结合了定义的多个检索器,如基于 faiss 的向量索引和基于 BM25 的检索器,并使用 RRF 算法进行结果的重新排名。LlamaIndex 中的实现方式与此相似。

3.6 聊天引擎

构建一个可以在单个查询中多次运行RAG系统的一个重要特性是聊天逻辑,需要考虑对话上下文,就像在 LLM 出现之前的传统聊天机器人一样。这对于处理后续问题、指代或与先前对话上下文相关的用户命令至关重要。这一问题通过结合用户查询和聊天上下文的查询压缩技术得以解决。常见的上下文压缩方法有以下几种:

  • 流行且相对简单的 ContextChatEngine,它首先检索与用户查询相关的上下文,然后将其连同聊天历史记录从内存缓冲区发送给大语言模型,使其在生成下一个答案时能够参考之前的上下文。
  • 更复杂的 CondensePlusContextMode,在每次交互中,将聊天历史和最后一条消息压缩成一个新查询,然后将该查询发送到索引,检索到的上下文连同原始用户消息一起传递给大语言模型,以生成答案。

值得一提的是,LlamaIndex 还支持基于 OpenAI 智能体的聊天引擎,提供了更灵活的聊天模式,而 Langchain 也支持 OpenAI 的功能性 API。

3.7 Rerank和过滤

在完成语义搜索后,我们能够检索到语义上最相似的文档,但不知你是否注意到一个关键问题:语义最相似是否总代表最相关?答案是不一定。例如,当用户查询“最新上映的科幻电影推荐”时,可能得到的结果是“科幻电影的历史演变”,虽然从语义上这与科幻电影相关,但并未直接回应用户关于最新电影的查询。

重排模型可以帮助我们缓解这个问题,重排模型通过对初始检索结果进行更深入的相关性评估和排序,确保最终展示给用户的结果更加符合其查询意图。这一过程通常由深度学习模型实现,如Cohere模型。这些模型会考虑更多的特征,如查询意图、词汇的多重语义、用户的历史行为和上下文信息等。

举个例子,对于查询“最新上映的科幻电影推荐”,在首次检索阶段,系统可能基于关键词返回包括科幻电影的历史文章、科幻小说介绍、最新电影的新闻等结果。然后,在重排阶段,模型会对这些结果进行深入分析,并将最相关、最符合用户查询意图的结果(如最新上映的科幻电影列表、评论或推荐)排在前面,同时将那些关于科幻电影历史或不太相关的内容排在后面。这样,重排模型就能有效提升检索结果的相关性和准确性,更好地满足用户的需求。在实践中,使用RAG构建系统时都应考虑尝试重排方法,以评估其是否能够提高系统性能。

LlamaIndex提供多种后处理程序,以下是一些常见的方法:

  • 根据相似度评分过滤:使用SimilarityPostprocessor可以移除相似度低于阈值的节点。通过设置similarity_cutoff参数来过滤掉不相关的节点,提高检索结果的准确性。
  • 根据关键词过滤:KeywordNodePostprocessor用于确保某些关键词被包含或排除。通过设置required_keywords和exclude_keywords参数,可以精确控制检索结果的内容。
  • 根据元数据过滤:可以使用MetadataReplacementPostProcessor将节点内容替换为节点元数据中的某个字段,如果该字段不存在于元数据中,则节点文本保持不变。该处理器最常用于与SentenceWindowNodeParser结合使用。
  • 使用transformer 交叉编码器重新排序:SentenceTransformerRerank使用 sentence - transformer 包中的交叉编码器对节点进行重排序,并返回前 N 个节点。
  • 基于元数据内聚重新排序:
  • 按日期排序:FixedRecencyPostprocessor可以返回按日期排序的前 K 个节点,假设每个节点的元数据中有一个日期字段。
  • 按日期排序并移除相似旧节点:EmbeddingRecencyPostprocessor在按日期排序后,通过测量嵌入相似度移除过于相似的旧节点,返回前 K 个节点。
  • 时间加权重排序:TimeWeightedPostprocessor返回前 K 个节点,并对每个节点应用时间加权重排序。每次检索节点时,记录检索时间,这会偏向于尚未在查询中返回的信息。

Rerank和过滤是将检索到的上下文提供给LLM以获取最终答案之前的最后一步,确保了提供给模型的信息是最相关和最有用的。

通过这一过程,可以显著提高检索系统的性能,确保用户或系统能够得到最准确和最有价值的信息。

3.8 提示词

大型语言模型的解码器部分通常基于给定输入来预测下一个词。这意味着设计提示词或问题的方式将直接影响模型预测下一个词的概率。这也给了我们一些启示:通过改变提示词的形式,可以有效地影响模型对不同类型问题的接受程度和回答方式,比如修改提示语,让LLM知道它在做什么工作,是十分有帮助的。为了减少模型产生主观回答和幻觉的概率,一般情况下,RAG系统中的提示词中应明确指出回答仅基于搜索结果,不要添加任何其他信息。例如,可以设置提示词如:“你是一名智能客服。你的目标是提供准确的信息,并尽可能帮助提问者解决问题。你应保持友善,但不要过于啰嗦。请根据提供的上下文信息,在不考虑已有知识的情况下,回答相关查询。”当然你也可以根据场景需要,也可以适当让模型的回答融入一些主观性或其对知识的理解。此外,使用少量样本(few-shot)的方法,将想要的问答例子加入提示词中,指导LLM如何利用检索到的知识,也是提升LLM生成内容质量的有效方法。这种方法不仅使模型的回答更加精准,也提高了其在特定情境下的实用性。

3.9 Query路由

Query路由是 LLM 驱动的决策步骤,在给定用户查询的情况下,决定接下来做什么。这些选项通常是进行摘要、对某些数据索引执行搜索或尝试多种不同的路由,然后将其输出综合成单一答案。

Query路由还可以用于选择索引,或者更广泛的数据存储,将用户查询发送到何处,例如,经典的向量存储、图数据库或关系数据库。对于多文档存储来说,一个常见的情况是一个摘要索引和一个文档块向量索引。

定义Query路由包括设置它可以做出的选择。路由选项的选择是通过 LLM 调用来执行,它以预定义的格式返回结果,用于将查询路由到指定索引。

在涉及智能体行为时,还会将查询路由至子链甚至其他智能体,如下面多文档智能体方案所示。LlamaIndex 和 LangChain 都提供了Query路由的支持。

3.10 RAG中的智能体

智能体(由 Langchain 和 LlamaIndex 支持)自大语言模型 API 首次发布以来就已经存在。其核心思想是为具备推理能力的大语言模型提供一套工具和待完成的任务。这些工具可能包括确定性函数(如代码函数或外部 API)或其他智能体,正是这种大语言模型链接的理念促成了 LangChain 的命名。

智能体本身是一个庞大的领域,在 RAG 概览中无法深入探讨,所以我将直接介绍基于智能体的多文档检索案例,并简要介绍 OpenAI 助理,这是 OpenAI 开发者大会上作为 GPTs 提出的相对新颖的概念,在下面描述的 RAG 系统中发挥作用。

OpenAI 助理实现了许多围绕大语言模型所需的工具,这些工具之前是开源的,包括聊天历史、知识存储、文档上传界面,以及可能最重要的,功能调用 API。这些 API 能将自然语言转换为对外部工具或数据库查询的调用。

LlamaIndex 中有一个 OpenAIAgent 类,将这些高级逻辑与 ChatEngine 和 QueryEngine 类结合,提供基于知识和上下文感知的聊天以及在一次对话轮次中调用多个 OpenAI 功能的能力,这真正带来了智能的代理行为。

让我们来看看多文档智能体方案,这是一个复杂的设置,涉及在每个文档上初始化一个智能体(OpenAIAgent),负责文档摘要和经典问答机制,以及一个负责将查询路由至文档智能体并合成最终答案的顶级智能体。

每个文档智能体拥有两种工具:向量存储索引和摘要索引,并根据路由的查询决定使用哪一个。 对于顶级智能体而言,所有文档智能体都是其工具。

这个方案展示了一个高级 RAG 架构,涉及每个参与智能体做出的众多路由决策。这种方法的优势在于能够比较不同文档及其摘要中描述的不同解决方案或实体,并结合经典的单文档摘要和问答机制。这基本涵盖了与文档集合互动的最常见聊天用例。

这种复杂的方案可能存在的缺点是,由于需要与智能体内的大语言模型(大语言模型)进行多次迭代,其速度可能较慢。值得注意的是,大语言模型的调用通常是 RAG 流水线中最耗时的操作,而搜索设计上是优化了速度的。因此,对于大型多文档存储,建议考虑对这个方案进行简化,使其更具可扩展性。

3.11 响应合成器

响应合成器是任何 RAG 流水线的最后一步,基于之前检索到的所有上下文和初始用户查询生成答案。 最简单的方法是将所有检索到的上下文(超过一定相关性阈值)与查询一起一次性输入大语言模型。 然而,还有其他更复杂的选项,涉及多次调用大语言模型来精炼检索到的上下文并生成更优答案。

响应合成的主要方法包括:

  • 通过将检索到的上下文分块发送给大语言模型来迭代精炼答案。
  • 摘要化检索到的上下文以适应提示。
  • 基于不同上下文块生成多个答案,然后将它们连接或摘要化。

四、编码器和大语言模型的微调

涉及对 RAG 流水线中的两个深度学习模型进行微调——一是负责嵌入质量和上下文检索质量的 Transformer Encoder,二是负责充分利用提供的上下文以回答用户查询的LLM。幸运的是,后者擅长少样本(甚至是零样本)学习。

现在的一个重要优势是,可以利用像 GPT-4 这样的高端大语言模型生成高质量的合成数据集。

但要注意的是,使用专业研究团队在精心收集、清洗和验证的大型数据集上训练的开源模型,并用小型合成数据集进行快速调整,可能会在总体上限制模型的能力。

4.1 编码器微调

曾对编码器微调方法持有一定怀疑,因为最新的为搜索优化的 Transformer Encoder已经相当高效。然而,在 LlamaIndex 的笔记本环境中,测试了 bge-large-en-v1.5(写作时位于 MTEB 排行榜前四)的微调效果,发现它带来了 2% 的检索质量提升。尽管提升不是很显著,但了解这个选项仍然有价值,特别是在为特定领域数据集构建 RAG 时。

4.2 排名器微调

另一个常见选择是使用交叉编码器重新排列检索结果,特别是当对基础编码器的信任度不足时。这个过程包括将查询和每个前 k 个检索到的文本块传递给交叉编码器,并用 SEP 令牌分隔,然后微调对相关块输出 1、不相关块输出 0。可以在这里(https://docs.llamaindex.ai/en/stable/examples/finetuning/cross_encoder_finetuning/cross_encoder_finetuning/)找到一个很好的微调过程示例。

4.3 大语言模型微调

最近 OpenAI 开始提供大语言模型微调 API,LlamaIndex 也有关于在 RAG 设置中微调 GPT-3.5-turbo 的教程,旨在“提炼”GPT-4 的部分知识。这里的想法是获取一个文档,用 GPT-3.5-turbo 生成一些问题,然后使用 GPT-4 根据文档内容生成这些问题的答案(构建一个由 GPT-4 驱动的 RAG 流水线),接着在这个问题-答案对数据集上微调 GPT-3.5-turbo。用于 RAG 流水线评估的 ragas 框架显示了 5% 的忠实度指标提升,意味着微调后的 GPT-3.5-turbo 模型比原始模型更好地利用提供的上下文生成答案。

一种更复杂的方法在论文《RA-DIT: Retrieval Augmented Dual Instruction Tuning》中展示,提出了一种同时调整大语言模型和检索器的技术,基于查询、上下文和答案的三元组。这种技术用于通过 API 微调 OpenAI 大语言模型,也用于微调开源 Llama2 模型(在原论文中),在知识密集型任务指标上提升了约 5%(与搭载 RAG 的 Llama2 65B 相比),在常识推理任务上也有几个百分点的提升。

五、RAG的性能评估

RAG 系统的性能评估通常涉及几个框架,它们的共同理念是设定几个独立指标,如整体答案相关性、答案基础性、忠实度和检索到的上下文相关性。如前文提到的 Ragas 使用真实性和答案相关性作为生成答案的质量指标,以及用于 RAG 方案检索部分的传统上下文精确度和召回率。

在 Andrew NG 最近发布的课程《构建和评估高级 RAG》中,LlamaIndex 和评估框架 Truelens 提出了 RAG 三元组:

  • 检索到的上下文与查询的相关性
  • 基于性(大语言模型答案被提供的上下文所支持的程度)
  • 答案与查询的相关性。

LangChain 有一个较为高级的评估框架 LangSmith,可以实施自定义评估器,并监控 RAG 流水线内部的跟踪,以增强系统的透明度。 LlamaIndex 可以使用 rag_evaluator llama pack 这个工具,它提供了一个快速评估你的流水线的方法,适用于公共数据集。

六、技术挑战与解决方案

RAG 系统的主要挑战除了答案的相关性和可信度之外,还有就是速度。然而,还有很多其他事情需要考虑,比如基于网络搜索的 RAG,与Agent架构的深度融合,以及关于 LLM 长期记忆的一些方式方法。

6.1 数据隐私保护

在 RAG 技术的实际应用场景里,数据隐私保护的重要性不言而喻。随着数据量呈爆发式增长,应用场景也变得日益复杂多样,如何确保用户数据的安全与隐私,成为了 RAG 系统必须直面的严峻挑战。

在数据收集阶段,数据来源广泛且繁杂,这无疑大大增加了隐私泄露的风险。以智能客服系统为例,它需要收集用户的咨询记录、个人信息等各类数据。一旦这些数据被不当收集或恶意使用,用户的隐私便会面临泄露的危机。在数据存储环节,大规模的数据存储需要高效的存储系统支持,但这些系统往往容易成为黑客攻击的目标。一旦存储系统被攻破,用户的数据将毫无保留地暴露在危险之中。而在数据使用阶段,RAG 系统为了生成有价值的信息,需要对数据进行分析和处理,在此过程中,如何防止数据被滥用同样是亟待解决的问题。

为有效应对这些难题,RAG 系统采用了多种先进的技术手段。同态加密技术便是其中的佼佼者,它允许在密文上直接进行计算,而无需解密数据,从而确保了数据在计算过程中的安全性。比如,在进行数据分析时,可对加密后的数据进行统计计算,得到的结果依然是加密形式,只有获得授权的用户才能解密查看。联邦学习技术也发挥着重要作用,它能够在不交换原始数据的前提下,实现多个参与方之间的模型训练。在医疗领域,不同医院可借助联邦学习技术,在不共享患者原始病历数据的情况下,共同训练疾病诊断模型。这样一来,既保护了患者的隐私,又实现了知识的共享与模型的优化。

6.2 跨模态检索优化

跨模态检索作为 RAG 技术的关键环节,致力于实现不同模态数据之间的关联与检索,如文本与图像、音频与视频等。然而,它面临着模态差异大、语义对齐困难等棘手挑战。

不同模态的数据有着截然不同的特征表示和语义空间,这使得它们之间的匹配与检索变得极为复杂。文本数据以字符序列的形式呈现,而图像数据则以像素矩阵的方式存在,如何将这两种差异巨大的数据映射到统一的语义空间,成为跨模态检索的核心难题。语义对齐同样困难重重,由于不同模态数据的语义表达存在显著差异,准确找到它们之间的对应关系并非易事。例如,一张描绘 “美丽的日落” 的图片,要精确地与相应的文本描述在语义上对齐,充满了挑战。

为攻克这些难关,研究人员提出了众多创新方法。多模态特征融合技术通过将不同模态的数据特征有机融合,生成统一的特征表示,有效提高了检索的准确性。比如,将文本的词向量特征和图像的视觉特征相结合,形成综合特征向量,用于跨模态检索。基于深度学习的跨模态检索模型,如基于 Transformer 的模型,凭借强大的学习能力,能够自动学习不同模态数据之间的语义关联,并借助注意力机制等技术,实现更为精准的跨模态匹配。

6.3 长文本处理能力

在实际应用中,RAG 技术常常需要处理长文本。长文本虽然蕴含着丰富的信息,但也给模型带来了诸多挑战。

大模型通常存在固定的上下文窗口大小限制,这就意味着模型能够同时处理的文本长度有限。当文本长度超出限制时,模型难以保持上下文的一致性和连贯性,进而导致信息丢失或理解错误。以处理长篇学术论文为例,若模型的上下文窗口较小,便无法全面理解论文中的观点和论证逻辑。长距离依赖问题也是长文本处理中的一大难点,在长文本中,重要信息可能分散在各个位置,模型需要准确捕捉这些长距离的依赖关系,才能正确理解文本含义。然而,传统的自注意力机制在处理长文本时,计算复杂度和内存需求会随着文本长度的增加呈平方级增长,这使得模型处理长文本的效率极为低下。

为提升长文本处理能力,研究人员积极探索,提出了一系列切实可行的解决方案。分块处理方法将长文本分割成多个小块分别进行处理,之后再将处理结果合并。例如,把一篇长篇小说按章节进行分块处理,最后整合各章节的分析结果。滑动窗口机制则通过使用滑动窗口逐步处理文本,将当前窗口内容与前一个窗口内容相结合,以此保持上下文的连贯性。此外,改进的上下文机制,如 Transformer-XL 和 Reformer 等模型,通过引入相对位置编码和记忆机制,有效扩展了上下文长度,能够更好地处理长距离依赖问题。

七、技术发展趋势

RAG 技术作为人工智能领域的关键力量,正处于快速发展的轨道上。随着技术的不断进步,其核心技术持续演进,行业应用不断创新,生态工具链也在逐步完善。这些发展趋势不仅展现了 RAG 技术的强大活力,更为未来的发展描绘了一幅宏伟蓝图。

7.1 核心技术演进

伴随人工智能技术的持续突破,RAG 的核心技术正经历着深刻的变革。在知识检索方面,基于 Transformer 架构的检索模型将迎来进一步优化。研究人员通过改进注意力机制和语义理解能力,使其能够从海量知识中更精准地筛选出与用户问题相关的信息。目前,研究人员正在探索如何借助 Transformer 的多模态感知能力,实现对文本、图像、音频等多种类型知识的统一检索,以满足用户在复杂场景下多样化的信息需求。想象一下,未来用户只需提出一个问题,系统就能整合多种模态的知识,给出全面且精准的回答,这将极大地提升用户体验。

在生成模型方面,大模型的性能和泛化能力将不断提升。通过引入更丰富的训练数据和更先进的训练算法,大模型能够更深入地理解和处理各种自然语言任务。同时,新型的生成模型结构也在紧锣密鼓地研究和开发中。这些模型有望在保持高效生成的同时,进一步提高生成内容的质量和准确性,有效减少 “幻觉” 现象的发生。例如,未来的生成模型或许能够像人类专家一样,针对特定领域的问题,生成逻辑严谨、内容准确的回答,为用户提供更可靠的帮助。

7.2 生态工具链完善

RAG 生态工具链正朝着更加完善的方向发展,为开发者提供更加便捷、高效的开发和部署环境。

在数据处理方面,专门针对 RAG 的数据清洗、标注和管理工具将不断涌现。这些工具具备自动化的数据处理能力,能够大幅减少人工干预,提高数据处理的效率和准确性。例如,开发者可以使用这些工具快速清理和标注大量的文本数据,为构建高质量的知识库节省大量时间和精力。

在模型训练和优化方面,将有更多的开源框架和工具可供选择。这些框架和工具支持分布式训练、模型压缩等功能,能够有效降低模型训练的成本和难度。同时,可视化的模型训练和调试工具也将得到进一步发展,帮助开发者更直观地理解和优化模型的性能。开发者可以通过这些可视化工具,实时观察模型训练过程中的各项指标变化,及时调整模型参数,提高模型的训练效果。

在应用部署方面,更简单、易用的部署工具将应运而生,使 RAG 系统能够快速部署到各种云平台和本地服务器上。这些工具提供自动化的部署流程,大大减少了部署过程中的错误和风险,提高了部署的效率和可靠性。这意味着开发者能够更快速地将 RAG 应用推向市场,让更多用户受益于这项技术。

RAG 的生态系统概览

八、行业应用创新

RAG 技术作为当下人工智能领域的关键创新点,正深度融入各个行业,重塑业务流程,提升服务质量,创造巨大价值。接下来,让我们一同深入探索 RAG 技术在不同行业的精彩应用。

8.1 金融风控系统:筑牢金融安全防线

金融风控是金融行业的核心屏障,关乎金融机构的稳健运营和金融市场的稳定。RAG 技术在金融风控系统中的应用,为提升风险识别和预警能力注入了新动力。

在信用评估与贷款审批环节,传统评估方式主要依赖客户的信用报告和财务数据,存在一定局限性,难以全面评估客户的信用状况和还款能力。而 RAG 技术则如同 “火眼金睛”,能够整合多源数据,包括客户的交易行为、消费习惯、社交网络信息等。在海量金融知识和历史数据中检索相关信息,对客户进行更全面、深入的信用评估。比如在评估小微企业信用时,RAG 系统会检索企业所在行业的发展趋势、上下游企业交易情况以及企业主个人信用记录等信息,综合判断企业的还款能力和信用风险,为贷款审批提供更精准的决策依据。

在反欺诈与风险监控领域,RAG 技术时刻保持警惕,实时监测金融交易中的异常行为。它通过检索历史欺诈案例和风险模式,与当前交易进行比对分析,一旦发现潜在欺诈风险,便迅速发出预警。例如,当客户交易行为与以往习惯差异明显,或交易金额、时间等超出正常范围时,RAG 系统会快速检索相关风险信息,判断交易是否存在欺诈嫌疑,并及时通知金融机构采取暂停交易、核实身份等措施,有效降低欺诈损失。

在资本市场风险预测方面,RAG 系统能敏锐捕捉宏观经济数据、市场趋势、行业动态等信息,通过检索金融知识和历史数据,预测资本市场风险变化。当市场出现重大政策调整或经济形势变化时,它迅速检索相关研究报告和历史案例,分析这些因素对不同资产类别的影响,为金融机构投资决策提供风险预警和参考建议。

RAG 技术在金融风控领域优势显著,帮助金融机构更精准地识别风险、及时预警潜在风险,提升金融风控的效率和精度,为金融市场的稳定运行筑牢坚实防线。

8.2 智能客服系统:开启金融服务新体验

在金融行业,客户服务质量直接影响着客户的忠诚度和业务转化率。以某头部银行为例,每天海量的客户咨询如潮水般涌来,涵盖账户管理、贷款业务、理财产品等诸多方面。以往,传统客服系统就像 “照本宣科” 的机器,面对复杂问题或客户个性化需求时,往往只能给出预设的标准答案,难以真正满足客户需求。

而引入 RAG 技术后,情况发生了翻天覆地的变化。银行将多年积累的客户交互数据、业务文档、产品资料等整合起来,构建了庞大的知识库。这个知识库就像一个装满宝藏的智慧宝库,为 RAG 系统提供了强大的知识支撑。当客户咨询问题时,RAG 系统迅速行动,如同训练有素的寻宝者,在知识库中精准检索相关信息片段,然后将这些信息与问题一同输入语言模型,让模型生成针对性的回答。

如今,AI 客服不仅能准确解答业务咨询,还能根据客户咨询内容和历史记录,化身专业的金融顾问,动态生成产品优化建议。比如,当客户询问某款理财产品的收益和风险时,AI 客服在回答问题的同时,还会深入分析客户的财务状况和投资偏好,推荐更匹配的理财产品组合,甚至提出优化产品的建议,如调整收益分配方式、完善风险提示等。

自上线 RAG 智能客服系统三个月以来,该银行成绩斐然,客户转化率提升了 21%,远超传统客服机器人 3 - 5% 的行业均值。这一显著成效充分彰显了 RAG 技术在智能客服领域的强大优势,也为金融行业提升客户服务水平和业务转化率开辟了新路径。

8.3 医疗诊断系统:为生命健康保驾护航

医疗领域对准确性和及时性的要求近乎苛刻,RAG 技术的出现,为医疗诊断带来了新的曙光,推动着 AI 从辅助工具向决策中枢逐步升级。

某三甲医院部署的基于 RAG 技术的诊疗系统,集成了海量的医学文献、电子病历以及最新的医学研究成果,宛如一座医学知识的 “超级图书馆”。在面对复杂病例,尤其是罕见病诊断时,这个系统发挥出巨大威力。它能够实时检索全球范围内的医学知识和类似病例,帮助医生快速获取全面信息,做出更准确的诊断。

在罕见病识别方面,该系统通过对海量医学文献和病例数据的检索分析,结合患者的具体症状和检查结果,像敏锐的侦探一样,发现隐藏的疾病线索。使用该系统后,罕见病识别率大幅提升了 58%,让更多罕见病患者能够及时得到诊断和治疗。

在 CT 影像诊断中,RAG 系统与医学影像分析模型紧密配合,对 CT 影像中的病变进行精准识别和分析。它不仅能检测出病变的位置和大小,还能通过检索相关医学知识和病例,初步判断病变性质,准确率达到副主任医师水平。这意味着在某些情况下,AI 就像经验丰富的医生,为患者提供可靠的诊断建议,为临床决策提供有力支持。

此外,RAG 还有望在药物研发、疾病预防等方面发挥重要作用,加速医疗行业的创新发展。例如,在药物研发过程中,RAG 系统可以帮助研究人员快速检索和分析大量的医学文献和实验数据,加速新药的研发进程,为患者带来更多的治疗希望。

8.4 教育辅导系统:点亮个性化教育之光

教育是塑造未来的基石,RAG 技术为实现个性化教育、推动教育公平带来了新机遇。

某在线教育平台借助动态 RAG 框架,根据每个学生的学习进度、知识掌握情况、兴趣爱好等因素,为他们量身定制学习路径。平台丰富的课程资源和大量学习数据,在 RAG 技术的加持下,成为了学生个性化学习的 “智慧源泉”。

当学生在学习数学遇到困难时,系统就像贴心的学习伙伴,先深入分析学生的错题类型和知识点薄弱环节,然后从知识库中检索出相关的知识点讲解、例题分析、练习题等内容,为学生提供精准辅导。同时,系统还会根据学生的学习反馈,动态调整学习计划,确保学习路径始终契合学生的实际需求。

实践证明,使用该系统后,学生的知识吸收效率提升了 35%。而且,与传统定制化教育方案相比,基于 RAG 技术的教育辅导系统开发成本仅为传统方案的 1/8。这使得更多学生能够享受到个性化教育服务,充分展现了 AI 技术在促进教育公平方面的巨大潜力。

那么,如何系统的去学习大模型LLM?

作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
在这里插入图片描述

为什么要学习大模型?

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

在这里插入图片描述

在这里插入图片描述

👉大模型学习指南+路线汇总👈

我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
在这里插入图片描述
在这里插入图片描述

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
在这里插入图片描述

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
在这里插入图片描述

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
在这里插入图片描述

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!

Logo

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

更多推荐