可扩展性长文本评测集——Ada-LEval 详细解读
长文本评测
随着大模型能够处理的上下文信息越来越多,达到百万级别的词汇量,人们对于模型长文本能力的研究兴趣也随之增长。
这些工作基于一些开源 / 自建的数据集构建样本,其构建评测集上的性能已可以一定程度上反映模型的能力。
因此,在长文本评测这一工作里,我们认为一个好的长文本评测集应该具备以下性质:
- 样本长度可控:测试样本的上下文长度最好是可控的,以便于测量和比较模型在各个上下文长度下的能力变化(若测试集由不同上下文长度的测试样例混杂而成,则难以精确测量某一长度下的性能)。
- 全文理解:测试任务应当需要完整阅读 / 分析整段文本后才能成功完成。一个反例是:此前存在一些长文本总结任务,模型阅读特定部分文本(如开头 + 结尾)后即可达到不错性能。
- 指标简明清晰:测试集的指标应当做到定义清晰,其数值可以定量反映模型的性能。
- 能测试超长上下文:评测集需要能够测试模型在超长上下文上的性能。目前主流 API 模型的上下文长度已来到了 128,000 token 甚至更长,而早期的一些长文本评测集最长仅覆盖到 32,000 token。
Ada-LEval评测集
基于以上思考,司南 OpenCompass 团队构建了长文本评测集——Ada-LEval。Ada-LEval 包含 2 个任务:TSort (文本排序)、BestAnswer (选择最佳答案),每个任务覆盖了 1,000 到 128,000 token 的可变长度。
基于 Ada-LEval,我们对一些大语言模型进行了评测。我们发现,大部分的长文本模型在这一测试集上的表现都不尽如意。同时,在 32,000+ token 的上下文长度下,所有模型 (含 GPT-4-Turbo) 都未能取得显著优于 Random Guess 的结果。
任务1:TSort(文本排序)
TSort(文本排序)
定义:对于一篇长文本 (例如小说),我们从中截取部分分为 N 段,打乱次序提供给 LLM (截取部分的前后临近段落也会作为上下文提供),并要求 LLM 输出段落的正确顺序。
指标:若输出的顺序完全正确,则记为正确;否则记为错误。RandomGuess 的正确率期望为 (1 / N!)。
控制样本长度:可以通过调整 N,或是每个排序段落的长度来控制测试样本长度。
处理细节:对于 TSort 任务,我们的原始数据来源于 BookSum 数据集。在构建测试集的过程中,我们去除了文本中的段落号、章节号等显式的位置信息。
在实验过程中,我们仅尝试了 N=4 的设定,并没有继续拓展排序段落的数量。因为我们发现,这一任务对于 LLM 来说,似乎异常困难:在全部实验中,仅 GPT-4 在短上下文设定 (2,000 or 4,000 tokens) 下取得了显著优于 Random Guess 的精度。在大部分情况下,LLM 能够跟随指令并输出一个 N 排列,但顺序并不正确。
另外,由于我们的原始数据均为公开数据,大概率被用于 LLM 预训练。因此,在测试过程中,我们仅使用生成式的测试,而非基于 PPL。
任务2:BestAnswer(选择最佳答案)
定义:给定一个问题,和大量备选答案,要求 LLM 指出问题的最佳答案。在这个任务中,我们的问题来源于 StackOverflow,并以提问者最终选择的答案作为最佳答案。
指标:若模型选到了正确答案,则记为正确;否则记为错误。RandomGuess 的正确率期望为 (1 / M),M 为备选答案数量。
控制样本长度:可以通过调整备选答案数量来控制样本长度。
处理细节:
- 我们认定提问者最终选择的答案作为最佳答案。在这个答案之后依然可能有新的回答,此时这些回答不能作为备选答案中的负样本。
- 挑选负样本时,应当足够具有迷惑性。实践中,我们会优先挑选同一问题下的其他答案作为负样本。在利用其他问题下的答案作为负样本的时候,我们会保证两个问题具有一定的相似性 (即 Tag 有所重叠)。
在 BestAnswer 任务上,大部分模型在测试样例长度较短时 (1,000 / 2,000 tokens) 都显示了显著优于 Random Guess 的性能。在 8,000 tokens 以上,所有开源模型的精度下降至 Random Guess 水平;在 32,000 tokens 以上,GPT-4 的精度下降至 Random Guess 水平。
总结
在这项工作中,我们提供了 4 个 API 模型与 6 个开源模型在 Ada-LEval 的评测结果。
论文:https://arxiv.org/pdf/2404.06480.pdf
代码:https://github.com/open-compass/Ada-LEval
本文转载自 司南评测体系,作者: 司南OpenCompass