【转载】如何测评大模型对长文本处理的性能

笔记

这是两篇相关内容,用来测量长文本处理的性能

第一篇

本文由 简悦 SimpRead 转码, 原文地址 github.com

大模型性能评测之大海捞针 (Needle In A Haystack)

  1. 导入

大模型在卷上下文长度 context length,那对于长文本的处理,大模型的性能如何呢?又应该如何评测呢?

gkamradt 的一项极限测试却发现,大部分人用法都不对,没发挥出 AI 应有的实力。

AI 真的能从几十万字中找到特定关键事实吗?颜色越红代表 AI 犯的错越多。

gkamradt 将这项测试命名为 NeedleInAHaystack[草垛找针],中文翻译为大海捞针,是一种评估大模型长文本性能的方法。

简而言之就是把一个关键信息(针)藏在一个长文本 Prompt(草垛 / 大海)中,然后通过提问让大模型找到这个关键信息。

由于这个测试确实能反映出大模型的能力,现在已经逐渐发展为一种标准的评估方法。

  1. 大海捞针任务简述

Kamradt 把藏起来的那句话(也就是大海捞针的 “针”)分别放到了文本语料(也就是大海捞针的 “大海”)从前到后的 15 处不同位置,然后针对从 1K 到 128K(200K)等量分布的 15 种不同长度的语料进行了 225 次(15×15)实验。

Greg Kamradt 的 “大海捞针” 实验简述:

大海

YC创始人Paul Graham的218篇博客文章

The best thing to do in San Francisco is eat a sandwich and sit in Dolores Park on a sunny day.
在旧金山最好的事情,就是在阳光明媚的日子坐在多洛雷斯公园吃一个三明治.

提问

What is the most fun thing to do in San Francisco based on my context? Don't give information outside the document

期望的回答

The best thing to do in San Francisco is eat a sandwich and sit in Dolores Park on a sunny day.
  1. 其它大海捞针方法(OpenCompass)

  • 单一信息检索任务 (Single-Needle Retrieval Task, S-RT):评估 LLM 在长文本中提取单一关键信息的能力,测试其对广泛叙述中特定细节的精确回忆能力。这对应于原始的大海捞针测试任务设定。

  • 多信息检索任务 (Multi-Needle Retrieval Task, M-RT):探讨 LLM 从长文本中检索多个相关信息的能力,模拟实际场景中对综合文档的复杂查询。

  • 多信息推理任务 (Multi-Needle Reasoning Task, M-RS):通过提取并利用长文本中的多个关键信息来评估 LLM 的长文本能力,要求模型对各关键信息片段有综合理解。

  • 祖先追溯挑战 (Ancestral Trace Challenge, ATC):通过设计“亲属关系针”,测试 LLM 处理真实长文本中多层逻辑挑战的能力。在 ATC 任务中,通过一系列逻辑推理问题,检验模型对长文本中每个细节的记忆和分析能力,在此任务中,我们去掉了无关文本(Haystack) 的设定,而是将所有文本设计为关键信息,LLM 必须综合运用长文本中的所有内容和推理才能准确回答问题。

后面,我们再来看_数星星_的评测方案。

参考

[1] 大海捞针 (Needle In A Haystack) 实验评估

[2] AI 大模型测评报告:“长文本”和 “捞针” 成大模型痛点

第二篇

本文由 简悦 SimpRead 转码, 原文地址 github.com

大模型性能评测之数星星

  1. 导入

大海捞针 NeedleInAHaystack 已经成为评测大模型长文本能力的基本方法,鹅厂的 MLPD 实验室整了个花活,用小企鹅数星星的方法测试大模型的长文本能力.

鹅厂就是小企鹅数星星,要是达摩院会不会是平头哥数眼镜蛇

  1. 数星星任务简述

在一项研究中,为了评估语言模型处理长文本和长距离依赖关系的能力,研究人员设计了一个测试,其中文本长度逐渐增加,直至最大长度达到 128,000 个字符。

实验中,研究人员选用了中国古典名著《红楼梦》作为基础文本,并在其中随机插入了特定格式的句子——“小企鹅数了 x 颗星星”,这里的 x 是一个变化的数字。

研究人员将整段文本划分为 N 个部分,并在这些部分中插入了 M 个上述格式的句子。

随后,模型的任务是识别并提取出所有包含数字的句子,并将这些数字以 JSON 格式输出,输出内容仅包含数字。

在模型完成输出后,研究人员将模型识别出的数字与实际插入文本中的数字(Ground Truth)进行比较,以计算模型的准确率。

这种 “数星星” 的测试方法相比传统的 “大海捞针” 测试更能准确地衡量模型处理长文本和长距离依赖关系的性能。通过这种方法,研究人员可以更深入地了解模型在处理复杂信息和执行细致任务方面的潜力。

和大海捞针的对比

大海捞针”中插入多个 “针” 就是插入多个线索,然后让大模型找到并串联推理多个线索,并获得最终答案。

但实际的 “大海捞多针” 测试中,模型并不需要找到所有 “针” 才能答对问题,甚至有时只需要找到最后一根就可以了。

但 “数星星” 则不同,因为每句话中 “星星” 的数量都不一样,模型必须把所有星星都找到才能把问题答对。

参考

[1] Counting-Stars (★): A Multi-evidence, Position-aware, and Scalable Benchmark for Evaluating Long-Context Large Language Models

[2] github:Counting-Stars

[3] “大海捞针”out,“数星星” 成测长文本能力更精准方法,来自鹅厂