Google发布最新推理Scaling Law研究,RAG性能更上一层楼。

近年来,随着大模型(LLMs)逐步登上舞台,许多研究人员都在探索如何让它们更好地处理长上下文内容,特别是在那些需要大量知识支撑的任务中。然而,事实证明,单纯增加模型的上下文长度并不是万能的。因此,如何高效地利用这些模型的推理能力成为了一个亟待解决的问题。

什么是检索增强生成(RAG)?

检索增强生成(RAG)是一种通过引入外部知识来提升语言模型生成效果的方法。简单来说,它不仅依赖模型内部的知识,还会从外部资源中检索到相关信息,这样生成的内容就更有针对性、更有深度。

研究的核心问题

这篇论文研究主要集中在两个问题上:

  1. 如何通过优化推理计算来提升RAG的性能? 换句话说,如果我们聪明地分配计算资源,那么是否能让模型表现得更好?

  2. 能否预测出在给定计算资源的情况下,哪些配置能带来最好的效果? 这就好比在预算有限的情况下,怎么才能让花出去的钱带来最大的价值。

关键策略:让推理过程更高效

为了让推理变得更智能,研究者提出了两种新策略:

  1. 基于演示的RAG(DRAG): 这是一种通过给模型提供多个示例作为参考,让它更好地理解问题并生成回答的方法。就像给学生多做几道类似的题目,以便他们在考试中能举一反三。

  2. 迭代演示RAG(IterDRAG): 这种方法更进一步,它将复杂的问题拆解成多个小问题,逐步解决,并在每一步中引入新的信息。这类似于解决一个大难题时,先把它拆成若干个小问题,一步一步地推进。

通过实验结果,表明在推理计算合理分配的情况下,长上下文RAG性能可以与计算预算的增大呈近似线性增长。

策略一:基于演示的RAG(DRAG)

  • 工作原理:利用上下文学习,通过直接从扩展的输入上下文中生成答案来利用长上下文LLMs的能力。

  • 实现方法:通过在输入提示中整合文档和上下文示例,并对文档进行排序,将排名更高的文档靠近查询放置。

  • 改进之处:DRAG策略结合了多种上下文示例,使长上下文LLMs能够从丰富的输入上下文中提取相关信息并回答复杂问题。

策略二:迭代演示RAG(IterDRAG)

  • 挑战与动机:多跳查询仍然因组合性差距而面临挑战,IterDRAG通过将复杂查询分解为更简单的子查询来解决这一问题。

  • 工作流程:每个子查询执行检索以获取额外的上下文信息,然后将其与初始答案结合生成最终答案。

  • 执行细节:迭代过程中会多次调用LLM,直到生成最终答案或达到最大迭代次数。

  • 优势:IterDRAG通过分解查询和检索相关信息来回答子查询,缩小了组合性差距,提高了知识提取效率,从而提升了RAG的整体性能。

>>> 举例讲解 <<<

IterDRAG 的目标是通过将复杂的问题分解为更简单的子问题,以逐步进行检索和生成,从而提升模型在多跳推理任务中的性能。与传统的单次推理过程不同,IterDRAG 会进行多轮的检索和生成,逐步迭代,直到得出最终答案。

示例场景:回答多跳问题

假设我们要回答以下多跳问题:“Who is the author of the book that won the Pulitzer Prize in 2021?”

这个问题涉及多个步骤:

  1. 找到2021年普利策奖的获奖书籍。

  2. 找到该书籍的作者。

步骤一:初始查询与子问题分解
  1. 初始输入:IterDRAG 首先使用输入问题 “Who is the author of the book that won the Pulitzer Prize in 2021?” 进行初始检索。

  2. 生成子问题:在第一个推理步骤中,它会将复杂问题分解为更简单的子问题,例如:

  • “What book won the Pulitzer Prize in 2021?”
步骤二:检索相关信息
  1. 检索文档:IterDRAG 对分解后的子问题 “What book won the Pulitzer Prize in 2021?” 进行文档检索,并找到相关信息,例如书籍名称。

  2. 生成部分答案:根据检索到的文档,生成该问题的部分答案,例如 “The Night Watchman”。

步骤三:迭代生成新的子问题
  1. 新子问题生成:在得到第一个子问题的答案后,IterDRAG 会根据新的上下文继续生成第二个子问题,例如:
  • “Who is the author of The Night Watchman?”
  1. 继续检索:再次进行文档检索,使用新生成的子问题 “Who is the author of The Night Watchman?” 找到相关的文档。
步骤四:合并与最终答案生成
  1. 生成最终答案:IterDRAG 通过第二轮检索得到的结果,例如 “Louise Erdrich”,并将其作为最终答案。

  2. 合并信息:IterDRAG 将所有的中间结果和生成步骤结合在一起,以构成最终的回答过程,从而为用户提供完整的推理链条。

推理扩展定律:让RAG更具性价比

通过实验,研究发现,当合理分配推理计算资源时,RAG的性能能够呈现近乎线性的增长,RAG在长上下文的大语言模型上的性能最高可提升58.9%。这意味着,模型的表现提升和投入的计算量几乎是成正比的,这种现象被称为推理扩展定律。更有趣的是,这个发现帮助研究者构建了一种计算分配模型,可以预测不同推理配置下的模型性能。

1️⃣ 总体性能:

观察结果

  • DRAG和IterDRAG的扩展性优于基线方法:基线方法(如多示例QA)在16k tokens达到峰值,而DRAG和IterDRAG能在更高的tokens范围内找到最优配置,显示了更好的扩展性能。

  • 不同上下文长度下的表现:在16k和32k的较短长度下,DRAG的性能最佳;在128k及以上的较长长度下,IterDRAG表现更优,体现了在多步检索和生成中的优势。


2️⃣ RAG的推理扩展定律

主要发现

  • 线性关系:最佳性能随着推理计算量的增加呈现近似线性增长,称为RAG的推理扩展定律。

  • IterDRAG的表现:在超过10万的有效上下文长度时,IterDRAG继续通过交错检索和迭代生成有效扩展。

  • 增益递减:在超过100万tokens的有效上下文长度后,性能增益逐渐减小,可能由于长上下文模型的局限性导致。


3️⃣ 参数特定扩展

关键观察

  • 文档和上下文示例的影响不同:增加检索到的文档数量通常会带来较大的性能增益,而上下文示例对IterDRAG的提升更为显著。

  • 扩展不同:IterDRAG在增加生成步骤时表现更优,而DRAG在较短上下文长度时效果更好。

  • 最佳参数组合:针对给定的最大上下文长度,优化推理参数组合会因方法、指标和数据集的不同而变化。


4️⃣ 长度外推

观察结果

  • 预测结果在128k到1M tokens范围内的平均误差为2.8%,在较长上下文长度下表现较好。

  • 从32k到128k的外推具有挑战性,但在较长上下文长度下表现良好。

  • 5M上下文长度的预测准确性较差,误差达到5.6%。


总结:优化RAG推理的新篇章

这项研究探讨了如何优化长上下文模型中的检索增强生成(RAG)推理策略,发现通过合理配置推理计算资源,RAG性能能够呈现近线性增长。研究提出了DRAG和IterDRAG两种推理扩展策略,不仅提高了模型在复杂任务中的表现,还在实验中显示出显著的性能提升。研究为未来优化RAG推理策略奠定了坚实基础,并指出需继续提升模型识别关键信息和处理长上下文的能力。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值