关注腾讯云开发者,一手技术干货提前解锁 本文系统性地梳理了 RAG(Retrieval-Augmented Generation,检索增强生成)系统从基础到高级的 20 种优化方法,涵盖分块策略、检索增强 、查询优化、生成质量控制等多个维度。 适用场景:上线前调参、不同领域/文档类型单独优化。 17 分层检索 检索 摘要→详细的两级检索 18 HyDE 查询 假设文档嵌入替代查询嵌入 19 CRAG 系统 动态评估并纠正检索质量 20 RL增强RAG 系统 强化学习优化全流程 优化方法选择指南 检索增强:融合检索(15)性价比高、易落地;图RAG(16)适合概念与关系密集的领域。 查询优化:HyDE(18)对短查询、抽象问句效果好;查询转换(6)适合复杂、多子问题查询。
RAG有哪些相关研究? 在RAG领域,已经有不少研究为这篇论文奠定了基础。 RAG系统的优化: Wang et al. (2024) 提出了优化检索组件的策略,比如改进文档索引和检索算法,以减少延迟并保持准确性。 通过这些步骤,论文系统地研究了RAG系统的架构,并提出了具体的改进措施,为开发和优化RAG系统提供了实证基础和理论支持。 论文做了哪些实验? 对比了有无RAG模块的模型(w/o_RAG)与包含RAG模块的模型之间的事实性表现。 定性分析: 提供了在TruthfulQA和MMLU数据集上由模型变体生成的示例。 基于74次实验的结果,论文总结了关键发现,并提出了对比上下文学习RAG和焦点模式RAG在性能上的优越性。
本文首发个人博客:llm与RAG的学习与优化 - 黑白の世界欢迎点击,评论前言这是一篇拖延了半年的文章。 为了从“能用”到“好用”,我们需要一系列的调优手段来优化召回效果。 预处理:优化数据质量分块 (Chunking)将文档切分成合适的、独立的语义单元是RAG中最关键的第一步。分块的质量直接影响向量的质量和检索的精度。**为什么需要分块? 这是提升RAG效果最有效的手段之一。结语以上内容大概就是笔者最近在大模型学习,RAG开发与特定领域向量数据库构建业务中的一些总结与优化心得。同时不禁感叹,大模型从22年到如今的发展迅速。 可以看到本文在谈到RAG调优的格式突然有些变化。因为到这里笔者有些懒了,手写了思路与大纲后,直接让AI优化,然后再手改一番。本文还只是单纯的 RAG知识库,或者说向量数据库的相关技术点。
AI工程实践指南:探索LLM/SLM集成,利用MoE和Co-LLM优化代码生成。RAG提供可扩展替代方案,避免静态微调,提升代码质量。 ,同时平衡模型选择、性能优化、安全性和成本效益。 集成 LLM 和 SLM 通过利用两者的优势,将小型语言模型 (SLM) 和大型语言模型 (LLM) 集成到软件工程任务中,可以优化效率。 这种方法通过将较简单的任务分配给较小的模型,将复杂的任务分配给较大的模型来优化效率。 在 AI 软件开发平台中部署 LLM 并使用 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 和 LoRA 是优化大模型的两种主流且互补的技术, LoRA 是给模型“大脑升级”的技能插件,RAG 是给模型“大脑联网”的外挂知识库, 分别从“模型能力”和“知识获取”两个不同维度,来解决让通用大模型变得更专业的问题 工作原理 RAG的工作流程分为两步: 检索和生成 。 检索 :收到问题时,RAG首先将问题转化为向量,在知识库(如公司内部文档)中搜索最相关的信息片段。 RAG就像是 给大脑配一个秒查资料的"超级助理", 遇到问题时,大脑不自己回忆,而是先让助理去查资料,再将查到的信息一起思考后回答。 RAG的核心优势在于处理 需要大量、最新、具体事实信息 的场景。 因此,建议 以LoRA为主,RAG为辅 。 并行组合 :设计一个决策器来判断任务类型, 对深层任务调用LoRA模块,对知识性任务调用RAG流程 。同时,LoRA生成的结果可作为RAG的检索源,形成正向循环。
本篇来看下 RAG 的架构优化策略 利用知识图谱(KG)进行上下文增强 在现有的向量数据库中,典型的上下文增强可能面临挑战:难以捕捉长距离的关联知识,信息稀疏性高(尤其是当LLM上下文窗口有限时)。 Self-RAG 的重要创新 Self-RAG 的 Reflection tokens (反思字符) 通过生成反思字符这一特殊标记来检查输出。 Self-RAG 的推理过程 Self-RAG 通过运用反思性标记对自己的输出进行自评,这使得它在推理过程中展现出调整与适应能力。 模型可根据具体任务进行定制化调整,它通过增加检索的文段数量来优化对事实准确性的重视,或是在开放性任务中突出创新能力。此模型能决定何时进行文段的检索,或者依据预设的阈值来启动该过程。 小结 本篇文章介绍了 RAG 的架构优化策略,主要包括利用知识图谱进行上下文增强以及让大模型对召回结果进行筛选的方法。
在本文中,我们将介绍使用私有数据优化检索增强生成(RAG)的四种策略,可以提升生成任务的质量和准确性。 通过使用一些优化策略,可以有效提升检索增强生成系统的性能和输出质量,使其在实际应用中能够更好地满足需求。 RAG简单回顾 RAG主要有两个过程。 我们先总结RAG过程中的可以优化的关键点: 1、分块方法:优化块大小确保有意义和上下文相关的数据段。 2、嵌入模型:选择和微调模型以改进语义表示。 3、向量搜索方法:选择有效的相似度量和搜索参数。 我们探讨了四种关键优化方向:细化分块方法、选择和微调嵌入模型、选择有效的向量搜索方法以及制作精确的提示。这些组件中的每一个都在提高RAG系统的性能方面起着至关重要的作用。 优化RAG的过程是需要持续的测试的,从失败中学习,以及做出明智的调整。需要采用迭代方法,才能定制出适合自己的AI解决方案,更有效地满足特定需求。
开发者通常通过 RAG扩展 AI 模型的知识。RAG 是一种从知识库中检索相关信息并将其附加到用户提示词中的方法,从而显著提升模型的回答能力。 但传统的 RAG 解决方案在编码信息时会丢失上下文,导致系统无法从知识库中检索到相关信息。 1 RAG 简介:扩展到更大的知识库对于无法放入上下文窗口的更大知识库,RAG 是典型的解决方案。 但传统 RAG 系统有一个显著的局限:它们往往破坏上下文。传统 RAG 中的上下文问题在传统 RAG 中,文档通常被拆分为较小的块,以便于检索。 我们的实验表明,跨多个领域,添加重新排序步骤进一步优化了检索。具体而言,我们发现,重新排序后的上下文嵌入和上下文 BM25 将前 20 个块检索未命中率降低了 67%(5.7% → 1.9%)。
开发者通常通过 RAG扩展 AI 模型的知识。RAG 是一种从知识库中检索相关信息并将其附加到用户提示词中的方法,从而显著提升模型的回答能力。 1 RAG 简介:扩展到更大的知识库 对于无法放入上下文窗口的更大知识库,RAG 是典型的解决方案。 但传统 RAG 系统有一个显著的局限:它们往往破坏上下文。 传统 RAG 中的上下文问题 在传统 RAG 中,文档通常被拆分为较小的块,以便于检索。 实验表明,跨多个领域,添加重新排序步骤进一步优化了检索。 重新排序后的上下文嵌入和上下文 BM25 将前 20 个块检索未命中率降低了 67%(5.7% → 1.9%)。 负责: 中央/分销预订系统性能优化 活动&券等营销中台建设 交易平台及数据中台等架构和开发设计 车联网核心平台-物联网连接平台、大数据平台架构设计及优化 LLM Agent应用开发 区块链应用开发
前面几篇文章已经深入讨论过LangChain、RAG架构的细节,对RAG有了基础的了解,今天重点梳理一下RAG的切片策略;一、什么是RAG切片 给定一个场景,我们有一本非常厚的百科全书 RAG 的切片策略,就是帮我们把这本厚厚的书,提前拆分成一页一页、或者一段一段的“小纸片”,并给这些小纸片做好详细的“目录”和“标签”,做成一个高效的“索引”或者“目录”,当AI助手需要回答问题时,它不需要去翻整本书 所以,到底什么是RAG切片? RAG切片就是把一份长长的文档(如PDF、Word),合理地切割成一个个小块(Chunks)的过程。 这个过程是整个RAG系统的基石,它直接决定了后续检索和生成答案的质量。 运行你的RAG管道,评估答案的质量。评估答案是否准确?检索到的上下文是否真正相关? 迭代优化:选择效果最好的那种策略。
系列说明:这是RAG工程化系列第一篇,目标是把四代RAG(NaiveAdvancedModular/Agentic)逐一拆透。每篇聚焦一种范式,讲它真正能做什么、做不到什么、工程上怎么落地。 一、NaiveRAG到底是什么:先把定义讲清楚,否则后面全是糊涂账打开任何一篇RAG教程,你会看到几乎一样的描述:"RAG就是先检索再生成"。这种描述等于没说。 NaiveRAG的严格定义是:Indexing+Retrieval+Generation三段式最小闭环,且每一段都没有任何针对性优化。 但这一行决定了你的RAG准确率上限。PDF是NaiveRAG的头号杀手。 留给读者的两个问题:你正在做的RAG项目,8颗雷里你已经踩了几颗?
在训练过程中,这两个编码器通过最大化正确文档和查询对的相似度来进行优化。 在成功检索到相关文档后,RAG的生成模型接管任务。 RAG工作流程 RAG的工作流程可以分为以下几个步骤: 用户查询:用户提出一个查询,系统首先会将这个查询传递给检索模型。 RAG技术的应用场景 RAG技术在众多实际应用场景中显示出其独特的优势,这是其他单一技术难以比拟的。下面我们详细探讨RAG技术的几个主要应用场景。 RAG技术的优势与挑战 RAG技术在很多方面展示了其显著的优势,但它也面临着一些挑战。以下我们将详细探讨RAG技术的优势和挑战。 有效的优化和并行处理技术可以在一定程度上改善这一问题,但仍需进一步的研究和改进。
一个具有更大上下文窗口的新模型问世,社交媒体上便会充斥着“RAG 已死”的宣言。 RAG 的初衷 五年前,我在 Meta 基础人工智能研究中心(FAIR,前身为 Facebook 人工智能研究中心)的团队提出了 RAG(Retrieval-Augmented Generation,检索增强生成 底线是:您同时需要长上下文 LLM 和 RAG。 但既然“RAG”这个术语似乎如此具有争议性,那我们不妨这样说: 我们不必非得称之为 RAG。 我们可以就叫它 检索 (retrieval)。 RAG 提供了相当于直接翻到相关页面的能力。处理更多 token 不仅更慢,而且极其低效,并且比使用 RAG 精准定位所需信息要昂贵得多。 RAG、微调和大型上下文窗口在 AI 中也是如此。 结论 我们不需要在 RAG 与长上下文窗口、微调或 MCP 之间做出选择。
您听说过 RAG Logger 吗? 它是一款专为检索增强生成 (RAG) 应用程序设计的开源日志记录工具! 据说它可以作为 LangSmith 的轻量级替代方案,满足 RAG 特定的日志记录需求。 查询、搜索结果、LLM 交互和性能指标可以以 JSON 格式记录。 特点 通过查询跟踪详细了解用户问题! 通过逐步性能监控查找并优化瓶颈! 基于 JSON 的日志格式的结构化存储和每日日志配置使数据管理变得轻松! RAG Logger 为 RAG 应用程序的性能监控和调试提供了强大的支持,对吗? 请参阅此处的详细信息: RAG Logger GitHub 仓库
补充1:RAG 基本逻辑 补充2:RAG 知识库基本逻辑 一、RAG 介绍 1、LLM 的主要局限性 大语言模型(LLM)尽管功能强大,但仍存在以下明显的局限性: 时效性问题:模型的知识在预训练后就固定了 系统时,需要注意以下几点: 数据质量控制: 确保知识库数据的准确性和时效性 定期更新和维护知识库内容 建立数据质量审核机制 性能优化: 选择合适的向量数据库 优化检索策略和参数 合理设置缓存机制 系统监控: 跟踪系统响应时间 监控检索准确率 收集用户反馈并持续优化 三、RAG vs Fine-tuning(微调) 1、两种方法的基本概念 RAG: 通过实时检索相关信息来增强模型输出 : 格式化输出 添加引用来源 质量检查 3、性能优化策略 3.1 检索优化 索引优化: 选择合适的索引算法 定期重建索引 优化检索参数 缓存策略: 热点查询缓存 结果集缓存 智能预加载 资源调优: 硬件配置优化 负载均衡 服务扩缩容 4、图示
接下来,本文将聚焦 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技术包括提高索引数据的质量和块优化。 混合搜索探索 RAG系统通过智能集成各种技术来优化其性能,包括基于关键字的搜索、语义搜索和向量搜索。 Post-Retrieval优化 a) 重排 在将检索结果发送给LLM之前对其重新排序可以显著提高RAG的性能。 向量相似性搜索的高分并不意味着它就具有最高的相关性。 总结 本文讨论了优化RAG管道各部分和增强整体RAG流水线的各种技术。您可以在您的RAG流水线中使用这些技术中的一种或多种,从而使其更加准确和高效。
当以黑盒方式来评估 RAG 应用时,我们看不到 RAG 应用的内部,只能从输入给 RAG 应用的信息和它返回的信息来评估 RAG 的效果。 对于一般的 RAG 系统,我们只能访问这三个信息:用户提问(User's query)、RAG 系统召回的引用上下文(retrieved contexts)、RAG 系统的回答(RAG's response 我们使用这三个信息来评估 RAG 应用的效果,黑盒方式是一种端到端的评估方式,也比较适用于评估闭源的 RAG 应用。 当以白盒方式来评估 RAG 应用时,我们能看到 RAG 应用的内部所有流程。 白盒方式可以用来评估开源 RAG 应用,或者提升自研 RAG 应用。 02. )、RAG 系统的回答(RAG's response)。