资讯动态

一文搞清楚RAG的5步流程和12个优化策略,看这一篇就够了!

发布时间:2026/10/20 2:15:17 来源:尧图企业网站定制
在当今信息爆炸的时代人们对精准、高效获取知识的需求日益迫切。大语言模型的出现为我们提供了强大的信息处理能力但在面对特定领域知识或最新信息时其局限性也逐渐显现。而 RAG检索增强生成技术的诞生恰好为解决这一难题提供了有效途径。它通过将检索到的相关信息与生成模型相结合让模型能够基于更丰富、更准确的知识进行输出在智能问答、知识检索等众多领域发挥着越来越重要的作用。本文将详细解析 RAG 的 5 步流程和 12 个优化策略助你全面掌握这一实用技术。一、RAG基本流程如下图所示RAG可分为5个基本流程知识文档的准备嵌入模型嵌入模型embedding model向量数据库查询检索和生产回答。下面会对每个环节进行详细描述NO.1 知识文档的准备在构建一个高效的 RAG 系统时首要步骤是准备知识文档。现实场景中我们面对的知识源可能包括多种格式如 Word 文档、TXT 文件、CSV 数据表、Excel 表格甚至是 PDF 文件、图片和视频等。因此第一步需要使用专门的文档加载器例如 PDF 提取器或多模态模型如 OCR 技术将这些丰富的知识源转换为大语言模型可理解的纯文本数据。例如处理 PDF 文件时可以利用 PDF 提取器抽取文本内容对于图片和视频OCR 技术能够识别并转换其中的文字信息。​此外鉴于文档可能存在过长的问题我们还需执行一项关键步骤文档切片。我们需要将长篇文档分割成多个文本块以便更高效地处理和检索信息。这不仅有助于减轻模型的负担还能提高信息检索的准确性。我们将在后文中详细讨论文档切片和其背后的逻辑。NO.2 嵌入模型嵌入模型的核心任务是将文本转换为向量形式。我们日常使用的语言充满歧义和对表达词意无用的助词而向量表示则更加密集、精确能够捕捉到句子的上下文关系和核心含义。这种转换使得我们能够通过简单计算向量之间的差异来识别语义上相似的句子。举例来说如果我们想比较 “苹果是一种水果” 和 “香蕉是黄色的”嵌入模型可以将这些句子转换为向量然后通过计算它们之间的相似度便可以确定它们的关联程度。​那么这样的嵌入模型是如何得到的呢作为一个经典的例子我们以 Google 开发的 Word2Vec 模型为基础来探讨其训练过程。Word2Vec 有两种训练方法为简单起见我们就以上图展示的 CBOW 模型方法讲解。CBOW 模型的核心思想是在给定一句话中心词的上下文即该词周围的几个词的情况下让模型预测这个中心词。例如假设我们有一个句子“The cat sat on the mat”。使用 CBOW 模型我们的目标是预测中心词 “sat”。具体的训练流程如下对于上下文词 “the”,“cat”,“on”,“the”,“mat” 首先生成它们的 one-hot 向量。One-hot 向量是一个高维稀疏向量代表词汇表中的每个单词如果有这个词便是 1其余全是 0比如 “the” 的编码就可以是 (10000)接下来将每个 one-hot 向量与一个大小为 V×N 的权重矩阵 W 相乘这里 V 是词汇表的大小N 是词向量的维度得到每个单词的词向量。然后将所有这些词向量加起来并求平均得到代表整个句子上下文的向量 e即图中的 projection layer 中的 1×N 向量。接着将向量 e 乘以另一个输出权重矩阵 W’通过 SoftMax 函数处理得到一个大小为 1×V 的输出向量。这个向量代表了模型预测每个词是中心词的概率。最后将模型的预测结果与实际的中心词进行比较通过这个差值不断更新两个权重矩阵 W 和 W’。经过足够的训练步骤 2 中得到的向量 e 就能有效地代表整个句子的含义。当然除了 Word2Vec还有其他高级的嵌入模型如 BERT 和 GPT 系列它们通过更复杂的网络结构捕捉更深层次的语义关系。总之嵌入模型是连接用户查询和知识库的桥梁确保了系统回答的准确性和相关性。NO.3 向量数据库向量数据库是专门设计用于存储和检索向量数据的数据库系统。在 RAG 系统中通过嵌入模型生成的所有向量都会被存储在这样的数据库中。这种数据库优化了处理和存储大规模向量数据的效率使得在面对海量知识向量时我们能够迅速检索出与用户查询最相关的信息。NO.4 查询检索经过上述几个步骤的准备后我们就可以开始进行处理用户查询了。首先用户的问题会被输入到嵌入模型中进行向量化处理。然后系统会在向量数据库中搜索与该问题向量语义上相似的知识文本或历史对话记录并返回。NO.5 生成回答最终将用户提问和上一步中检索到的信息结合构建出一个提示模版输入到大语言模型中静待模型输出答案即可。二、RAG优化刚才讲述的流程仅仅为基本的RAG流程但是其中的各个环节均有着极大的优化空间。下面我们将从上述5个环节中穿插12个具体优化策略来依次讲解。下面介绍的方法均在AI开发框架langchain和LLamaIndex中有具体实现具体操作方法可参考官方文档。NO.1 数据清洗高性能 RAG 系统依赖于准确且清洁的原始知识数据。一方面为了保证数据的准确性我们需要优化文档读取器和多模态模型。特别是处理如 CSV 表格等文件时单纯的文本转换可能会丢失表格原有的结构。因此我们需引入额外的机制以在文本中恢复表格结构比如使用分号或其他符号来区分数据。另一方面我们也需要对知识文档做一些基本数据清洗其中可以包括基本文本清理规范文本格式去除特殊字符和不相关信息去除重复文档或冗余信息。实体解析消除实体和术语的歧义以实现一致的引用。例如将 “LLM”、“大语言模型” 和 “大模型” 标准化为通用术语。文档划分合理地划分不同主题的文档。思考不同主题是集中在一处还是分散在多处如果作为人类都不能轻松地判断出需要查阅哪个文档才能来回答常见的提问那么检索系统也无法做到。数据增强使用同义词、释义甚至其他语言的翻译来增加语料库的多样性。用户反馈循环基于现实世界用户的反馈不断更新数据库标记它们的真实性。时间敏感数据对于经常更新的主题实施一种机制来使过时的文档失效或更新。NO.2 分块处理在RAG系统中文档需要分割成多个文本块再进行向量嵌入。在不考虑大模型输入长度限制和成本问题情况下其目的是在保持语义上的连贯性的同时尽可能减少嵌入内容中的噪声从而更有效地找到与用户查询最相关的文档部分。如果分块太大可能包含太多不相关的信息从而降低了检索的准确性。相反分块太小可能会丢失必要的上下文信息导致生成的回应缺乏连贯性或深度。在RAG系统中实施合适的文档分块策略旨在找到这种平衡确保信息的完整性和相关性。一般来说理想的文本块应当在没有周围上下文的情况下对人类来说仍然有意义这样对语言模型来说也是有意义的。分块方法的选择固定大小的分块这是最简单和直接的方法我们直接设定块中的字数并选择块之间是否重复内容。通常我们会保持块之间的一些重叠以确保语义上下文不会在块之间丢失。与其他形式的分块相比固定大小分块简单易用且不需要很多计算资源。内容分块顾名思义根据文档的具体内容进行分块例如根据标点符号如句号分割。或者直接使用更高级的NLTK或者spaCy库提供的句子分割功能。递归分块在大多数情况下推荐的方法。其通过重复地应用分块规则来递归地分解文本。例如在langchain中会先通过段落换行符\n\n进行分割。然后检查这些块的大小。如果大小不超过一定阈值则该块被保留。对于大小超过标准的块使用单换行符\n再次分割。以此类推不断根据块大小更新更小的分块规则如空格句号。这种方法可以灵活地调整块的大小。例如对于文本中的密集信息部分可能需要更细的分割来捕捉细节而对于信息较少的部分则可以使用更大的块。而它的挑战在于需要制定精细的规则来决定何时和如何分割文本。从小到大分块既然小的分块和大的分块各有各的优势一种更为直接的解决方案是把同一文档进行从大到小所有尺寸的分割然后把不同大小的分块全部存进向量数据库并保存每个分块的上下级关系进行递归搜索。但可想而知因为我们要存储大量重复的内容这种方案的缺点就是需要更大的储存空间特殊结构分块针对特定结构化内容的专门分割器。这些分割器特别设计来处理这些类型的文档以确保正确地保留和理解其结构。langchain提供的特殊分割器包括Markdown文件Latex文件以及各种主流代码语言分割器。分块大小的选择上述方法中无一例外最终都需要设定一个参数——块的大小那么我们如何选择呢首先不同的嵌入模型有其最佳输入大小。比如Openai的text-embedding-ada-002的模型在256 或 512大小的块上效果更好。其次文档的类型和用户查询的长度及复杂性也是决定分块大小的重要因素。处理长篇文章或书籍时较大的分块有助于保留更多的上下文和主题连贯性而对于社交媒体帖子较小的分块可能更适合捕捉每个帖子的精确语义。如果用户的查询通常是简短和具体的较小的分块可能更为合适相反如果查询较为复杂可能需要更大的分块。实际场景中我们可能还是需要不断实验调整在一些测试中128大小的分块往往是最佳选择在无从下手时可以从这个大小作为起点进行测试。NO.3 嵌入模型我们提到过嵌入模型能帮助我们把文本转换成向量显然不同的嵌入模型带来的效果也不尽相同例如我们之前讨论的Word2Vec模型尽管功能强大但存在一个重要的局限性其生成的词向量是静态的。一旦模型训练完成每个词的向量表示就固定不变这在处理一词多义的情况时可能导致问题。比如 “我买了一张光盘”这里“光盘”指的是具体的圆形盘片而在“光盘行动”中“光盘”则指的是把餐盘里的食物吃光是一种倡导节约的行为。语义完全不一样的词向量却是固定的。相比之下引入自注意力机制的模型如BERT能够提供动态的词义理解。这意味着它可以根据上下文动态地调整词义使得同一个词在不同语境下有不同的向量表示。在之前的例子中“光盘”这个词在两个句子中会有不同的向量从而更准确地捕捉其语义。有些项目为了让模型对特定垂直领域的词汇有更好的理解会嵌入模型进行微调。但在这里我们并不推荐这种方法一方面其对训练数据的质量有较高要求另一方面也需要较多的人力物力投入且效果未必理想最终得不偿失。在这种情况下对于具体应该如何选择嵌入模型我们推荐参考Hugging Face推出的嵌入模型排行榜MTEBhttps://huggingface.co/spaces/mteb/leaderboard。这个排行榜提供了多种模型的性能比较能帮助我们做出更明智的选择。同时要注意并非所有嵌入模型都支持中文因此在选择时应查阅模型说明。NO.4 元数据当在向量数据库中存储向量数据时某些数据库支持将向量与元数据即非向量化的数据一同存储。为向量添加元数据标注是一种提高检索效率的有效策略它在处理搜索结果时发挥着重要作用。例如日期就是一种常见的元数据标签。它能够帮助我们根据时间顺序进行筛选。设想一下如果我们正在开发一款允许用户查询他们电子邮件历史记录的应用程序。在这种情况下日期最近的电子邮件可能与用户的查询更相关。然而从嵌入的角度来看我们无法直接判断这些邮件与用户查询的相似度。通过将每封电子邮件的日期作为元数据附加到其嵌入中我们可以在检索过程中优先考虑最近日期的邮件从而提高搜索结果的相关性。此外我们还可以添加诸如章节或小节的引用文本的关键信息、小节标题或关键词等作为元数据。这些元数据不仅有助于改进知识检索的准确性还能为最终用户提供更加丰富和精确的搜索体验。NO.5 多级索引元数据无法充分区分不同上下文类型的情况下我们可以考虑进一步尝试多重索引技术。多重索引技术的核心思想是将庞大的数据和信息需求按类别划分并在不同层级中组织以实现更有效的管理和检索。这意味着系统不仅依赖于单一索引而是建立了多个针对不同数据类型和查询需求的索引。例如可能有一个索引专门处理摘要类问题另一个专门应对直接寻求具体答案的问题还有一个专门针对需要考虑时间因素的问题。这种多重索引策略使RAG系统能够根据查询的性质和上下文选择最合适的索引进行数据检索从而提升检索质量和响应速度。但为了引入多重索引技术我们还需配套加入多级路由机制。多级路由机制确保每个查询被高效引导至最合适的索引。查询根据其特点如复杂性、所需信息类型等被路由至一个或多个特定索引。这不仅提升了处理效率还优化了资源分配和使用确保了对各类查询的精确匹配。例如对于查询“最新上映的科幻电影推荐”RAG系统可能首先将其路由至专门处理当前热点话题的索引然后利用专注于娱乐和影视内容的索引来生成相关推荐。总的来说多级索引和路由技术可以进一步帮助我们对大规模数据进行高效处理和精准信息提取从而提升用户体验和系统的整体性能。NO.6 索引/查询算法我们可以利用索引筛选数据但说到底我们还是要从筛选后的数据中检索出相关的文本向量。由于向量数据量庞大且复杂寻找绝对的最优解变得计算成本极高有时甚至是不可行的。加之大模型本质上并不是完全确定性的系统这些模型在搜索时追求的是语义上的相似性——一种合理的匹配即可。从应用的角度来看这种方法是合理的。例如在推荐系统中用户不太可能察觉到或关心是否每个推荐的项目都是绝对的最佳匹配他们更关心的是推荐是否总体上与他们的兴趣相符。因此查找与查询向量完全相同的项通常不是目标而是要找到“足够接近”或“相似”的项这便是最近邻搜索ANN。这样做不仅能满足需求还为检索优化提供了巨大的优化潜力。下面我们会介绍一些常见的向量搜索算法以便大家在具体使用场景中进行取舍。聚类想象一下当我们在网上购物时通常不会在所有商品中盲目搜索而是会选择进入特定的商品分类比如“电子产品”或“服饰”在一个更加细分的范畴内寻找心仪的商品。这个能帮我们大大缩小搜索范围。同样这种思路聚类算法可以帮我们实现这个范围的划定。就比如说我们可以用K-mean算法把向量分为数个簇当用户进行查询的时候我们只需找到距离查询向量最近的簇然后再这个簇中进行搜索。当然聚类的方法并不保证一定正确如下图查询距离黄色簇的中心点更近但实际上距离查询向量最近的即最相似的点在紫色类。有一些缓解这个问题的方法例如增加聚类的数量并指定搜索多个簇。然而任何提高结果质量的方法都不可避免地会增加搜索的时间和资源成本。实际上质量和速度之间存在着一种权衡关系。我们需要在这两者之间找到一个最优的平衡点或者找到一个适合特定应用场景的平衡。不同的算法也对应着不同的平衡。位置敏感哈希沿着缩小搜索范围的思路位置敏感哈希算法是另外一种实现的策略。在传统的哈希算法中我们通常希望每个输入对应一个唯一的输出值并努力减少输出值的重复。然而在位置敏感哈希算法中我们的目标恰恰相反我们需要增加输出值碰撞的概率。这种碰撞正是分组的关键哈希值相同的向量将被分配到同一个组中也就是同一个“桶”里。此外这种哈希函数还需满足另一个条件空间上距离较近的向量更有可能被分入同一个桶。这样在进行搜索时只需获取目标向量的哈希值找到相应的桶并在该桶内进行搜索即可。量化乘积上面我们介绍了两种牺牲搜索质量来提高搜索速度的方法但除了搜索速度外内存开销也是一个巨大挑战。在实际应用场景中每个向量往往都有上千个维度数据数量可达上亿。每条数据都对应着一个实际的的信息因此不可能删除数据来减少内存开销那唯一的选择只能是把每个数据本身大小缩减。有一种乘积量化的方法可以帮我们完成这点。图像有一种有损压缩的方法是把一个像素周围的几个像素合并来减少需要储存的信息。同样我们可以在聚类的方法之上改进一下用每个簇的中心点来代替簇中的数据点。虽然这样我们会丢失向量的具体值信息但考虑到聚类中心点和簇中向量相关程度再加上可以不断增加簇的数量来减少信息损失所以很大程度上我们可以保留原始点的信息。而这样做带来的好处是十分可观的。如果我们给这些中心点编码我们就可以用单个数字储存一个向量来减少存储的空间。而我们把每个中心向量值和他的编码值记录下来形成一个码本这样每次使用某个向量的时候我们只需用他的编码值通过码本找到对应的的中心向量的具体值虽然这个向量已经不再是当初的样子了但就像上面所说问题不大。而这个把向量用其所在的簇中心点表示的过程就是量化。但是你可能会发现码本又引入了额外的开销。在真实的场景中因为维度爆炸的问题更高的维度中数据分布更加稀疏所以我们需要更多的聚类数量来减少丢失的细节就比如一个128维的空间我们需要2的64次方个聚类中心所以最终这个码本所需的内存会变得非常恐怖甚至超越量化本身所节省下来的内存。解决这个问题的办法是把高维的向量分割成多个低维的子向量然后在这些低维的子向量中独立量化。比如把128维的向量分解成8个16维的子向量然后独立的在8个独立的子空间进行量化形成自己子码本。每个16维的空间只需要256个聚类就可以得到不错的效果并且每个子码本将变得很小即便8个子码本加在一起的大小也仍然足够的小实际上我们是在把码本大小增长从指数模型分解为加法模式。最后我们还可以把前面的提速度方法和减内存的乘积量化法结合使用同时实现速度和内存的优化。分层导航小世界从客户的角度来看内存开销可能并不是最重要的考量因素。他们更加关注的是应用的最终效果也就是回答用户问题的速度和质量。导航小世界NSW算法正是这样一种用内存换取更快速度和更高质量的实现方式。这个算法的思路和“六度分割理论”类似——你和任何一个陌生人之间最多只隔六个人也就是说最多通过六个人你就能够认识任何一个陌生人。我们可以将人比作向量点把搜索过程看作是从一个人找到另一个人的过程。在查询时我们从一个选定的起始点A开始然后找到与A相邻且最接近查询向量的点B导航到B点再次进行类似的判断如此反复直到找到一个点C其所有相邻节点都没有比它更接近目标。最终这个点C便是我们要找的最相似的向量。NO.7 查询转换在RAG系统中用户的查询问题被转化为向量然后在向量数据库中进行匹配。不难想象查询的措辞会直接影响搜索结果。如果搜索结果不理想可以尝试以下几种方法对问题进行重写以提升召回效果a)结合历史对话的重新表述在向量空间中对人类来说看似相同的两个问题其向量大小并不一定很相似。我们可以直接利用LLM 重新表述问题来进行尝试。此外在进行多轮对话时用户的提问中的某个词可能会指代上文中的部分信息因此可以将历史信息和用户提问一并交给LLM重新表述。b)假设文档嵌入HyDEHyDE的核心思想是接收用户提问后先让LLM在没有外部知识的情况下生成一个假设性的回复。然后将这个假设性回复和原始查询一起用于向量检索。假设回复可能包含虚假信息但蕴含着LLM认为相关的信息和文档模式有助于在知识库中寻找类似的文档。c)退后提示Step Back Prompting如果果原始查询太复杂或返回的信息太广泛我们可以选择生成一个抽象层次更高的“退后”问题与原始问题一起用于检索以增加返回结果的数量。例如原问题是“桌子君在特定时期去了哪所学校”而退后问题可能是关于他的“教育历史”。这种更高层次的问题可能更容易找到答案。d)多查询检索/多路召回Multi Query Retrieval****使用LLM生成多个搜索查询特别适用于一个问题可能需要依赖多个子问题的情况。通过这些方法RAG系统能够更精准地处理和响应复杂的用户查询从而提升整体的搜索效率和准确性。NO.8 检索参数终于我们把查询问题准备好了可以进入向量数据库进行检索。在具体的检索过程中我们可以根据向量数据库的特定设置来优化一些检索参数以下是一些常见的可设定参数a)稀疏和稠密搜索权重 稠密搜索即通过向量进行搜索。然而在某些场景下可能存在限制此时可以尝试使用原始字符串进行关键字匹配的稀疏搜索。一种有效的稀疏搜索算法是最佳匹配25BM25它基于统计输入短语中的单词频率频繁出现的单词得分较低而稀有的词被视为关键词得分会较高。我们可以结合稀疏和稠密搜索得出最终结果。向量数据库通常允许设定两者对最终结果评分的权重比例如0.6表示40%的得分来自稀疏搜索60%来自稠密搜索。b)结果数量topK 检索结果的数量是另一个关键因素。足够的检索结果可以确保系统覆盖到用户查询的各个方面。在回答多方面或复杂问题时更多的结果提供了丰富的语境有助于RAG系统更好地理解问题的上下文和隐含细节。但需注意结果数量过多可能导致信息过载降低回答准确性并增加系统的时间和资源成c)相似度度量方法计算两个向量相似度的方法也是一个可选参数。这包括使用欧式距离和Jaccard距离计算两个向量的差异以及利用余弦相似度衡量夹角的相似性。通常余弦相似度更受青睐因为它不受向量长度的影响只反映方向上的相似度。这使得模型能够忽略文本长度差异专注于内容的语义相似性。需要注意的是并非所有嵌入模型都支持所有度量方法具体可参考所用嵌入模型的说明。NO.9 高级检索策略终于我们来到最为关键和复杂的步骤——在向量数据库检索之上如何具体开发或改进整个系统的策略。这部分的内容足够写成一篇独立文章。为了保持简洁我们只讨论一些常用或者新提出的策略。a)上下文压缩我们提到过当文档文块过大时可能包含太多不相关的信息传递这样的整个文档可能导致更昂贵的LLM调用和更差的响应。上下文压缩的思想就是通过LLM的帮助根据上下文对单个文档内容进行压缩或者对返回结果进行一定程度的过滤仅返回相关信息。b)句子窗口搜索相反文档文块太小会导致上下文的缺失。其中一种解决方案就是窗口搜索该方法的核心思想是当提问匹配好分块后将该分块周围的块作为上下文一并交给LLM进行输出来增加LLM对文档上下文的理解。c)父文档搜索无独有偶父文档搜索也是一种很相似的解决方案父文档搜索先将文档分为尺寸更大的主文档再把主文档分割为更短的子文档两个层级用户问题会与子文档匹配然后将该子文档所属的主文档和用户提问发送给LLM。d)自动合并自动合并是在父文档搜索上更进一步的复杂解决方案。同样地我们先对文档进行结构切割比如将文档按三层树状结构进行切割顶层节点的块大小为1024中间层的块大小为512底层的叶子节点的块大小为128。而在检索时只拿叶子节点和问题进行匹配当某个父节点下的多数叶子节点都与问题匹配上则将该父节点作为结果返回。e)多向量检索多向量检索同样会给一个知识文档转化成多个向量存入数据库不同的是这些向量不仅包括文档在不同大小下的分块还可以包括该文档的摘要用户可能提出的问题等等有助于检索的信息。在使用多向量查询的情况下每个向量可能代表了文档的不同方面使得系统能够更全面地考虑文档内容并在回答复杂或多方面的查询时提供更精确的结果。例如如果查询与文档的某个具体部分或摘要更相关那么相应的向量就可以帮助提高这部分内容的检索排名。f)多代理检索多代理检索简而言之就是选取我们提及的12大优化策略中的部分交给一个智能代理合并使用。就比如使用子问题查询多级索引和多向量查询结合先让子问题查询代理把用户提问拆解为多个小问题再让文档代理对每个字问题进行多向量或多索引检索最后排名代理将所有检索的文档总结再交给LLM。这样做的好处是可以取长补短比如子问题查询引擎在探索每个子查询时可能会缺乏深度尤其是在相互关联或关系数据中。相反文档代理递归检索在深入研究特定文档和检索详细答案方面表现出色以此来综合多种方法解决问题。需要注意的是现在网络上存在不同结构的多代理检索具体在多代理选取哪些优化步骤尚未有确切定论我们可以结合使用场景进行探索。g)Self-RAG自反思搜索增强是一个全新RAG框架其与传统RAG最大的区别在于通过检索评分令牌和反思评分令牌来提高质量。它主要分为三个步骤检索、生成和批评。Self-RAG首先用检索评分来评估用户提问是否需要检索如果需要检索LLM将调用外部检索模块查找相关文档。接着LLM分别为每个检索到的知识块生成答案然后为每个答案生成反思评分来评估检索到的文档是否相关最后将评分高的文档当作最终结果一并交给LLM。NO.10 重排模型Re-ranking在完成语义搜索的优化步骤后我们能够检索到语义上最相似的文档但不知你是否注意到一个关键问题语义最相似是否总代表最相关答案是不一定。例如当用户查询“最新上映的科幻电影推荐”时可能得到的结果是“科幻电影的历史演变”虽然从语义上这与科幻电影相关但并未直接回应用户关于最新电影的查询。重排模型可以帮助我们缓解这个问题重排模型通过对初始检索结果进行更深入的相关性评估和排序确保最终展示给用户的结果更加符合其查询意图。这一过程通常由深度学习模型实现如Cohere模型。这些模型会考虑更多的特征如查询意图、词汇的多重语义、用户的历史行为和上下文信息等。举个例子对于查询“最新上映的科幻电影推荐”在首次检索阶段系统可能基于关键词返回包括科幻电影的历史文章、科幻小说介绍、最新电影的新闻等结果。然后在重排阶段模型会对这些结果进行深入分析并将最相关、最符合用户查询意图的结果如最新上映的科幻电影列表、评论或推荐排在前面同时将那些关于科幻电影历史或不太相关的内容排在后面。这样重排模型就能有效提升检索结果的相关性和准确性更好地满足用户的需求。在实践中使用RAG构建系统时都应考虑尝试重排方法以评估其是否能够提高系统性能。NO.11 提示词大型语言模型的解码器部分通常基于给定输入来预测下一个词。这意味着设计提示词或问题的方式将直接影响模型预测下一个词的概率。这也给了我们一些启示通过改变提示词的形式可以有效地影响模型对不同类型问题的接受程度和回答方式比如修改提示语让LLM知道它在做什么工作是十分有帮助的。为了减少模型产生主观回答和幻觉的概率一般情况下RAG系统中的提示词中应明确指出回答仅基于搜索结果不要添加任何其他信息例如可以设置提示词如“你是一名智能客服。你的目标是提供准确的信息并尽可能帮助提问者解决问题。你应保持友善但不要过于啰嗦。请根据提供的上下文信息在不考虑已有知识的情况下回答相关查询。”当然你也可以根据场景需要也可以适当让模型的回答融入一些主观性或其对知识的理解。此外使用少量样本few-shot的方法将想要的问答例子加入提示词中指导LLM如何利用检索到的知识也是提升LLM生成内容质量的有效方法。这种方法不仅使模型的回答更加精准也提高了其在特定情境下的实用性。NO.12 大语言模型终于我们来到最后一步——LLM生成回答。LLM是生成响应的核心组件。与嵌入模型类似可以根据自己的需求选择LLM例如开放模型与专有模型、推理成本、上下文长度等。此外可以使用一些LLM开发框架来搭建RAG系统比如LlamaIndex或LangChain。这两个框架都拥有比较好用的debugging工具可以让我们定义回调函数查看使用了哪些上下文检查检索结果来自哪个文档等等。三、结语在本文中我们一起深入探索了RAGRelevance- Generation系统的各个方面从初步的文档准备到复杂的多代理检索策略希望得到了对RAG一个全面且深入的认识。这个旅程虽然充满挑战但同样展现了RAG系统在处理大规模信息检索和理解任务时的巨大潜力。通过细致地优化查询问题灵活运用多级索引和路由技术以及实施先进的检索策略我们能够显著提高系统的效率和准确性从而更好地满足用户的需求。RAG系统的未来发展令人充满期待随着技术的不断进步我们有理由相信它将在各行各业中发挥越来越重要的作用。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑