当前位置: 首页 > article >正文

论文解读:迄今为止最好的 RAG 技术栈

概述这篇文章深入探讨了 Wang 等人在 2024 年的研究旨在为构建高效的检索增强生成RAG系统提供最佳实践建议。文章由 Towards AI 的联合创始人兼 CTO Louis-Francois 撰写分析了 RAG 系统的核心组件与策略。主要内容摘要查询分类通过分类任务决定是否需要进行检索确保系统只在必要时检索外部数据。数据分块为数据选择合适的块大小至关重要理想的块大小在 256 至 512 个 token 之间有助于减少噪音和提高效率。元数据与混合搜索元数据如标题或关键词与混合搜索结合语义搜索和传统关键词搜索 BM25可显著提升检索精度。嵌入模型选择挑选适合的嵌入模型文章推荐使用像 FlagEmbedding 这样性能与效率均衡的模型。向量数据库使用像 Milvus 这样的高性能向量数据库来处理大量检索请求确保系统的长期稳定性。查询转换在检索前进行查询转换以提高准确性如通过查询重写或分解复杂问题改进系统的检索表现。重新排序与文档打包在文档检索后通过 reranking 技术提升结果的相关性并进行文档重新打包以优化信息呈现。摘要生成之前进行文档摘要有助于去除冗余信息降低生成成本。微调生成模型通过对生成模型进行微调提高模型处理复杂查询和去除无关信息的能力。多模态检索整合多模态技术处理图像查询并基于类似内容进行检索进一步提高系统的响应准确性。意见Wang 等人的研究被认为是 RAG 系统的“洞察金矿”。查询分类对于确定何时需要检索至关重要。数据的最佳块大小介于 256 到 512 个令牌之间但可能因数据集而异。元数据和混合搜索是高效检索的首选而不是 HyDE 等更复杂的方法。建议使用 FlagEmbedding 的 LLM因为它在性能和大小之间取得了平衡。Monot5 是最受欢迎的重新排名模型因为它在性能和效率之间取得了平衡。建议以“相反”的顺序重新打包文档以改进 LLM 的生成过程。像 Recomp 这样的摘要工具对于减少提示长度和成本很有价值。使用相关文档和随机文档的混合来微调生成器有利于处理不相关的信息。多模态检索是处理文本和图像的系统的一个重要考虑因素。该论文承认了未来研究的局限性和领域例如猎犬和发电机的联合训练。探索每个组件大家早上好我是 Towards AI 的联合创始人兼首席技术官 Louis-Francois今天我们正在深入研究可能是最好的检索增强一代 RAG 技术栈——这要归功于 Wang 等人在 2024 年的一项出色研究。这是构建最佳 RAG 系统的见解金矿我在这里为您分解它。那么是什么让 RAG 系统真正成为顶级的系统呢是组件对吧让我们回顾一下最好的组件以及它们的工作原理这样您也可以使您的 RAG 系统成为顶级系统并获得多模式奖励。查询分类让我们从Query Classification开始。并非所有查询都是平等的 — 有些查询甚至不需要检索因为大型语言模型已经知道答案。例如如果你问 “谁是梅西”LLM 可以满足您的需求。无需检索Wang 等人创建了 15 个任务类别确定查询是否提供了足够的信息或是否需要检索。他们训练了一个二元分类器来分隔任务在不需要检索的地方标记为“sufficient”在需要检索时标记为“insufficient”。在此图像中黄色表示不需要红色表示去获取一些文档分块接下来分块。这里的挑战是为您的数据找到完美的数据块大小。太长了您会增加不必要的噪音和成本。太短了你错过了上下文。Wang 等人发现 256 到 512 个标记之间的块大小效果最好。但请记住这因数据而异 - 因此请务必运行您的评估专业提示使用small2big从小块开始进行搜索然后移动到较大的块进行生成或尝试滑动窗口以重叠块之间的标记。元数据和混合搜索利用您的元数据添加标题、关键字甚至假设问题等内容。将其与Hybrid Search配对它结合了向量搜索用于语义匹配和用于传统关键字搜索的优秀 BM25您就是金子。HyDE生成伪文档以增强检索很酷可以带来更好的结果但效率非常低。现在坚持使用 Hybrid Search——它取得了更好的平衡尤其是在原型设计方面。嵌入模型选择正确的嵌入模型就像找到一双完美的鞋子。你不想要打网球的足球鞋。来自 FlagEmbedding 的 LLM 最适合这项研究——性能和大小的完美平衡。不太大也不太小——恰到好处。请注意他们只测试了开源模型因此 Cohere 和 OpenAI 被淘汰出局。否则Cohere 可能是您最好的选择。矢量数据库现在是数据库。对于长期使用Milvus是他们的首选矢量数据库。它是开源的、可靠的是保持检索系统平稳运行的绝佳选择。我还在下面的描述中链接了它。查询转换在检索之前您必须转换这些用户查询无论是通过查询重写以使其清晰还是通过查询分解将复杂问题分解为更小的问题并检索每个子问题甚至生成伪文档如HyDE所做的_并在检索过程中使用它们此步骤对于提高准确性都至关重要。请记住更多的转换可能会增加延迟尤其是 HyDE…重新排名现在我们来谈谈Reranking。检索文档后您需要确保最相关的文档位于文档堆的顶部。这就是重新排名的用武之地。在这项研究中monoT5脱颖而出成为平衡性能和效率的最佳选择。它微调 T5 模型以根据文档与查询的相关性对文档重新排序确保最佳匹配优先。RankLLaMA总体性能最好但TILDEv2最快。如果您有兴趣论文中提供了有关每个的更多信息。文档重新打包重新排名后您需要进行一些Document Repacking。Wang 等人推荐了“反向”方法其中文档按相关性升序排列。Liu 等人2024 年发现这种方法将相关信息放在开头或结尾可以提高性能。重新打包优化了信息呈现给 LLM 的方式以便在重新排序过程发生后生成以帮助 LLM 更好地以更好的顺序理解提供的信息而不是理论上的相关顺序。综述然后在调用 LLM您希望使用Summarization来减少绒毛。发送到 LLM成本高昂而且通常是不必要的。摘要将有助于删除冗余或不必要的信息并降低成本。使用Recomp等工具进行抽取压缩以选择有用的句子并使用抽象压缩来综合来自多个文档的信息。但是如果速度是您的首要任务您可以考虑跳过此步骤。微调生成器最后您是否应该微调用于生成的 LLM绝对使用相关文档和随机文档的混合进行微调可以提高生成器处理不相关信息的能力。它使模型更加健壮并有助于它给出更好的整体响应。论文中没有提供确切的比率但结果很明确微调是值得的不过这显然也取决于您的域。多模态处理图像实施多模式检索。对于文本到图像在数据库中查询相似图像可以加快该过程。在图像到文本中匹配相似的图像可检索准确的预存储字幕。这一切都与接地气有关——检索真实的、经过验证的信息。结论简而言之Wang 等人的这篇论文为我们提供了一个构建高效 RAG 系统的坚实蓝图。但请记住这只是一篇论文并未涵盖 RAG 管道的各个方面。例如猎犬和发电机的联合训练没有被探索这可能会释放更多的潜力。由于成本原因他们也没有深入研究分块技术但这是一个值得探索的方向。我强烈建议您查看完整的论文以获取更多信息。我们最近还出版了《Building LLMs for Production》一书其中充满了 RAG 和微调见解、技巧和实际示例可帮助您构建和改进基于 LLM 的系统。该链接也位于下面的实体书和电子书版本的描述中。一如既往感谢您的阅读。如果您觉得此分析有帮助或有任何评论请在下面的评论中告诉我我们下次见引用用于生产的构建LLMshttps://amzn.to/4bqYU9bWang et al. 2024论文参考https://arxiv.org/abs/2407.01219LLM嵌入模型https://github.com/FlagOpen/FlagEmbedding/tree/master/FlagEmbedding/llm_embedderMilvusvector databasehttps://milvus.io/Liu et al. 2024文档重新包装 https://arxiv.org/abs/2307.03172Recomp摘要工具https://github.com/carriex/recompRagLlmFine Tuning人工智能嵌入

相关文章:

论文解读:迄今为止最好的 RAG 技术栈

概述 这篇文章深入探讨了 Wang 等人在 2024 年的研究,旨在为构建高效的检索增强生成(RAG)系统提供最佳实践建议。文章由 Towards AI 的联合创始人兼 CTO Louis-Francois 撰写,分析了 RAG 系统的核心组件与策略。 主要内容摘要查询…...

告别手动Merge!用这个Shell脚本一键搞定P4文件冲突(附时间戳备份)

告别手动Merge!用Shell脚本自动化P4文件冲突解决方案 每次提交代码前发现文件冲突时,那种熟悉的烦躁感又涌上心头——又要停下手中的工作,打开比对工具,逐行检查差异,小心翼翼地合并改动。作为长期使用Perforce进行版本…...

【YOLOv11】063、YOLOv11与神经架构搜索:用NAS自动寻找最优结构

从一次失败的调参说起 上周在部署YOLOv11到边缘设备时遇到性能瓶颈:模型在Jetson Orin上跑不到实时帧率。手动调整了卷积核尺寸、通道数、注意力模块位置,折腾两天,精度掉了3个点,速度却只提升5%。这种“盲人摸象”式的结构优化让我开始重新审视:为什么不让算法自己寻找最…...

BiliTools:2026年最全能的哔哩哔哩资源管理工具箱完整指南

BiliTools:2026年最全能的哔哩哔哩资源管理工具箱完整指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...

基于vue的Python语言程序设计在线学习系统[vue]-计算机毕业设计源码+LW文档

摘要:随着信息技术的飞速发展和互联网的普及,在线学习已成为教育领域的重要趋势。Python语言作为一门简洁、易学且功能强大的编程语言,在众多领域有着广泛应用。为了提高Python语言程序设计的学习效果和效率,本文基于Vue.js框架设…...

【YOLOv11】062、YOLOv11模型硬件感知优化:针对特定硬件架构的优化

上周在部署YOLOv11到边缘设备时遇到了一个典型问题:在服务器上推理速度能达到30FPS的模型,搬到Jetson Orin上直接掉到了8FPS。更诡异的是,GPU利用率始终上不去,CPU倒是忙得不行。盯着nvidia-smi看了半天才反应过来——这模型压根没跟硬件对上话。 硬件不是黑盒子 很多人把…...

基于vue的物业管理系统[vue]-计算机毕业设计源码+LW文档

摘要:随着城市化进程的加速,物业管理在现代社区管理中扮演着越来越重要的角色。为了提高物业管理的效率和质量,开发一个高效、便捷的物业管理系统具有重要的现实意义。本文基于Vue.js框架,设计并实现了一个功能较为完善的物业管理…...

从‘双曲线’到‘高阶项’:聊聊动校正(NMO)的演进与长排列勘探下的四阶校正实战

从双曲线假设到高阶校正:动校正技术演进与长排列勘探实战解析 当我们在戈壁滩上布设超过8公里的超长排列接收地震信号时,传统双曲线动校正模型突然变得力不从心——远道数据始终无法完美拉平,就像试图用直尺测量弯曲的河岸。这种困境在深海勘…...

别再花钱买NVR了!用iSpy+旧电脑搭建家庭监控中心,保姆级避坑指南

零成本打造智能监控中心:iSpy旧电脑实战指南 家里那台积灰的旧笔记本终于有了用武之地。上周邻居家失窃后,我开始研究家庭监控方案,却被专业NVR设备动辄上千元的价格吓退。直到发现iSpy这款开源神器,配合闲置电脑就能搭建功能完备…...

嵌入式开发第一步:在VMware里为Ubuntu 22.04.3 LTS做好这些基础配置(含root、换源)

嵌入式开发环境搭建:Ubuntu 22.04 LTS基础配置全指南 当你刚完成Ubuntu 22.04 LTS的安装,兴奋地准备开始嵌入式Linux开发之旅时,可能会发现系统还远未准备好迎接复杂的交叉编译和内核开发工作。本文将带你完成那些容易被忽略却至关重要的基础…...

猫抓浏览器扩展:一站式解决网页视频音频资源下载难题

猫抓浏览器扩展:一站式解决网页视频音频资源下载难题 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否经常遇到这样的困扰&#x…...

告别配置烦恼:用vcpkg在VS2022中一键安装SFML 2.6.0

现代C开发革命:用vcpkg在VS2022中极速部署SFML 2.6.0 当你在深夜赶工一个游戏原型,或是为图形学作业调试渲染管线时,是否曾被繁琐的第三方库配置折磨到崩溃?手动下载、解压、配置包含路径、链接库文件、处理动态链接库...这些重复…...

计科毕业设计简单的题目怎么选

0 选题推荐 - 云计算篇 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应…...

Source Han Serif CN:企业级字体架构设计与技术决策框架

Source Han Serif CN:企业级字体架构设计与技术决策框架 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 中文字体技术栈的现代化挑战与架构演进 在数字化转型浪潮中&#…...

网络安全毕业设计创新的方向指导

0 选题推荐 - 人工智能篇 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际…...

实现退货入库数据高效对接:从数据抓取到错误处理

退货入库对接YS销售出库(红字)-v:旺店通企业奇门数据集成到用友BIP在现代企业的运营中,数据的高效流动和精准对接是业务成功的关键。本文将聚焦于一个具体的系统对接集成案例——如何将旺店通企业奇门的数据无缝集成到用友BIP平台,实现退货入…...

舆情监测系统实战:从热搜翻车到智能预警,我总结了这些经验

前几天某汽车品牌因为一段车主维权视频直接冲上热搜,评论区炸了锅。等公关团队反应过来,话题阅读量已经破了两个亿。说实话,这种剧本我见过太多次了——凌晨三点出事,早上九点上班才发现,黄金处置期就这么白白浪费掉。…...

从手抖到丝滑:AI Illustrator钢笔工具控笔完全指南(附练习源文件)

从手抖到丝滑:AI Illustrator钢笔工具控笔完全指南(附练习源文件) 第一次接触AI Illustrator的钢笔工具时,那种"明明想画流畅曲线却总是不听使唤"的挫败感,相信每个设计师都深有体会。就像学书法需要控笔训练…...

FLUX.1-Krea-Extracted-LoRA图像生成实战:CNN架构原理与模型调优指南

FLUX.1-Krea-Extracted-LoRA图像生成实战:CNN架构原理与模型调优指南 1. 开篇:为什么选择这个模型? 如果你正在寻找一个能生成高质量真实感图像的AI模型,FLUX.1-Krea-Extracted-LoRA值得一试。这个基于CNN架构的模型在细节表现和…...

Git 主库子库管理、分支合并策略

Git 主库子库管理、分支合并策略 目录 主库与子库的核心概念从零开始:创建主库与子库常规开发流程:提交与推送撤销操作指南分支与合并:更新子库引用分支合并策略:dev → test → master总结 1. 主库与子库的核心概念 主库&…...

克隆 ESXi 虚拟机报错 Invalid configuration for device ‘0‘ 完整修复与避坑指南

本文针对 ESXi/vCenter 环境中克隆虚拟机后高频出现的 “Invalid configuration for device 0” 报错,拆解报错的核心根源 —— 克隆后残留的无效虚拟光驱、软驱空设备,提供图形化界面一键修复、命令行应急修复两套完整实操方案,补充批量处理…...

Gemini API 使用教程,接口调用全攻略

在探索AI模型的旅程中,一个高效的起点或许是像库拉KULAAI(t。kulaai,cn)这样的聚合平台,它能帮你快速了解不同模型的特性,而Gemini正是其中备受关注的一员。本文将深入实战,带你一步步掌握Gemin…...

技术日报|免费Claude Code工具连冠再揽4007星总量破万,build-your-own-x逼近50万星上榜

🌟 TrendForge 每日精选 - 发现最具潜力的开源项目 📊 今日共收录 13 个热门项目🌐 智能中文翻译版 - 项目描述已自动翻译,便于理解🏆 今日最热项目 Top 10 🥇 Alishahryar1/free-claude-code 项目简介: 在…...

从Python小白到全栈:聊聊PyCharm专业版里那些社区版没有的‘生产力神器’

从Python小白到全栈:聊聊PyCharm专业版里那些社区版没有的‘生产力神器’ 第一次用PyCharm社区版调试Django项目时,我在控制台输出了整整三页的SQL查询日志——这些本该在Database Tools面板里直观展示的关系数据,最终以密密麻麻的文本形式淹…...

Java 面试参考指南 V3.0 版(完美契合当下所有互联网公司面试需求)

这份文档由阿里巴巴架构师牵头,联合了部门上上下下 P6 - P8 级岗位众人的意见,1.0 版本由此诞生。(这阵容,质量就不用我多说了吧)内容非常全面,主要是结合了互联网大厂的面试需求点,包含了&…...

FPGA设计效率翻倍:巧用LUT6与进位链(CARRY4)实现超快加法器(Vivado实例)

FPGA设计效率翻倍:巧用LUT6与进位链(CARRY4)实现超快加法器(Vivado实例) 在FPGA开发中,加法器是最基础却又最关键的运算单元之一。传统上,我们习惯直接使用""运算符让综合工具自动处理,但这种做法…...

SDMatte交互式图像抠图:无需专业技巧,快速实现精准对象分离

SDMatte交互式图像抠图:无需专业技巧,快速实现精准对象分离 1. 为什么你需要SDMatte? 想象一下这样的场景:你刚拍了一张完美的产品照片,但背景杂乱无章;或者你需要为电商平台快速制作一批透明背景的商品展…...

零代码创建专业图表:Charticulator交互式图表设计工具完全指南

零代码创建专业图表:Charticulator交互式图表设计工具完全指南 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 你是否厌倦了传统图表工具的模板限制&…...

《Java 创建线程有哪些方式?一篇给你讲明白》

正文一、开头先说人话兄弟们,Java 里说“创建线程”,听起来像一件事,实际上像点烧烤套餐:有的是单点有的是叫老板帮你烤有的是点完还能等结果有的是直接包年办会员看起来都能“开个线程”,但姿势不一样,后劲…...

嵌入式开发环境搭建第一步:在VMware中为Ubuntu 22.04.3 LTS做这些关键初始配置

嵌入式开发环境搭建第一步:VMware中Ubuntu 22.04.3 LTS的10项关键配置 当你刚完成Ubuntu 22.04.3 LTS的基础安装,系统就像毛坯房——有基本框架但远未达到"拎包入住"的开发标准。作为嵌入式开发者,我们需要将这个"裸系统&quo…...