关注腾讯云开发者,一手技术干货提前解锁 本文系统性地梳理了 RAG(Retrieval-Augmented Generation,检索增强生成)系统从基础到高级的 20 种优化方法,涵盖分块策略、检索增强 、查询优化、生成质量控制等多个维度。 19 CRAG 系统 动态评估并纠正检索质量 20 RL增强RAG 系统 强化学习优化全流程 优化方法选择指南 分块优化:检索不够精准时,优先考虑语义分块(1)、命题分块(13)或切块大小评估 (2)。 检索增强:融合检索(15)性价比高、易落地;图RAG(16)适合概念与关系密集的领域。 查询优化:HyDE(18)对短查询、抽象问句效果好;查询转换(6)适合复杂、多子问题查询。
RAG有哪些相关研究? 在RAG领域,已经有不少研究为这篇论文奠定了基础。 RAG系统的优化: Wang et al. (2024) 提出了优化检索组件的策略,比如改进文档索引和检索算法,以减少延迟并保持准确性。 通过这些步骤,论文系统地研究了RAG系统的架构,并提出了具体的改进措施,为开发和优化RAG系统提供了实证基础和理论支持。 论文做了哪些实验? 使用了ROUGE-1、ROUGE-2、ROUGE-L、嵌入余弦相似度和MAUVE等指标来评估性能差异。 评估了九个研究问题对RAG系统性能的影响。 = model_loader_seq2seq.model self.tokenizer_seq2seq = model_loader_seq2seq.tokenizer
AI工程实践指南:探索LLM/SLM集成,利用MoE和Co-LLM优化代码生成。RAG提供可扩展替代方案,避免静态微调,提升代码质量。 ,同时平衡模型选择、性能优化、安全性和成本效益。 集成 LLM 和 SLM 通过利用两者的优势,将小型语言模型 (SLM) 和大型语言模型 (LLM) 集成到软件工程任务中,可以优化效率。 这种方法通过将较简单的任务分配给较小的模型,将复杂的任务分配给较大的模型来优化效率。 在 AI 软件开发平台中部署 LLM 并使用 RAG 对其进行增强可以提高准确性,消除幻觉并优化资源效率。
本文首发个人博客:llm与RAG的学习与优化 - 黑白の世界欢迎点击,评论前言这是一篇拖延了半年的文章。 提问 RAG程序->>嵌入式模型: 2. 将问题文本向量化 嵌入式模型-->>RAG程序: 返回问题向量 RAG程序->>向量数据库: 3. 2. 检索:优化查询与召回元数据过滤 (Metadata Filtering)通常,我们存储的不仅仅是文本块的向量,还会附带**元数据(Metadata)**,比如文档来源,这段记录对应的实际意义。 这是提升RAG效果最有效的手段之一。结语以上内容大概就是笔者最近在大模型学习,RAG开发与特定领域向量数据库构建业务中的一些总结与优化心得。同时不禁感叹,大模型从22年到如今的发展迅速。 可以看到本文在谈到RAG调优的格式突然有些变化。因为到这里笔者有些懒了,手写了思路与大纲后,直接让AI优化,然后再手改一番。本文还只是单纯的 RAG知识库,或者说向量数据库的相关技术点。
很多做RAG的朋友可能都有过这样的经历:兴冲冲地把系统搭起来满怀信心地让它回答几个问题,结果它要么答非所问,要么一脸无辜地说"抱歉我不知道"。 今天我们就来聊聊RAG 2.0在索引与召回机制上的优化思路,看看怎么才能让RAG真正派上用场。 向量召回的困境与破局之道 向量召回命中率低这个问题,说起来简单,真正解决起来却让人头疼。 未来重排序很可能成为RAG系统的标配组件,就像现在全文索引是必备的一样。 值得注意的是,延迟交互这条路还在快速发展。 结语 RAG 2.0的索引与召回机制优化,本质上是在效果和效率之间找平衡。 多路召回解决了单一检索方式的局限,张量排序在保持效果的同时提升了效率,文档预处理则为整个系统打下了高质量的数据基础。 RAG技术还在快速演进,但无论怎么变,扎实的基础功永远是关键,是吧?
RAG(Retrieval-Augmented Generation)中的检索模块是整个系统的关键环节,直接影响生成结果的质量。为了提升检索的准确性、相关性和效率,业界采用了多种优化策略。 以下是 RAG 检索模块的主要优化方法: 一、向量检索优化 更优的嵌入模型(Embedding Model) 使用领域微调的嵌入模型(如 BGE、E5 等),比通用模型(如 Sentence-BERT) 四、索引与架构优化 分块策略优化 合理的文本分块大小(如 256-512 tokens)。 使用滑动窗口重叠分块,避免信息割裂。 基于语义边界(如段落、标题)进行智能分块。 基于反馈的持续优化 利用用户反馈或生成结果质量信号,迭代优化检索模型或策略。 ,RAG 的检索模块能够更精准地找到与用户问题相关的上下文,为生成模块提供高质量输入,从而显著提升整体系统表现。
本篇来看下 RAG 的架构优化策略 利用知识图谱(KG)进行上下文增强 在现有的向量数据库中,典型的上下文增强可能面临挑战:难以捕捉长距离的关联知识,信息稀疏性高(尤其是当LLM上下文窗口有限时)。 具体的操作流程是:针对用户的查询,运用NL2Cypher技术强化知识图谱;常规的图采样技术用以增进知识图谱的上下文信息。 Self-RAG Self-RAG 是更主动和智能的实现方式: 1、 判断是否需要额外检索事实性信息(retrieve on demand),仅当有需要时才召回; 2、平行处理每个片段:生产prompt 模型可根据具体任务进行定制化调整,它通过增加检索的文段数量来优化对事实准确性的重视,或是在开放性任务中突出创新能力。此模型能决定何时进行文段的检索,或者依据预设的阈值来启动该过程。 小结 本篇文章介绍了 RAG 的架构优化策略,主要包括利用知识图谱进行上下文增强以及让大模型对召回结果进行筛选的方法。
或的逻辑约束 三个选择的或 只有才 更多或 整数可除 多边形组合 固定花费 分段线性 组合型 set covering set packing 食堂定位 地图填色 Julia例子 9数独 概述 整数优化就是线性优化 x1被选中当且仅当x2被选中。 x2或x3被选中,可以都被选中。 x2或x3被选中,不可以都被选中。 对应的IP约束为: x1-x3<=0 x1+x5<=1 x1-x2=0 x2+x3>=1 x2+x3=1 或的逻辑约束 或的逻辑问题,可以用用bigM方法去解决,其思想是通过添加新的变量,将部分约束变成多余的 例如,对于问题 [图片] 或 [图片] (两者可以都出现),y1、y2的定义域是[0,5]。 and column j to j+2 @constraint(m, sum{x[r,c,k], r=i:i+2, c=j:j+2} == 1) end for i = 1:9, j = 1:
在本文中,我们将介绍使用私有数据优化检索增强生成(RAG)的四种策略,可以提升生成任务的质量和准确性。 通过使用一些优化策略,可以有效提升检索增强生成系统的性能和输出质量,使其在实际应用中能够更好地满足需求。 RAG简单回顾 RAG主要有两个过程。 我们先总结RAG过程中的可以优化的关键点: 1、分块方法:优化块大小确保有意义和上下文相关的数据段。 2、嵌入模型:选择和微调模型以改进语义表示。 3、向量搜索方法:选择有效的相似度量和搜索参数。 同时也说明不同类型的RAG任务可能需要特定领域的嵌入模型。 向量搜索方法 向量搜索方法基于相似性度量检索最相关的块。常用的方法包括欧几里得(L2)距离、余弦相似度等。 优化RAG的过程是需要持续的测试的,从失败中学习,以及做出明智的调整。需要采用迭代方法,才能定制出适合自己的AI解决方案,更有效地满足特定需求。
开发者现可在 API 调用之间缓存常用提示词,减少超过 2 倍的延迟,降低高达 90% 的成本(阅读提示词缓存操作指南)。然而,随知识库增长,你需要一个更具扩展性的解决方案。 1 RAG 简介:扩展到更大的知识库对于无法放入上下文窗口的更大知识库,RAG 是典型的解决方案。 但传统 RAG 系统有一个显著的局限:它们往往破坏上下文。传统 RAG 中的上下文问题在传统 RAG 中,文档通常被拆分为较小的块,以便于检索。 2 引入上下文检索上下文检索通过在嵌入前将块特定的解释性上下文添加到每个块中(“上下文嵌入”)以及创建 BM25 索引(“上下文 BM25”)来解决此问题。让我们回到美国证券交易委员会文件的例子。 我们的实验表明,跨多个领域,添加重新排序步骤进一步优化了检索。具体而言,我们发现,重新排序后的上下文嵌入和上下文 BM25 将前 20 个块检索未命中率降低了 67%(5.7% → 1.9%)。
开发者现可在 API 调用之间缓存常用提示词,减少超过 2 倍的延迟,降低高达 90% 的成本(阅读提示词缓存操作指南)。 然而,随知识库增长,你需要一个更具扩展性的解决方案。 但传统 RAG 系统有一个显著的局限:它们往往破坏上下文。 传统 RAG 中的上下文问题 在传统 RAG 中,文档通常被拆分为较小的块,以便于检索。 2 引入上下文检索 上下文检索通过在嵌入前将块特定的解释性上下文添加到每个块中(“上下文嵌入”)以及创建 BM25 索引(“上下文 BM25”)来解决此问题。 回到美国证券交易委员会文件的例子。 实验表明,跨多个领域,添加重新排序步骤进一步优化了检索。 重新排序后的上下文嵌入和上下文 BM25 将前 20 个块检索未命中率降低了 67%(5.7% → 1.9%)。 负责: 中央/分销预订系统性能优化 活动&券等营销中台建设 交易平台及数据中台等架构和开发设计 车联网核心平台-物联网连接平台、大数据平台架构设计及优化 LLM Agent应用开发 区块链应用开发
一个具有更大上下文窗口的新模型问世,社交媒体上便会充斥着“RAG 已死”的宣言。 该 LinkedIn 帖子: 一些值得注意的 RAG“死亡宣告”包括: 2023 年 5 月:Anthropic 的 Claude,上下文窗口达 10 万 token 2024 年 2 月:Google 底线是:您同时需要长上下文 LLM 和 RAG。 但既然“RAG”这个术语似乎如此具有争议性,那我们不妨这样说: 我们不必非得称之为 RAG。 我们可以就叫它 检索 (retrieval)。 RAG 提供了相当于直接翻到相关页面的能力。处理更多 token 不仅更慢,而且极其低效,并且比使用 RAG 精准定位所需信息要昂贵得多。 RAG、微调和大型上下文窗口在 AI 中也是如此。 结论 我们不需要在 RAG 与长上下文窗口、微调或 MCP 之间做出选择。
前面几篇文章已经深入讨论过LangChain、RAG架构的细节,对RAG有了基础的了解,今天重点梳理一下RAG的切片策略;一、什么是RAG切片 给定一个场景,我们有一本非常厚的百科全书 所以,到底什么是RAG切片? RAG切片就是把一份长长的文档(如PDF、Word),合理地切割成一个个小块(Chunks)的过程。 这个过程是整个RAG系统的基石,它直接决定了后续检索和生成答案的质量。 = True # 2. 运行你的RAG管道,评估答案的质量。评估答案是否准确?检索到的上下文是否真正相关? 迭代优化:选择效果最好的那种策略。
补充1:RAG 基本逻辑 补充2:RAG 知识库基本逻辑 一、RAG 介绍 1、LLM 的主要局限性 大语言模型(LLM)尽管功能强大,但仍存在以下明显的局限性: 时效性问题:模型的知识在预训练后就固定了 ,无法自动更新最新信息 知识覆盖局限: 缺乏特定领域或私有领域的专业知识 对组织内部文档、数据等私域信息无法感知 幻觉问题:容易生成看似合理但实际错误的内容,影响可靠性 2、RAG 的价值与优势 2、RAG 的工作原理 RAG 的核心工作流程包含以下步骤: 知识库构建: 收集和处理文档资料 将文档切分为适当大小的文本块 使用向量化模型将文本转换为向量并存储 检索过程: 接收用户查询并向量化 无需对模型本身进行修改 知识库可以随时更新 Fine-tuning: 在预训练模型基础上进行额外训练 直接修改模型权重 知识被固化在模型参数中 2、对比分析 2.1 实施成本 RAG: 初始投入低 向量存储: 选择向量数据库 建立索引结构 设置检索参数 2、实时处理阶段 2.1 查询处理 查询分析: 理解用户意图 提取关键信息 优化查询表达 查询向量化: 使用与文档相同的嵌入模型
在训练过程中,这两个编码器通过最大化正确文档和查询对的相似度来进行优化。 在成功检索到相关文档后,RAG的生成模型接管任务。 RAG工作流程 RAG的工作流程可以分为以下几个步骤: 用户查询:用户提出一个查询,系统首先会将这个查询传递给检索模型。 RAG技术的应用场景 RAG技术在众多实际应用场景中显示出其独特的优势,这是其他单一技术难以比拟的。下面我们详细探讨RAG技术的几个主要应用场景。 RAG技术的优势与挑战 RAG技术在很多方面展示了其显著的优势,但它也面临着一些挑战。以下我们将详细探讨RAG技术的优势和挑战。 有效的优化和并行处理技术可以在一定程度上改善这一问题,但仍需进一步的研究和改进。
您听说过 RAG Logger 吗? 它是一款专为检索增强生成 (RAG) 应用程序设计的开源日志记录工具! 据说它可以作为 LangSmith 的轻量级替代方案,满足 RAG 特定的日志记录需求。 查询、搜索结果、LLM 交互和性能指标可以以 JSON 格式记录。 特点 通过查询跟踪详细了解用户问题! 通过逐步性能监控查找并优化瓶颈! 基于 JSON 的日志格式的结构化存储和每日日志配置使数据管理变得轻松! RAG Logger 为 RAG 应用程序的性能监控和调试提供了强大的支持,对吗? 请参阅此处的详细信息: RAG Logger GitHub 仓库
Neo4j 和 WhyHow.AI 团队探索了图和矢量搜索系统如何协同工作以改进检索增强生成 (RAG) 系统。 使用财务报告 RAG 示例,我们探索了图和矢量搜索之间的响应差异,对两种类型的答案输出进行了基准测试,展示了如何通过图结构优化深度和广度,并探索了为什么将图和矢量搜索结合起来是 RAG 的未来。 是否针对广度或深度进行优化取决于具体业务场景或执行查询的用户角色,并且可以根据具体业务场景或执行查询的用户角色进行定制。 例如,面向消费者的通用研究平台最初可能更有兴趣针对广度搜索进行优化,在发现用户正在深入研究特定主题后,会逐渐针对深度搜索进行优化。 相比之下,律师使用的面向内部的法律 RAG 平台可能从一开始就针对深度搜索进行更多优化。还可以通过允许搜索系统根据用户的风格和偏好针对广度或深度进行优化来实现 RAG 的个性化。
ans ans = s } } } print ans 这个算法的时间复杂度是O(NML),NML是三个数组的长度,最大值都是10万,显然会超时 优化 第二个数组是1,2,4,5,10,13,第三个数组未知,什么清空都有可能。 ); } cout << ans; return 0; } 例4.题目链接:hihoCoder1607 思路 一般的暴力枚举这题肯定是过不了的,数据量太大,那我们就要想办法优化
接下来,本文将聚焦 RAG 技术的优化升级,通过集成 Milvus 向量数据库打造可直接落地的生产级 RAG 应用。 一、优化方向与核心策略 之前,我们归纳了基于 RAG 技术落地实践中存在的核心痛点。在正式开展优化工作之前,需先围绕这些痛点明确对应的优化方向与实施策略,以保障优化方案的精准性与有效性。 编写优化后的 RAG Controller 创建 com.example.weizspringai.controller.RagOptimizedController 类,提供优化后的 RAG 检索接口 测试优化后的 RAG 系统 测试 1:查询复杂问题(需要多片段拼接) 访问 http://localhost:8080/rag/optimized/ask? 总结 本文通过集成 Milvus 向量数据库、优化文本切分策略、升级检索逻辑,成功解决了基础版 RAG 的核心痛点,打造了具备高可用性、高精准度的生产级 RAG 应用。
该论文包含了大部分最新的优化方法。 1. RAG工作流程分解 首先,为了增强对RAG的理解,我们将RAG工作流程分解为三个部分,并对每个部分进行优化以提高整体表现。 目标 我们的目标是通过对不同部分应用各种技术来增强RAG工作流的每个组件能力。 2. Pre-Retrieval优化 Pre-retrieval技术包括提高索引数据的质量和块优化。 Hyde或Query2doc Hyde和Query2doc都是类似的查询重写优化。 混合搜索探索 RAG系统通过智能集成各种技术来优化其性能,包括基于关键字的搜索、语义搜索和向量搜索。 总结 本文讨论了优化RAG管道各部分和增强整体RAG流水线的各种技术。您可以在您的RAG流水线中使用这些技术中的一种或多种,从而使其更加准确和高效。