关注腾讯云开发者,一手技术干货提前解锁 本文系统性地梳理了 RAG(Retrieval-Augmented Generation,检索增强生成)系统从基础到高级的 20 种优化方法,涵盖分块策略、检索增强 、查询优化、生成质量控制等多个维度。 适用场景:上线前调参、不同领域/文档类型单独优化。 CRAG 系统 动态评估并纠正检索质量 20 RL增强RAG 系统 强化学习优化全流程 优化方法选择指南 分块优化:检索不够精准时,优先考虑语义分块(1)、命题分块(13)或切块大小评估(2) 检索增强:融合检索(15)性价比高、易落地;图RAG(16)适合概念与关系密集的领域。 查询优化:HyDE(18)对短查询、抽象问句效果好;查询转换(6)适合复杂、多子问题查询。
因为项目的需要,之前研究了一段时间的RAG,于是本文总结 8 种 RAG 架构,对每种架构进行简要介绍,并用 langchain 实现其参考代码。 1. Agentic RAG 简介: Agentic RAG(智能体RAG)将 AI Agent 的规划和推理能力与 RAG 相结合。 Agent 可以自主分析查询、制定检索策略、选择合适的工具(语义搜索、关键词搜索、计算器等),并根据中间结果进行迭代优化。 ", "行业趋势..."]) answer = arag.query("分析公司未来的发展前景") # 会被识别为OPEN_ENDED print(answer) 8. 它采用经过指令微调的高性能 embedding 模型(如 BGE),结合 Cross-Encoder 重排序、上下文压缩、引用生成和质量验证等多项优化技术。
AI工程实践指南:探索LLM/SLM集成,利用MoE和Co-LLM优化代码生成。RAG提供可扩展替代方案,避免静态微调,提升代码质量。 ,同时平衡模型选择、性能优化、安全性和成本效益。 集成 LLM 和 SLM 通过利用两者的优势,将小型语言模型 (SLM) 和大型语言模型 (LLM) 集成到软件工程任务中,可以优化效率。 这种方法通过将较简单的任务分配给较小的模型,将复杂的任务分配给较大的模型来优化效率。 在 AI 软件开发平台中部署 LLM 并使用 RAG 对其进行增强可以提高准确性,消除幻觉并优化资源效率。
本文首发个人博客:llm与RAG的学习与优化 - 黑白の世界欢迎点击,评论前言这是一篇拖延了半年的文章。 为了从“能用”到“好用”,我们需要一系列的调优手段来优化召回效果。 预处理:优化数据质量分块 (Chunking)将文档切分成合适的、独立的语义单元是RAG中最关键的第一步。分块的质量直接影响向量的质量和检索的精度。**为什么需要分块? 这是提升RAG效果最有效的手段之一。结语以上内容大概就是笔者最近在大模型学习,RAG开发与特定领域向量数据库构建业务中的一些总结与优化心得。同时不禁感叹,大模型从22年到如今的发展迅速。 可以看到本文在谈到RAG调优的格式突然有些变化。因为到这里笔者有些懒了,手写了思路与大纲后,直接让AI优化,然后再手改一番。本文还只是单纯的 RAG知识库,或者说向量数据库的相关技术点。
RAG有哪些相关研究? 在RAG领域,已经有不少研究为这篇论文奠定了基础。 RAG系统的优化: Wang et al. (2024) 提出了优化检索组件的策略,比如改进文档索引和检索算法,以减少延迟并保持准确性。 通过这些步骤,论文系统地研究了RAG系统的架构,并提出了具体的改进措施,为开发和优化RAG系统提供了实证基础和理论支持。 论文做了哪些实验? 对比了有无RAG模块的模型(w/o_RAG)与包含RAG模块的模型之间的事实性表现。 定性分析: 提供了在TruthfulQA和MMLU数据集上由模型变体生成的示例。 基于74次实验的结果,论文总结了关键发现,并提出了对比上下文学习RAG和焦点模式RAG在性能上的优越性。
RAG 和 LoRA 是优化大模型的两种主流且互补的技术, LoRA 是给模型“大脑升级”的技能插件,RAG 是给模型“大脑联网”的外挂知识库, 分别从“模型能力”和“知识获取”两个不同维度,来解决让通用大模型变得更专业的问题 工作原理 RAG的工作流程分为两步: 检索和生成 。 检索 :收到问题时,RAG首先将问题转化为向量,在知识库(如公司内部文档)中搜索最相关的信息片段。 RAG就像是 给大脑配一个秒查资料的"超级助理", 遇到问题时,大脑不自己回忆,而是先让助理去查资料,再将查到的信息一起思考后回答。 RAG的核心优势在于处理 需要大量、最新、具体事实信息 的场景。 因此,建议 以LoRA为主,RAG为辅 。 并行组合 :设计一个决策器来判断任务类型, 对深层任务调用LoRA模块,对知识性任务调用RAG流程 。同时,LoRA生成的结果可作为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 的检索模块能够更精准地找到与用户问题相关的上下文,为生成模块提供高质量输入,从而显著提升整体系统表现。
1、Tomcat8优化 tomcat服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了。 1.1 Tomcat配置优化 1.1.1、部署安装tomcat8 下载并安装: https://tomcat.apache.org/download-80.cgi ? 推荐使用nio,不过,在tomcat8中有最新的nio2,速度更快,建议使用nio2. 注意:这里在测试时,我们使用一个新的tomcat,进行测试,后面再对其进行优化调整,再测试。 1.5、调整JVM参数进行优化 接下来,测试通过jvm参数进行优化,为了测试一致性,依然将最大线程数设置为500, 启用nio2运行模式。
本篇来看下 RAG 的架构优化策略 利用知识图谱(KG)进行上下文增强 在现有的向量数据库中,典型的上下文增强可能面临挑战:难以捕捉长距离的关联知识,信息稀疏性高(尤其是当LLM上下文窗口有限时)。 模型可根据具体任务进行定制化调整,它通过增加检索的文段数量来优化对事实准确性的重视,或是在开放性任务中突出创新能力。此模型能决定何时进行文段的检索,或者依据预设的阈值来启动该过程。 2、首先借助多模态大型模型(如GPT4-V、LLaVA、FUYU-8b)对图像内容进行概要生成。紧接着,对文本、表格和图像的概要进行向量化处理,存入综合向量索引系统。 小结 本篇文章介绍了 RAG 的架构优化策略,主要包括利用知识图谱进行上下文增强以及让大模型对召回结果进行筛选的方法。 自荐我和机械工业出版社联合出版的 《程序员成长手记》 一书:全书分为3大模块、8个章节:从入门程序员到程序员自驱成长,回归纸质阅读,相信能给你一个更全局的程序员视野,提供成长帮助。
在本文中,我们将介绍使用私有数据优化检索增强生成(RAG)的四种策略,可以提升生成任务的质量和准确性。 通过使用一些优化策略,可以有效提升检索增强生成系统的性能和输出质量,使其在实际应用中能够更好地满足需求。 RAG简单回顾 RAG主要有两个过程。 我们先总结RAG过程中的可以优化的关键点: 1、分块方法:优化块大小确保有意义和上下文相关的数据段。 2、嵌入模型:选择和微调模型以改进语义表示。 3、向量搜索方法:选择有效的相似度量和搜索参数。 我们探讨了四种关键优化方向:细化分块方法、选择和微调嵌入模型、选择有效的向量搜索方法以及制作精确的提示。这些组件中的每一个都在提高RAG系统的性能方面起着至关重要的作用。 优化RAG的过程是需要持续的测试的,从失败中学习,以及做出明智的调整。需要采用迭代方法,才能定制出适合自己的AI解决方案,更有效地满足特定需求。
前面几篇文章已经深入讨论过LangChain、RAG架构的细节,对RAG有了基础的了解,今天重点梳理一下RAG的切片策略;一、什么是RAG切片 给定一个场景,我们有一本非常厚的百科全书 所以,到底什么是RAG切片? RAG切片就是把一份长长的文档(如PDF、Word),合理地切割成一个个小块(Chunks)的过程。 这个过程是整个RAG系统的基石,它直接决定了后续检索和生成答案的质量。 军人优惠现役及退役军人凭证件享8折,需至少提前3天登记审批。 块 3 (23 字符): 退役军人凭证件享8折,需至少提前3天登记审批。 运行你的RAG管道,评估答案的质量。评估答案是否准确?检索到的上下文是否真正相关? 迭代优化:选择效果最好的那种策略。
一个具有更大上下文窗口的新模型问世,社交媒体上便会充斥着“RAG 已死”的宣言。 RAG 的初衷 五年前,我在 Meta 基础人工智能研究中心(FAIR,前身为 Facebook 人工智能研究中心)的团队提出了 RAG(Retrieval-Augmented Generation,检索增强生成 底线是:您同时需要长上下文 LLM 和 RAG。 但既然“RAG”这个术语似乎如此具有争议性,那我们不妨这样说: 我们不必非得称之为 RAG。 我们可以就叫它 检索 (retrieval)。 RAG 提供了相当于直接翻到相关页面的能力。处理更多 token 不仅更慢,而且极其低效,并且比使用 RAG 精准定位所需信息要昂贵得多。 RAG、微调和大型上下文窗口在 AI 中也是如此。 结论 我们不需要在 RAG 与长上下文窗口、微调或 MCP 之间做出选择。
补充1:RAG 基本逻辑 补充2:RAG 知识库基本逻辑 一、RAG 介绍 1、LLM 的主要局限性 大语言模型(LLM)尽管功能强大,但仍存在以下明显的局限性: 时效性问题:模型的知识在预训练后就固定了 系统时,需要注意以下几点: 数据质量控制: 确保知识库数据的准确性和时效性 定期更新和维护知识库内容 建立数据质量审核机制 性能优化: 选择合适的向量数据库 优化检索策略和参数 合理设置缓存机制 系统监控: 跟踪系统响应时间 监控检索准确率 收集用户反馈并持续优化 三、RAG vs Fine-tuning(微调) 1、两种方法的基本概念 RAG: 通过实时检索相关信息来增强模型输出 : 格式化输出 添加引用来源 质量检查 3、性能优化策略 3.1 检索优化 索引优化: 选择合适的索引算法 定期重建索引 优化检索参数 缓存策略: 热点查询缓存 结果集缓存 智能预加载 资源调优: 硬件配置优化 负载均衡 服务扩缩容 4、图示
开发者通常通过 RAG扩展 AI 模型的知识。RAG 是一种从知识库中检索相关信息并将其附加到用户提示词中的方法,从而显著提升模型的回答能力。 1 RAG 简介:扩展到更大的知识库对于无法放入上下文窗口的更大知识库,RAG 是典型的解决方案。 但传统 RAG 系统有一个显著的局限:它们往往破坏上下文。传统 RAG 中的上下文问题在传统 RAG 中,文档通常被拆分为较小的块,以便于检索。 假设每个块 800 个 token,文档 8,000 个 token,50 个 token 的上下文指令,以及每个块 100 个 token 的上下文,生成上下文化块的一次性成本为每百万文档 token 我们的实验表明,跨多个领域,添加重新排序步骤进一步优化了检索。具体而言,我们发现,重新排序后的上下文嵌入和上下文 BM25 将前 20 个块检索未命中率降低了 67%(5.7% → 1.9%)。
如果服务器只运行一个 Tomcat: 机子内存如果是 8G,一般 PermSize 配置是主要保证系统能稳定起来就行: JAVA_OPTS="-Dfile.encoding=UTF-8 -server 2 -XX:+DisableExplicitGC" 机子内存如果是 16G,一般 PermSize 配置是主要保证系统能稳定起来就行: JAVA_OPTS="-Dfile.encoding=UTF-8 2 -XX:+DisableExplicitGC" 机子内存如果是 32G,一般 PermSize 配置是主要保证系统能稳定起来就行: JAVA_OPTS="-Dfile.encoding=UTF-8
系列说明:这是RAG工程化系列第二篇。第一篇我们拆了NaiveRAG的8颗雷,得出一个反直觉的结论:90%的"模型不够好",其实是"工程没做好"。 每一阶段:有独立的优化目标有独立的评测指标有独立的失败模式可以独立替换和升级它在NaiveRAG的"线性三段式"基础上,明确划分三个新阶段:Pre-Retrieval(检索前)、Retrieval(检索 模型,几乎是ROI最低的优化Hybrid+Reranker组合的收益,远大于单独使用任何一个这就是为什么我说AdvancedRAG是RAG演进光谱上"最值钱的一站"——投入最小,回报最大。 实际工业表现:场景HyDE收益学术问答(NQ、HotpotQA)+5-8%(论文数据)通用领域问答+2-3%企业领域问答-2%到+3%(高方差)长尾问题常常变差[MODERATECONFIDENCE]我的经验 在单引擎实现(避免双写一致性)BM25tokenizer适配语言(中文用ik_max_word+ik_smart)Vector和BM25并行执行(不要串行)RRF的k值在GoldenSet上gridsearch优化单路超时降级
1 RAG 简介:扩展到更大的知识库 对于无法放入上下文窗口的更大知识库,RAG 是典型的解决方案。 但传统 RAG 系统有一个显著的局限:它们往往破坏上下文。 传统 RAG 中的上下文问题 在传统 RAG 中,文档通常被拆分为较小的块,以便于检索。 假设每个块 800 个 token,文档 8,000 个 token,50 个 token 的上下文指令,以及每个块 100 个 token 的上下文,生成上下文化块的一次性成本为每百万文档 token 实验表明,跨多个领域,添加重新排序步骤进一步优化了检索。 重新排序后的上下文嵌入和上下文 BM25 将前 20 个块检索未命中率降低了 67%(5.7% → 1.9%)。 负责: 中央/分销预订系统性能优化 活动&券等营销中台建设 交易平台及数据中台等架构和开发设计 车联网核心平台-物联网连接平台、大数据平台架构设计及优化 LLM Agent应用开发 区块链应用开发
在训练过程中,这两个编码器通过最大化正确文档和查询对的相似度来进行优化。 在成功检索到相关文档后,RAG的生成模型接管任务。 RAG工作流程 RAG的工作流程可以分为以下几个步骤: 用户查询:用户提出一个查询,系统首先会将这个查询传递给检索模型。 RAG技术的应用场景 RAG技术在众多实际应用场景中显示出其独特的优势,这是其他单一技术难以比拟的。下面我们详细探讨RAG技术的几个主要应用场景。 RAG技术的优势与挑战 RAG技术在很多方面展示了其显著的优势,但它也面临着一些挑战。以下我们将详细探讨RAG技术的优势和挑战。 有效的优化和并行处理技术可以在一定程度上改善这一问题,但仍需进一步的研究和改进。
RAG 分块重叠提升了召回率但增加了隐藏成本,比如说索引膨胀、Embedding 开销、延迟、重排序负载和评估漂移。 本文将总结的八项 RAG 分块重叠隐藏的成本,以及如何判断什么时候重叠真正有用,什么时候只是花钱买心安。 8、运维复杂度上升:大索引威胁系统可靠性 更大的索引、更高的单次查询计算量,带来的不仅是费用,还有可靠性风险。 因为索引构建慢了所以部署和回滚窗口会拉长,内存尖峰也更频繁。 如果你正在调优 RAG,建议做一个实验:在增大 overlap 的同时,强制启用去重和每文档上限。如果这套组合能以更少的冗余拿到大部分质量收益。 by Velorum