NeedleBench 超长文本评测基准:大语言模型能否在 1000K 长度上检索推理?
司南团队构建了针对大语言模型超长文本能力的中英双语测试框架——NeedleBench,专门用来压力测试模型在处理长达百万级上下文窗口中的检索能力和推理能力。
论文链接:http://arxiv.org/abs/2407.11963
Part1:为什么需要NeedleBench?
现在的大语言模型,如最近公开的 GPT-4o 、GLM-4-9B、InternLM2.5 等,已经扩展了它们的上下文窗口,可以处理多达 100 万个 token 的文本。
然而,简单地通过 “Needle-In-A-Haystack” 大海捞针要求 LLMs 提取关键信息,并不能充分证明模型能够处理复杂的长上下文问题。现实世界的任务通常要求模型在多个分散的信息点之间进行检索和整合,并进行复杂的逻辑推理。
Part2:NeedleBench的核心任务
1. 单针检索任务(Single-Needle Retrieval Task, S-RT):对应于Needle-In-A-Haystack大海捞针测试任务,测评 LLMs 在长文本中准确回忆插入单一关键信息的能力。
2. 多针检索任务(Multi-Needle Retrieval Task, M-RT):评估 LLMs 在长文本中检索多个相关信息点的能力,模拟需要从综合文档中同时提取多个数据点的复杂查询。
3. 多针推理任务(Multi-Needle Reasoning Task, M-RS):考察 LLMs 在长文本中提取多个信息点的同时利用它们进行逻辑推理回答问题的能力。
4. 祖先追踪挑战(Ancestral Trace Challenge , ATC):用于简单模拟真实世界长文本任务中可能存在的复杂逻辑关系。在这项测试中,我们引入了抽象的亲属关系针,其中每一根针代表一重逻辑关系。最后将这些亲属关系打乱后要求模型一步一步的推理得到正确结果。例题如下:
问题
邓丽娟对龚丽丽来说,不只是一个姥姥,还是一个朋友。张娟是李帆的姥爷。黄萍不仅是邓坤的外婆,还是邓坤的榜样。李帆在蔡凯的生命中扮演着外公的角色。龚丽丽作为陈杨的爷爷,对陈杨的成长有重要影响。邓坤对邓丽娟来说,不只是一个爸爸,还是一个朋友。黄萍把徐兰英视为其妈妈。陈杨在张娟的生命中扮演着外公的角色。
在上面提供的打乱的家族关系文本中,'蔡凯'的能够向上追溯到的最年长的亲人是谁?
A. 徐兰英
B. 黄萍
C. 邓坤
D. 邓丽娟
回答
根据提供的信息,我们可以构建以下家族关系链:
- 蔡凯的外公是李帆。
- 李帆的姥爷是张娟。
- 张娟的外公是陈杨。
- 陈杨的爷爷是龚丽丽。
- 龚丽丽的姥姥是邓丽娟。
- 邓丽娟的爸爸是邓坤。
- 邓坤的外婆是黄萍。
- 黄萍的妈妈是徐兰英。
因此,"蔡凯" 能够向上追溯到的最年长的亲人是徐兰英。
所以答案是:A
Part3:NeedleBench 测评结果
1、NeedleBench-32K和200K
结果表明:
- 在 32K 的上下文长度下,InternLM2-7B-200K 在单一检索任务中表现出色,表明其在准确检索单一信息方面具有很强的能力。
- Qwen-1.5-72B-vLLM 在多针推理任务中表现出色,其参数量达到了 72B,展现了其在理解和推理复杂信息关系方面的优势。
- Mixtral-8x7B Instruct v0.1 在总体性能上表现优异,特别是在检索任务中。
通过在 32K 长度下测试的直方图中可以看出,具有较大参数量的模型往往能取得更高的平均分数。
随着上下文长度进一步扩展到 200K,能够支持如此超长上下文的开源 LLMs 变得更少,各模型表现如下表。
InternLM2-7B-200K 在单一检索任务中继续表现出其一贯的强项,但在多针检索测试中表现出显著下降。
这是由于 InternLM2 在训练过程中对单一检索任务过度拟合,导致其在多重检索测试中经常只回应一个目标。这表明更长的上下文长度可能需要模型在指令遵循和信息检索能力方面的提升。
另一方面,Orion-14B-LongChat 在多针检索任务中更为擅长,但在处理长文本的单针检索和多针推理任务中表现欠佳,当上下文长度达到约 80K 时,表现出现下降。
2、NeedleBench-1M
我们也在最新发布的两个开源超长文本 LLMs 进行了测评,分别为 GLM4-9B-Chat-1M 和 InternLM2.5-7B-Chat-1M。
从表中可以看出,在绝大多数任务中,InternLM2.5-7B-Chat-1M 的表现优于GLM4-9B-Chat-1M。
我们进一步调查了这种差异的原因。两个模型其中一个差距较大的任务是单一检索任务,通过检查模型输出,我们发现在默认设置下,GLM4-9B-Chat-1M 模型经常因为认为原文中没有相关内容而未能回答问题。在下图场景中,我们展示了 GLM4-9B-Chat-1M 在英文版单针检索中最常见的错误:
因此,我们尝试去掉要求模型首先回忆文档中与问题最相关句子的要求,转而直接指示模型回答问题。我们观察到 GLM4-9B-Chat-1M 性能明显增强,在单一检索任务中的表现和 InternLM2.5-7B-Chat-1M 相当。意味着 GLM4-9B-Chat-1M 具有完美召回 1000K 内单个关键信息的能力,但在个别情形下并不能表现出来,可见需要引入更复杂的微调或对齐策略,以充分发挥模型的长文本能力。
3、祖先追踪挑战(ATC)测试结果
我们对主流 LLMs 进行了极限的多重逻辑压力测试。具体来说,我们测试了逻辑层数分别为 2 到 19 步的多重逻辑问题。LLMs 被要求按照选择题的方式选择正确答案,分为直接选择 ABCD(Direct模式) 或先推理最后再选择选项 (Rea.) 的两种方式。测试结果如下:
可以观察到:
- API 模型相比于开源 LLMs 具有明显的优势,如 Claude-3-Opus 和 GPT4-Turbo 的分数大幅度领先开源 LLMs;
- DeepSeek-67B 在推理能力上与顶级 API 模型相近,表明了缩小 API 和开源模型之间的性能差距的希望。
令人惊讶的是,几乎所有开源 LLMs 的准确率在大约 1K token 长度内都降低到了 10% 以下,这表明无论是开源还是闭源的 LLMs 在处理现实世界中长文本中的复杂逻辑问题方面存在显著困难,因为它们难以处理蕴藏在真实世界长文本中的复杂逻辑关系。
为了进一步测试闭源模型的极限,我们将上下文进一步拉长到 2K 左右的长度,下图展示了目前业界最佳的 LLMs,虽然能够相比开源 LLMs 处理更多重逻辑关系,但仍然在长度达到 2K 时 ATC 测试的平均分降到 10 分以下。这意味着这些领先模型在处理可能蕴藏在长文本中的复杂逻辑问题时也存在很大的局限性。
Part4:结论
本研究中的 ATC 测试表明,对于 LLMs 来说,长文本理解不应仅局限于检索任务,而应重视长文本中蕴含的逻辑推理的复杂性。未来的 LLMs 应该特别优化长文本情形下的推理能力,以应对在这种情形中可能出现的复杂逻辑挑战。
此外,未来的工作还应着重提高长文本情形下 LLMs 的鲁棒性。我们在 NeedleBench 1000K 实验中的发现表明,个别 LLMs 对提示词(Prompt)非常敏感。开发缓解提示词敏感性的策略将是确保模型在不同提示词下表现一致性的重要步骤,从而增强这些模型处理长文本数据的整体可靠性。
Part5:如何使用 NeedleBench 进行模型评测
NeedleBench 目前支持在 OpenCompass 中一键评测啦!
只需下面一行代码,即可支持百种大模型一键化评测!如 InternLM2-7B-Chat 模型进行 NeedleBench 评测只需要:
python run.py --dataset needlebench_4k --models lmdeploy_internlm2_
chat_7b --summar
izer needlebench/needlebench_4k_summarizer
同时,OpenCompass 评测过程中所用到的工具链均已在 Github 开源,欢迎使用 OpenCompass 来探索大模型的奥秘!
GitHub:
https://github.com/open-compass
OpenCompass官网:
https://hub.opencompass.org.cn/home