2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

大语言模型的"续航力"大比拼 - 长文本RAG任务下的性能揭秘

发布日期:2024-09-12 06:41:55 浏览次数: 3203
作者:NLP轻松谈

微信搜一搜,关注“NLP轻松谈”

检索增强生成 (RAG) 是使用最广泛的生成式 AI 应用之一。RAG 通过从外部来源(如非结构化文档或结构化数据)检索信息,来提升大语言模型 (LLM) 的准确性。随着拥有更长上下文长度的 LLM(例如 Anthropic Claude(200k 上下文长度)、GPT-4-turbo(128k 上下文长度)和 Google Gemini 1.5 pro(200 万上下文长度))的出现,开发者可以在 RAG 应用中输入更多文档。对于这些极长的上下文长度,甚至有人开始讨论,长上下文语言模型是否会最终替代 RAG 的工作流程。如果能够直接将整个语料库放入上下文窗口中,为什么还要从数据库中检索单个文档呢?

本文将探讨上下文长度增加对 RAG 应用质量的影响。在 13 个流行的开源和商业 LLM 上进行了 2000 多次实验,以分析它们在不同领域数据集上的表现。结果显示:

检索更多文档确实有助于提高性能:为特定查询检索更多信息,可以增加正确信息传递给 LLM 的机会。现代 LLM 具有长上下文长度,可以利用这一点来提升整体 RAG 系统的效果。

长上下文并非总是对 RAG 有利:大多数模型在达到某一上下文长度后,性能会开始下降。比如,Llama-3.1-405b 在超过 32k Token 后表现下滑,GPT-4-0125-preview 在超过 64k Token 后也出现类似情况,只有少数模型能够在所有数据集上保持一致的长上下文 RAG 表现。

不同模型在长上下文下的失败方式也各不相同:本文深入研究了 Llama-3.1-405b、GPT-4、Claude-3-sonnet、DBRX 和 Mixtral,发现它们在长上下文场景下出现的失败模式各有特点,如因版权问题拒绝处理或始终生成上下文摘要。这些现象表明,许多模型在长上下文的训练方面尚显不足。

RAG:一个典型的 RAG 工作流程通常包含两个步骤:

检索:根据用户的问题,从语料库或数据库中查找相关信息。信息检索是系统设计中的一个重要领域。当前的简单方法是将每个文档嵌入为向量,并将这些向量存储在向量数据库中。系统会根据用户问题与文档的相似性,检索到相关的文档。检索过程中的一个关键因素是返回文档的数量,以及因此返回的 Token 总数。

生成:在获得用户问题和检索到的信息后,生成相应的回答(或在信息不足时拒绝生成)。生成步骤可以使用多种技术,但当下比较简单的方法是通过一个简单的提示词引导大语言模型 (LLM),并结合检索到的信息和相关的上下文,生成回答。

长上下文大语言模型:LLM 支持越来越长的上下文长度。

虽然早期的 GPT-3.5 仅有 4k Token 的上下文长度,但 GPT-4-turbo 和 GPT-4o 已扩展到 128k Token。类似地,Claude 2 的上下文长度达到 200k Token,而 Gemini 1.5 pro 则高达 200 万 Token。开源 LLM 的上下文长度也在不断增加:例如,第一代 Llama 模型只有 2k Token,而最新的 Mixtral 和 DBRX 已经扩展到了 32k Token。最新发布的 Llama 3.1 更是支持 128k Token 的上下文长度。

长上下文对 RAG 的优势在于,系统可以在生成过程中将更多检索到的文档纳入上下文,增加模型找到相关信息的机会,从而更好地回答问题。

然而,最近对长上下文模型的研究揭示了两个主要局限性:

“中间信息丢失”问题:当模型难以保留并有效利用长文本的中间部分信息时,就会出现“中间信息丢失”问题。随着上下文长度的增加,这种情况可能导致模型整合信息的能力下降。

有效上下文长度:RULER 论文研究了长上下文模型在检索、变量跟踪、信息聚合和问答等任务中的表现,发现有效上下文长度(即模型性能开始下降时的实际可用上下文长度)通常远低于标称的最大上下文长度。

基于这些研究结果,本文设计了多个实验,旨在探讨长上下文模型的潜在价值、其在 RAG 工作流程中的有效上下文长度,并评估这些模型何时及如何失效。

为了探讨长上下文在检索与生成过程中的作用,以及其对整个 RAG 流程的影响,提出了以下研究问题:

  • 长上下文对检索的影响:检索到的文档数量如何影响系统找到相关文档的几率?

  • 长上下文对 RAG 的影响:随着检索文档的增多,生成结果的表现如何变化?

  • 长上下文在 RAG 中的失效模式:不同模型在处理长上下文时会如何出现问题?
在实验 1 和实验 2 中,采用了以下检索设置:

- 嵌入模型:(OpenAI) text-embedding-3-large

- 文档块大小:512 Token

- 跨距大小:256 Token(相邻文档块之间的重叠为 256 Token)

- 向量存储:FAISS(使用 IndexFlatL2 索引)

在实验 2 中,生成设置如下:

- 生成模型:gpt-4o、claude-3-5-sonnet、claude-3-opus、claude-3-haiku、gpt-4o-mini、gpt-4-turbo、claude-3-sonnet、gpt-4、meta-llama-3.1-405b、meta-llama-3-70b、mixtral-8x7b、dbrx、gpt-3.5-turbo

- 生成温度:0.0

- 最大输出 Token 数量:1024

在对上下文长度 X 进行基准测试时,采用了以下计算方法来确定提示词的长度:

- 先从上下文长度 X 中减去 1k Token,用于模型输出。

- 然后保留 512 Token 作为缓冲区。

- 剩余部分为提示词的最大可用长度。

在本研究中,对所有大语言模型 (LLM) 在 4 个经过精心筛选的 RAG 数据集上进行了基准测试。这些数据集包括了行业应用场景的 Databricks DocsQA 和 FinanceBench,以及更具学术性的 Natural Questions (NQ) 和 HotPotQA。

评估指标

- 检索指标:采用召回率来评估检索效果。召回率表示从数据集中检索到的相关文档数量与数据集中所有相关文档数量的比率。

- 生成指标:通过答案正确性来衡量生成效果。这个答案正确性指标由基于 GPT-4o 的校准 LLM 评判系统实现。

实验发现

长上下文对 RAG 有何作用?

在本次实验中,研究了检索到更多结果如何影响生成模型在上下文中获取相关信息的能力。假设检索器返回 X 个 Token,并在此基础上计算召回率得分。从另一个角度来看,当生成模型只能使用检索到的文档生成答案时,召回率就成为其性能的上限。

以下是 OpenAI text-embedding-3-large 嵌入模型在 4 个数据集和不同上下文长度下的召回率表现。将文档分块为 512 Token,并为提示词和生成结果预留了 1.5k 的缓冲区。

饱和点:如上表所示,每个数据集的检索召回率在不同的上下文长度下会达到饱和。例如,NQ 数据集在 8k 的上下文长度下较早达到饱和,而 DocsQA、HotpotQA 和 FinanceBench 数据集则分别在 96k 和 128k 上下文长度时达到饱和。这表明,即使使用简单的检索方法,生成模型在 96k 或 128k Token 的范围内依然能够获取额外的相关信息。因此,模型更大的上下文长度可以帮助捕获这些信息,从而提高系统的整体质量。

使用更长上下文未必能提升 RAG 性能  

在这个实验中,将检索步骤和生成步骤结合,形成一个简单的 RAG 流程。为了评估不同上下文长度下的 RAG 性能,增加了检索器返回的块数量,以填满生成模型的上下文,直到达到设定的长度。然后,让模型回答特定基准测试中的问题。结果显示:

  1. 增加上下文大小能使模型利用更多检索到的文档:从 2k 到 4k 上下文长度,所有模型的性能均有所提升,并且许多模型在 16~32k 上下文长度下持续提升。

  2.  大多数模型在达到一定上下文长度后性能会下降,例如:gpt-4-turbo 和 claude-3-sonnet 在 16k,mixtral-instruct 在 4k,dbrx-instruct 在 8k。

  3. 近期的模型如 gpt-4o、claude-3.5-sonnet 和 gpt-4o-mini 展现了改进的长上下文处理能力,几乎没有性能下降。
LLMs 在长上下文 RAG 中的失败模式

为了评估生成模型在长上下文下的失败模式,分析了 llama-3.1-405b-instruct、claude-3-sonnet、gpt-4、Mixtral-instruct 和 DBRX-instruct 的样本,这些模型涵盖了一些顶尖的开源和商业模型。

提取了每个模型在不同上下文长度下的答案,手动检查了几个样本,并根据观察定义了以下失败类别:

- repeated_content:  LLM 的回答完全是重复的词语或字符。

- random_content: 模型生成的回答完全随机、与内容无关或不符合逻辑或语法。

- fail_to_follow_instruction: 模型未能理解指令意图或未能按照问题中指定的指令进行操作。例如,当指令要求基于给定上下文回答问题,而模型却尝试总结上下文。

- wrong_answer: 模型尝试按照指令操作但提供了错误答案。

- others: 其他未包含在以上类别中的失败

实验发现,claude-3-sonnet 和 DBRX-instruct 的失败模式特别引人注目,因为这些失败模式在达到一定的上下文长度后变得更加明显。例如,Claude-3-sonnet 的版权问题失败率在 16k 上下文长度时为 3.7%,在 32k 时增加到 21%,在 64k 时进一步增加到 49.5%;DBRX 的指令跟随失败率在 8k 上下文长度时为 5.2%,在 16k 时上升到 17.6%,在 32k 时达到了 50.4%。这些问题可能是由于长上下文长度下缺乏足够的指令跟随训练数据导致的。类似的观察结果也出现在 LongAlign 论文(Bai 等,2024)中,该论文表明,更多的长指令数据可以提高长任务的性能,而长指令数据的多样性有助于模型的指令跟随能力。

这些失败模式提供了额外的诊断信息,用于识别在长上下文情况下的常见失败情况,这些情况可能提示需要根据不同模型和设置调整 RAG 应用中的上下文大小。

结论与启示

- 长上下文模型和 RAG 是协同的: 长上下文使 RAG 系统能够有效包含更多相关文档 

- 许多长上下文模型仍有局限性,在长上下文中表现下降 

- 开发者需要好的评估工具来了解生成模型和检索设置如何影响最终结果质量

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅