企业网站建设费用会计分录石家庄网站制作
2026/2/25 19:30:54 网站建设 项目流程
企业网站建设费用会计分录,石家庄网站制作,wordpress文章来源信息,西安做义工网站本文详细介绍了RAG#xff08;检索增强生成#xff09;系统的六大优化策略#xff0c;以解决LLM面临的信息偏差、知识更新滞后和领域专业知识欠缺问题。通过查询转换#xff08;重写、分解、回退、HyDE混合策略#xff09;、路由#xff08;数据源和prompt路由#xff0…本文详细介绍了RAG检索增强生成系统的六大优化策略以解决LLM面临的信息偏差、知识更新滞后和领域专业知识欠缺问题。通过查询转换重写、分解、回退、HyDE混合策略、路由数据源和prompt路由、问题构建自查询、索引多表征、分层、切块优化、检索重排序、CRAG和生成self-RAG六个维度的优化显著提升RAG系统的准确性和可靠性。文章提供了详细的实现流程、代码示例和应用场景为开发者构建高效RAG系统提供全面指导。一、背景目前LLM虽然已经具备了强大的能力但是在某些情况下它们仍可能无法提供准确的答案。目前 LLM 面临的主要问题有信息偏差/幻觉LLM 有时会产生与客观事实不符的信息导致用户接收到的信息不准确。知识更新滞后性LLM 基于静态的数据集训练这可能导致模型的知识更新滞后无法及时反映最新的信息动态。领域专业知识能力欠缺LLM通常基于公开数据集训练在处理特定领域的专业知识时效果不太理想。对于 Transformer架构类型的大模型来说想要提高LLM生成内容的准确性一般只需要 3 个步骤提供更准确的内容提供准确性更高的内容会让 LLM 能识别到关联的内容 生成的内容准确性更高。让重要的内容更靠前GPT 模型的注意力机制会让传递 Prompt中更靠前的内容权重更高越靠后权重越低。不传递不相关内容缩短每个块的大小尽可能让每个块只包含关联的内容缩小不相关内容的比例。二、RAG流程简介RAG 是一个完整的系统其工作流程可以简单地分为数据预处理、检索、增强和生成四个阶段**数据处理阶段**对原始数据进行清洗和处理然后将处理后的数据转化为检索模型可以使用的格式最后存储在对应的数据库中。**检索阶段**将用户的问题输入到检索系统中从数据库中检索相关信息。**增强阶段**对检索到的信息进行处理和增强以便生成模型可以更好地理解和使用。**生成阶段**将增强后的信息输入到生成模型中生成模型根据这些信息生成答案。一个完整的RAG应用开发流程涉及到文档加载器、向量数据库、检索器、Prompt、记忆、输出解析器、大语言模型、多个功能模块如下所示通常RAG的优化策略主要分为查询转换、路由、问题构建、索引、检索和生成六个方面进行如下与所示三、RAG优化3.1 查询转换3.1.1 查询重写和融合策略如果直接使用原始问题进行检索可以因为用户的表述偏差导致检索不到相关的文档。多查询重写策略的核心思想是利用大语言模型LLM对原始问题进行扩展、分解或抽象生成多个语义相关但视角不同的子查询从而提高检索系统对用户意图的覆盖能力。这种方法能有效解决单一查询可能存在的表述偏差或信息不全问题。整体流程如下所示一个简易的prompt如下所示你的任务是为给定的用户问题生成3 - 5个语义等价但表述差异化的查询变体目的是帮助用户克服基于距离的相似性搜索的一些局限性以便从向量数据库中检索相关文档。以下是原始问题question{{question}}/question请生成3 - 5个语义与原始问题等价但表述不同的查询变体用换行符分隔这些替代问题。请在查询变体标签内写下你的答案。由于需要转换问题一般较小以及生成子问题时对 LLM 的能力要求并不高在实际的 LLM 应用开发中通常使用参数较小的本地模型针对性优化的 prompt 即可完成任务并将temperature设置为0确保生成的文本更加有确定性。调用样例如下在多查询重写策略中每个子问题都会检索出相应的文档片段。针对如何合并这些文档的问题便延伸出多查询结果融合策略。主要思想对其检索结果进行重新排序即 reranking后输出 Top K 个结果最后再将这 Top K 个结果喂给 LLM 并生成最终答案**。通常使用的算法是RRF(Reciprocal Rank Fusion)即倒排序排名算法**。公式如下表示检索到的所有相关文档 则是一个子文档表示所有子问题检索出来的文档列表 表示某个子问题检索出来的列表。需要注意的是这个列表除了包含子文档还表示了子文档的按照相关度的排序结果表示当前文档子d在其子集中的位置。是固定常数60这个是经过实验的最优值。该算法会对全集 D 进行二重遍历外层遍历文档全集 D内层遍历文档子集在做内层遍历的时候我们会累计当前文档在其所在子集中的位置并取倒数作为其权重。**也就是说如果该子文档在每个子问题检索位置越靠前则权重越高。**RFF的代码实现如下所示def rrf(results: list[list], k: int 60) - list[tuple]: 倒数排名融合RRF算法用于将多个结果生成单一、统一的排名 # 1.初始化一个字典用于存储每一个唯一文档的得分 fused_scores {} # 2.遍历每个查询对应的文档列表 for docs in results: # 3.内层遍历文档列表得到每一个文档 for rank, doc in enumerate(docs): # 4.将文档使用langchain提供的dump工具转换成字符串 doc_str dumps(doc) # 5.检测该字符串是否存在得分如果不存在则赋值为0 if doc_str notin fused_scores: fused_scores[doc_str] 0 # 6.计算多结果得分排名越小越靠前k为控制权重的参数 fused_scores[doc_str] 1 / (rank k) # 7.提取得分并进行排序 reranked_results [ (loads(doc), score) for doc, score in sorted(fused_scores.items(), keylambda x: x[1], reverseTrue) ] return reranked_results3.1.2 问题分解策略当提问的原始问题非常复杂时无论是使用原始问题进行检索亦或者生成多个相关联的问题进行检索往往都很难在向量数据库中找到关联性高的文档导致 RAG 效果偏差。造成这个问题的原因有几种复杂问题由多个问题按顺序步骤组成执行相似性搜索时向量数据库存储的都是基础文档数据往往相似度低但是这些数据在现实世界又可能存在很大的关联文本嵌入模型的限制一条向量不可能无损记录段落信息。问题复杂度高或者涉及到数学问题导致 LLM 没法一次性完成答案的生成一次性传递大量的相关性文档极大压缩了大语言模型生成内容上下文长度的限制问题分解策略就是将一个复杂问题分解成多个子问题或者子步骤。问题分解后的子问题跟原始问题是“父子”关系而查询重写跟原始问题则是“兄弟”关系。问题分解策略一共有两种分别是串行模式和并行模式。串行模式适用于逻辑依赖强的问题分解确保步骤的连贯性。如“RAG都有哪些阶段”需要先找到都有哪些阶段然后再询问各个阶段该做什么事情。并行模式适用于独立子任务的高效处理提升响应速度。如“如何规划北京到上海的 5 天旅游行程”需要分解成交通、住宿、景点三个子问题分别完成。两种模式的流程如下所示串行模式并行模式一个简单问题分解的prompt如下所示你的任务是针对输入的问题生成多个相关的子问题或子查询将输入问题分解成一组可以独立回答的子问题或子任务。以下是输入的问题question{{question}}/question请生成3 - 5个与该问题相关的搜索查询并使用换行符进行分割。生成的子问题/子查询应具有明确的主题和可独立回答的特点。请在子问题标签内写下生成的子问题/子查询。调用样例如下3.1.3 问题回退策略问题回退策略和问题分解策略相反当用户问题非常具体时可能无法检索的对应文档就需要将问题进行抽象。比如“李开复在2000年是在哪个公司工作”重新抽象成“李开复的工作经历是什么”。处理流程如下下面是一个执行样例**原始问题**如果理想气体的温度增加 2 倍体积增加 8 倍压力 P 会如何变化**直接回答的答案**如果温度增加 2 倍体积增加 8 倍那么压力将减少 16 倍回溯问题这个问题背后的物理原理是什么回溯答案理想气体定律 其中 是压力 是体积 是物质的量 是气体常数 是温度。**最终答案**压力减少了 4 倍**原始问题**1954 年 8 月至 11 月期间埃斯特拉・利奥波德就读于哪所学校1948 年威斯康星大学麦迪逊分校植物学学士1950 年加州大学伯克利分校植物学硕士1955 年耶鲁大学植物学博士。**直接回答的答案**1954 年 8 月至 11 月期间埃斯特拉・利奥波德就读于威斯康星大学麦迪逊分校。**回溯问题**埃斯特拉・利奥波德的教育经历是怎样的回溯答案**最终答案**她 1955 年就读于耶鲁大学植物学博士项目。因此1954 年 8 月至 11 月期间埃斯特拉・利奥波德最可能就读于耶鲁大学应用场景复杂推理任务如 STEM 问题需公式应用、时间敏感问题需整合时间线。多跳推理通过抽象减少中间步骤的逻辑错误prompt举例你的任务是分析给定的问题忽略具体细节提炼出问题背后涉及的核心概念、原理、知识范畴或通用逻辑。这是需要分析的问题question{{question}}/question分析时需要提取出问题的本质将其转化为对某一概念、原理、知识范畴或通用逻辑的探讨。例如如果问题是“水加热到 100℃为什么会沸腾”那么分析后的新问题应该是“分析液体沸腾现象的物理原理如相变、沸点与气压关系、能量传递机制等”。请在回答标签内写下你的分析结果。调用样例如下3.1.4 HyDE 混合策略在数据库中存储的数据一般都是文档层面上的文档包含的数据会远远比用户的查询数据要大很多所以query和doc之间是不对称检索能找到的相似性文档相对来说也比较少。例如**今天回家的路上看到了美丽的风景非常开心想学习 python 该怎么办**这个请求中前面的风景、开心等词语均为无关信息。会对真实的请求学习 python 产生干扰。如果直接搜索用户的请求可能会产生不正确或无法回答的 LLM 响应。因此有必要使得用户查询的语义空间与文档的语义空间保持一致。整体流程如下HyDE 将检索过程分解为两个阶段生成假设文档利用指令遵循的语言模型如 InstructGPT根据查询生成虚构但具有相关性的假设文档。生成过程通过自然语言指令如 “写一个回答问题的段落”引导无需标注数据。对比编码检索使用无监督对比学习的编码器如 Contriever将生成的假设文档编码为向量在语料库嵌入空间中检索最相似的真实文档。编码器的密集瓶颈可过滤假设文档中的错误细节将生成内容与实际语料对齐。关键优势零样本能力无需相关性标签或微调直接利用预训练语言模型和对比编码器的能力。跨任务与语言泛化在 Web 搜索、问答、事实核查等任务及斯瓦希里语、韩语、日语等多语言场景中均表现优异超越无监督基线 Contriever并接近有监督微调模型。prompt参考你的任务是实现HyDE零样本检索策略根据用户输入的查询生成假设文档。生成的内容要反映相关性模式同时允许存在虚构细节。以下是用户输入的查询查询{{QUERY}}/查询在生成假设文档时请遵循以下要点1. 仔细理解查询的核心内容和意图。2. 围绕查询构建文档让文档与查询具有明显的相关性。3. 可以适当添加一些虚构的细节但不能偏离查询的主题。4. 输出的文档应具有一定的逻辑性和连贯性。请在生成文档标签内写下你生成的假设文档。生成文档[在此生成假设文档]/生成文档调用样例如下**局限性**对于 doc-doc 类型的检索虽然在语义空间上保持了一致但是在query-doc的过程中受限于各种因素仍然可能产生错误信息。例如提问Bel是什么在没有执行 HyDE 混合策略而是直接查询得到答案如下Bel 是由 Paul Graham 在四年的时间里2015年3月26日至2019年10月12日用 Arc 语言编写的一种编程语言。它基于 John McCarthy 最初的 Lisp但添加了额外的功能。它是一个以代码形式表达的规范旨在成为计算的形式化模型是图灵机的一种替代方案。但是执行 HyDE 混合策略生成假设性doc如下Bel 是 Paul Graham 的化名他是这段信息背后的作者当时需要种子资金以维持生活并且参与了一项交易后来成为 Y Combinator 模式的典范。在这个例子中HyDE在没有文档上下文的情况下错误地解释了 Bel这会导致完全检索不到相关的文档信息。3.1.5 混合检索策略在查询检索中常见的两种检索方式分别是稀疏检索器和密集检索器稀疏检索器基于关键词匹配利用词频TF和逆文档频率IDF计算文档与查询的相关性。优点非常高效无需训练、对明确关键词匹配效果好缺点无法捕捉语义如同义词、上下文相关性密集检索器使用深度学习模型生成密集向量表示通过向量相似度如余弦相似度衡量相关性。优点捕捉语义信息解决词汇不匹配问题缺点需大量训练数据、计算成本高对生僻词敏感混合检索策略就是将多种检索方式混合起来可以利用不同算法的优势从而获得比任何单一算法更好的性能这也是常用的检索策略。这个流程如下所示WRRF是RRF的加权版本通过赋予不同检索器的权重从而影响检索文档的排序。在Langchain中代码实现样例如下doc_list [ 我喜欢苹果, 我喜欢橙子, 苹果和橙子是水果, ] # 初始化 BM25 检索器和 FAISS 检索器 bm25_retriever BM25Retriever.from_texts(doc_list) bm25_retriever.k 2embedding OpenAIEmbeddings() faiss_vectorstore FAISS.from_texts(doc_list, embedding) faiss_retriever faiss_vectorstore.as_retriever(search_kwargs{k: 2}) # 初始化集成检索器 ensemble_retriever EnsembleRetriever(retrievers[bm25_retriever, faiss_retriever], weights[0.5, 0.5]) docs ensemble_retriever.get_relevant_documents(苹果)[Document(page_content‘我喜欢苹果’, metadata{}), Document(page_content‘苹果和橙子是水果’, metadata{})]3.2 路由3.2.1 数据源路由在 RAG 应用开发中想根据不同的问题检索不同的向量数据库其实只需要设定要对应的 Prompt然后让 LLM 根据传递的问题返回需要选择的向量数据库的名称然后根据得到的名称选择不同的检索器即可。整体流程如下路由数据源的prompt样例如下你是一位擅长将用户问题路由到适当数据源的专家。你的任务是根据问题涉及的编程语言将问题路由到相关的数据源。首先请仔细阅读以下数据源信息data_sources{{DATA_SOURCES}}/data_sources现在请仔细阅读以下用户问题question{{QUESTION}}/question为了将问题路由到合适的数据源请按照以下步骤操作1. 仔细分析问题识别其中涉及的编程语言。2. 查看数据源信息找出与该编程语言相关的数据源。3. 如果问题涉及多种编程语言找出与所有涉及语言都相关或与主要语言相关的数据源。4. 如果没有合适的数据源指出“没有合适的数据源”。请在回答标签内写下路由结果。回答[在此输出路由结果]/回答调用样例如下image-202504051129595223.2.2 prompt路由在RAG应用开发中针对不同场景的问题使用特定化的prompt模板 效果一般都会比通用模板会好一些例如在教培场景制作一个可以教学物理的授课机器人如果使用通用的 prompt模板会导 prompt编写变得非常复杂反过来如果prompt写的简单有可能没法起到很好的回复效果。如果能针对用户的提问例如用户提问的内容是数学相关的则使用数学的模板提问的内容是物理相关的则使用物理的模板针对性选择不同的模板LLM 生成的内容会比使用通用模板会更好例如下方有两个 prompt模板物理老师你将扮演一位非常聪明的物理教授以简洁易懂的方式回答物理问题。当你不知道问题的答案时要坦率承认自己不知道。以下是需要你回答的物理问题query{{query}}/query在回答问题时请遵循以下指南1. 确保回答简洁易懂。2. 如果不知道问题的答案直接表明“我不知道这个问题的答案”。请在回答标签内写下你的答案。数学老师你将扮演一位非常优秀的数学家专门负责回答数学问题。你需要将复杂的问题分解成多个小步骤回答这些小步骤然后将它们整合起来回答更广泛的问题。这是需要你解答的数学问题问题{{query}}/问题在解答问题时请按照以下步骤进行1. 仔细阅读问题理解问题的核心。2. 将问题分解成多个小步骤。3. 依次解答每个小步骤。4. 最后将小步骤的解答整合起来给出完整的答案。请在回答标签内写下你的答案确保答案清晰、全面且包含每一个关键步骤。基于文本向量模型可以根据查询问题的语义查找到相似度更高的prompt模板语义的prompt路由流程如下所示3.3 问题构建3.3.1 自查询检索外部数据时最后在执行检索的时候使用的都是固定的筛选条件没有附加过滤的相似性搜索。但是在某些情况下用户发起的原始提问其实隐式携带了筛选条件例如提问请帮我整理下关于2023年全年关于AI的新闻汇总。在这段 原始提问中如果执行相应的向量数据库相似性搜索其实是附加了 筛选条件的即year2023但是在普通的相似性搜索中是不会考虑 2023 年这个条件的因为没有添加元数据过滤器2022年和2023年数据在高维空间其实很接近存在很大概率会将其他年份的数据也检索出来。那么有没有一种策略**能根据用户传递的原始问题构建相应的元数据过滤器呢**这样在搜索的时候带上对应的元数据过滤器不仅可以压缩检索范围还能提升搜索的准确性。这个思想其实就是 查询构建或者称为 自查询。并且除了 向量数据库类比映射到 关系型数据库、图数据库也是同样的操作技巧即**关系型数据库自查询**使用 LLM 将自然语言转换成 SQL 过滤语句。**图数据库自查询**使用 LLM 将自然语言转换成图查询语句。**向量数据库**使用 LLM 将自然语言转换成元数据过滤器/向量检索器。在Langchain中封装了一个自查询检索器SelfQueryRetriever执行流程如下将对应的prompt翻译后如下所示你的任务是根据提供的信息生成一个符合特定结构的JSON对象。该JSON对象将用于查询和过滤文档。以下是允许使用的比较器和逻辑运算符allowed_comparators{{ALLOWED_COMPARATORS}}/allowed_comparatorsallowed_operators{{ALLOWED_OPERATORS}}/allowed_operators现在请根据以下信息构建JSON对象 Data Source json{{{{ content: {content}, attributes: {attributes}}}}}在构建JSON对象时请遵循以下规则1. 查询字符串应仅包含预期与文档内容匹配的文本。过滤条件中的任何条件不应在查询中提及。2. 逻辑条件语句由一个或多个比较和逻辑操作语句组成。 - 比较语句的形式为comp(attr, val)其中comp为允许的比较器attr为要应用比较的属性名称val为比较值。 - 逻辑操作语句的形式为op(statement1, statement2, ...)其中op为允许的逻辑运算符statement1, statement2, ... 为比较语句或逻辑操作语句。3. 仅使用上述列出的比较器和逻辑运算符不使用其他运算符。4. 过滤条件仅引用数据源中存在的属性。5. 过滤条件仅使用应用了函数的属性名称及其函数名。6. 处理日期数据类型的值时过滤条件仅使用YYYY - MM - DD格式。7. 过滤条件仅在需要时使用。如果没有要应用的过滤条件filter的值应返回 NO_FILTER。8. limit必须始终为整数类型的值。如果该参数没有意义请留空。请在回答标签内输出符合以下格式的JSON对象json{ query: 文本字符串用于与文档内容进行比较, filter: 用于过滤文档的逻辑条件语句, limit: 要检索的文档数量}样例Data Source:json{{ content: Lyrics of a song, attributes: {{ artist: {{ type: string, description: Name of the song artist }}, length: {{ type: integer, description: Length of the song in seconds }}, genre: {{ type: string, description: The song genre, one of \pop\, \rock\ or \rap\ }} }}}}User Query:What are songs by Taylor Swift or Katy Perry about teenage romance under 3 minutes long in the dance pop genreStructured Request:json{{ query: teenager love, filter: and(or(eq(\\artist\\, \\Taylor Swift\\), eq(\\artist\\, \\Katy Perry\\)), lt(\\length\\, 180), eq(\\genre\\, \\pop\\))}}3.4 索引3.4.1 多表征索引通常我们会为一个文档生成一个向量信息并存储到向量数据库中。如果能从多个维度记录该文档块的信息会大大增加该文档块被检索到的概率**多个维度记录信息等同于为文档块生成多个向量。**通常建立的维度有以下几种**把文档切割成更小的块**将一个文档块继续拆分成更小的块通过检索小的块定位父文档。**存储摘要信息**将一个文档通过LLM生成摘要信息将其和原文档一起存到向量数据库中只返回原文档。**假设性问题**使用 LLM 为每个文档块生成适合回答的假设性问题将其和原文档一起嵌入或者代替返回时返回原文档。整体流程如下3.4.2 分层索引在传统的 RAG 中我们通常依靠检索短的连续文本块来进行检索。但是当我们处理的是长上下文时我们就不能仅仅将文档分块嵌入到其中或者仅仅使用上下文填充所有文档。相反我们希望为 LLM 的长下文找到一种好的最小化分块方法这就是 RAPTOR 的用武之地在 RAPTOR 中均衡了多文档、超长上下文、高准确性、超低成本等特性。RAPTOR 其实是一种用树状组织检索的递归抽象处理技术它采用了一种自下而上的方法通过对文本片段块进行聚类和归纳来形成一种分层结构。构建过程如下图所示对原始文本进行分块拆分成合适的大小对拆分的文档块进行嵌入/向量化向量目前处于高维并将数据存储到向量数据库将高维向量进行降维降低运算成本例如降低成 2 维或者 3 维对降维向量进行聚类找出同一类的文档组合并文档组的文本使用 LLM 对合并文档进行摘要汇总得到新的文本重复2-5的步骤直到最后只剩下一个文档并且该文档的长度符合大小时结束整个流程检索策略分为两种树遍历检索和折叠树检索。其中树遍历检索流程如下所示从树的根节点开始检索问题和文档的余弦相似性选择最相关的前 k 个节点将选择的节点的子节点放入候选集中重复1-3的步骤折叠树检索过程如下图所示将所有的节点都存储在一个向量数据库折叠为一层对原始问题进行检索选择最相关的前 k 个节点3.4.3 切块优化3.4.3.1 递归字符分割器字符分割器就是根据指定分割符将文档切割成多个文档块。它通常会支持控制文档块的大小避免超出大模型上下文限制。除此之外还可以控制块与块之间重叠的内容大小尽可能保留上下文信息。但是在划分的过程中可能会出现文档块过小或者过大的情况这会让 RAG 变得不可控例如文档块可能会变得非常大由于切分依赖找到分隔符如果说两个分割符的间隔非常大就会导致文档块的大小超出限制的值极端的情况下某个块的内容长度可能就超过了 LLM 的上下文长度限制这样这个文本块永远不会被引用到相当于存储了数据但是数据又丢失了。文档块可能会远远小于窗口大小如果两个分割符的间隔非常小则导致文档块的信息密度太低块内容即使填充到 Prompt 中LLM 也无法提取出有用的信息。递归字符分割器对大文档块会使用更多的分隔符使其变小对小文档块进行合并使其保留更多的信息整体流程如下所示3.4.3.2 语义文档分割器文档分割器都是使用特定字符对文本进行拆分这种拆分模式虽然考虑了文档中的上下文切断的问题但是并没有考虑句子之间的语义相似性如果有一篇长文本需要将其分割成语义相关的块以便更好地理解和处理这个时候就需要使用语义文档分割器。整体流程如下所示3.4.3.3 文档转换器除了对文档进行切割的方式对于结构化数据可以直接使用对应结构化的文档转换器如HTML文档转换器、代码文档转换器。除此之外还有两种特殊的转换器**问答转换器**使用大语言模型对文档信息进行提取被生成该信息可能出现问题如{question: 产品发布活动的日期是什么时候, answer: 7月15日}**文档翻译器**其实是将文档转换成另外一种形式的文档比如将英文的论文翻译成中文。3.5 检索3.5.1 ReRank 重排序在完成对问题的改写、不同数据库查询的构建以及路由逻辑、向量数据库索引方面的优化后我们可以考虑进一步优化筛选阶段一般涵盖了重排序、纠正性RAG 两种策略。其中重排序是使用频率最高性价比最高通常与 混合检索一起搭配使用也是目前主流的优化策略。重排序的核心思想见字知其意即对检索到的文档 调整顺序除此之外重排序 一般还会增加剔除无关/多余数据的步骤其中RRF就是重排序中最基础的一种。3.5.2 CRAG纠正性检索增强生成Corrective Retrieval-Augmented GenerationCRAG是一种先进的自然语言处理技术旨在提高检索的生成方法的鲁棒性和准确性。在 CRAG 中引入了一个轻量级的检索评估器来评估检索到的文档的质量并根据评估结果触发不同的知识检索动作以确保生成结果的准确性。整体流程如下图所示检索文档首先基于用户的查询系统执行检索操作以获取相关的文档或信息。评估检索质量CRAG 使用一个轻量级的检索评估器对检索到的每个文档进行质量评估计算出一个量化的置信度分数。**触发知识检索动作**根据置信度分数CRAG 将触发以下二个动作之一正确如果评估器认为文档与查询高度相关将采用该文档进行知识精炼。错误如果文档被评估为不相关或误导性CRAG将重写生成一个新的问题然后利用网络搜索寻找更多知识来源。知识精炼对于评估为正确的文档CRAG将进行知识精炼抽取关键信息并过滤掉无关信息。**问题重写**通过重写一个新的相似问题来优化答案的检索。网络搜索在需要时CRAG会执行网络搜索以寻找更多高质量的知识来源以纠正或补充检索结果。生成文本最后利用经过优化和校正的知识传递给 LLM生成对应文本。评估节点prompt你是一名评分员负责评估检索到的文档与用户问题的相关性。你的任务是根据给定的标准判断文档是否与问题相关并给出“yes”或“no”的二元评分。以下是用户的问题question{{QUESTION}}/question以下是检索到的文档document{{DOCUMENT}}/document判断文档是否相关的标准为如果文档包含与问题相关的关键词或语义含义则判定为相关。首先在思考标签中详细分析文档是否包含与问题相关的关键词或语义含义说明你的分析过程。然后在回答标签中给出最终的二元评分“yes”或“no”。思考[在此详细说明你对文档与问题相关性的分析过程]/思考回答[在此给出“yes”或“no”的评分]/回答问题重写prompt你是一个问题改写器任务是将输入的问题转换为一个更适合网络搜索的优化版本。你需要仔细分析输入问题挖掘其潜在的语义意图和含义。以下是需要改写的问题question{{QUESTION}}/question在改写问题时请遵循以下方法1. 去除不必要的修饰词和语气词使问题简洁明了。2. 提取问题的核心内容突出关键信息。3. 调整语序使问题更符合网络搜索的习惯。请在改写后的问题标签内写下改写后的问题。知识精炼prompt你是一位信息精炼专家负责从给定文档中提取与特定主题直接相关的关键事实、数据、观点和结论过滤掉不相关的背景信息、示例和解释。请仔细阅读以下文档document{{DOCUMENT}}/document需要围绕的主题是topic_name{{TOPIC_NAME}}/topic_name在精炼信息时请遵循以下要求1. 仅提取与主题直接相关的关键事实、数据、观点和结论。2. 过滤掉所有不相关的背景信息、示例和解释。3. 输出尽量保持简洁明了。请在回答标签内写下精炼后的信息。RAG-prompt你是一个负责回答问题的助手。你的任务是利用提供的检索到的上下文来回答问题。如果不知道答案就直接表明不知道。回答最多使用三句话保持简洁。以下是检索到的上下文retrieved_context{{RETRIEVED_CONTEXT}}/retrieved_context这是问题question{{QUESTION}}/question请在回答标签内写下你的答案。回答[在此给出答案]/回答3.6 生成3.6.1 self-RAGSelf-RAG 全称为自我反思 RAG见名知其意即对原始查询、检索的内容、生成的内容进行自我反思根据反思的结果执行不同的操作例如直接输出答案、重新检索、剔除不相关的内容、检测生成内容是否存在幻觉、检测生成内容是否有帮助等可以把 Self-RAG看成是一个拥有自我反思能力的智能体这个智能体主要用来依据相关知识库回复用户问题自我迭代直到输出满意的结果。SELF-RAG训练了一个任意的LLM使其能够在给定任务输入时反思自己的生成过程同时生成任务输出和临时的特殊标记称为反思标记。这些反思标记分为检索和评论标记分别表示了是否需要检索以及生成的质量。流程如下图所示一个 Self-RAG应用主要有三大步骤组成**按需检索Retrieval as Needed**SELF-RAG在需要的情况下通过生成一个检索标记来评估是否需要从相关文本中获取信息。如果需要检索模型会使用检索器Retriever来获取与输入相关的文本段落相反当模型被要求写“写一篇关于Python依赖注入的文章”时大模型会直接生成答案无需进行检索。**以并行方式生成内容Parallel Generation**模型会同时使用 prompt 和检索到的内容来生成模型输出在整个过程中会触发多种类型的反思Reflection涵盖了反思文档是否有关联、反思生成内容是否存在幻觉以及是否能回答问题、。如果不关联则重新检索如果存在幻觉/支持度不够则重新生成**内容的评估和选择**对步骤 2 中生成的内容进行评估并选择最佳文档段落作为输出。判断是否有幻觉prompt你是一名评分员负责评估大语言模型LLM的生成内容是否有一组检索到的事实作为依据。你的任务是根据给定的事实集判断生成内容是否能得到事实的支持并给出“是”或“否”的二元评分。“是”表示答案有事实依据“否”则表示没有。首先请仔细阅读以下检索到的事实集检索到的事实集{{RETRIEVED_FACTS}}/检索到的事实集现在请仔细阅读以下大语言模型的生成内容大语言模型生成内容{{LLM_GENERATION}}/大语言模型生成内容评估这份生成内容时请考虑生成内容中的所有陈述是否都能在检索到的事实集中找到支持。在思考标签中详细分析你的判断依据然后在判断标签中给出“是”或“否”的判断。例如:思考[在此详细说明你做出判断的依据]/思考判断[在此给出“是”或“否”的判断]/判断请现在开始你的评估。答案评估prompt你的任务是评估一个答案是否解决了相应的问题并给出“yes”或“no”的二元评分。“yes”表示答案解决了问题“no”表示答案未解决问题。以下是问题question{{QUESTION}}/question以下是答案answer{{ANSWER}}/answer在评估时请仔细对比答案内容与问题判断答案是否直接回应并解决了问题。请在判断标签内给出你的最终判断使用“yes”或“no”。判断[在此给出“yes”或“no”的判断]/判断AI时代未来的就业机会在哪里答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具到自然语言处理、计算机视觉、多模态等核心领域技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。掌握大模型技能就是把握高薪未来。那么普通人如何抓住大模型风口AI技术的普及对个人能力提出了新的要求在AI时代持续学习和适应新技术变得尤为重要。无论是企业还是个人都需要不断更新知识体系提升与AI协作的能力以适应不断变化的工作环境。因此这里给大家整理了一份《2025最新大模型全套学习资源》包括2025最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题等带你从零基础入门到精通快速掌握大模型技术由于篇幅有限有需要的小伙伴可以扫码获取1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。5. 大模型行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。为什么大家都在学AI大模型随着AI技术的发展企业对人才的需求从“单一技术”转向 “AI行业”双背景。企业对人才的需求从“单一技术”转向 “AI行业”双背景。金融AI、制造AI、医疗AI等跨界岗位薪资涨幅达30%-50%。同时很多人面临优化裁员近期科技巨头英特尔裁员2万人传统岗位不断缩减因此转行AI势在必行这些资料有用吗这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。大模型全套学习资料已整理打包有需要的小伙伴可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询