© 作者|董梓灿机构|中国人民大学研究方向|自然语言处理与长文本建模后台留言『交流』,加入NewBee讨论组BAMBOO在2023年9月份发布,目前已经被LREC-COLING 2024接受,论文和代码如下所示:
论文链接:https://arxiv.org/abs/2309.13345
GitHub 项目链接:https://github.com/RUCAIBox/BAMBOO
简介
BAMBOO是一个全面评估大语言模型长文本建模的基准。它遵循四个设计原则:全面能力评估、避免数据污染、准确的自动评估以及不同长度级别的支持。BAMBOO包含来自五个不同长文本理解任务的10个数据集,这些任务包括问答、幻觉检测、文本排序、语言建模和代码补全,覆盖了LLMs在不同领域和核心能力的表现。基于BAMBOO,我们进行了对五种长上下文大语言模型进行评测,并讨论和验证了当前长文本建模领域的五个重要的研究问题。在最后,我们讨论了大预言建模在长文本建模上的改进方向。
设计准则
BAMBOO基准存在四个设计准则:1. 全面能力评估(Comprehensive Capacity Evaluation):
- BAMBOO包含了多个任务,每个任务都旨在评估LLMs在长文本处理中的不同能力。这些任务包括问答、幻觉检测、文本排序、语言建模和代码补全,覆盖了从语言生成到推理和工具操作的多个方面。
- 为了确保评估的全面性,BAMBOO从多个领域收集数据,包括论文、政府报告、电视节目剧本、会议记录等,以确保模型能够在不同领域的长文本上表现良好。
2. 避免数据污染(Avoidance of Data Contamination):
- 之前的大部分基准都是使用原先已有的数据集进行构建的。然而,这些数据集不可避免的存在被已有的大模型的训练集覆盖的风险,这就导致了潜在的数据污染的可能。为了避免这一点,BAMBOO中大部分数据集都是从头构建的。
- 为了减少构建的数据集的源数据和之前数据集的重叠,BAMBOO仅使用2023年发布的数据源构建数据集。这是因为大多数LLMs的训练数据截止日期为2021年或2023年初,因此使用这些数据可以降低模型在训练阶段已经“见过”测试数据的可能性。
- 此外,BAMBOO对部分使用2023年前的数据进行了关键词层面的替换,以防止模型直接根据记忆对评测的问题进行回答。
3. 准确的自动评估(Accurate Automatic Evaluation):
- 对于诸多文本生成任务来说,无论是基于词频共现的指标(例如ROUGE),还是基于大模型的评估都是不能准确评估大模型生成的质量好坏的。因此,之前长文本基准中文本生成任务带来了评估的不准确性。
- BAMBOO的每个任务都设计为可以通过精确的自动度量进行评估。例如,问答任务使用准确率作为评估指标,而代码补全任务使用pass@1(即第一个预测是否正确)作为评估标准。而对于文本生成任务,我们则将其转化为多项选择,保证评估的准确性。
4. 不同长度级别(Different Length Levels):
- BAMBOO将任务分为两个子集,分别针对不同的输入长度:BAMBOO-4k和BAMBOO-16k。这样的设计允许研究者评估LLMs在不同长度级别的文本上的表现,从而更好地理解模型在处理长文本时的能力和限制。
- 通过比较不同长度级别的性能,研究者可以分析模型在处理长文本时的效率和效果,以及上下文窗口大小对模型性能的影响。
通过这些设计准则的实现,BAMBOO基准为评估和比较LLMs在长文本处理任务上的性能提供了一个全面、准确和可靠的平台。作为对比,之前的大部分长文本基准都忽略了对数据污染和不精准的评测对评测结果带来的不公平、不精确的影响。同时,缺少不同长度分级,使得它们难以评测长度对模型结果产生的影响。BAMBOO和其他基准的对比如下所示:
任务
为了实现综合能力评测的目的,BAMBOO设计了5种不同评测了模型不同的长文本建模能力的任务:
- 问答(Question Answering):评估LLMs在长文档或对话中的知识利用和推理能力。
- 幻觉检测(Hallucination Detection):检测LLMs生成的内容是否与给定上下文冲突或超出范围。
- 文本排序(Text Sorting):评估LLMs对文本逻辑顺序的推理能力。
- 语言建模(Language Modeling):预测长对话中最后一个发言者的说话内容。
- 代码补全(Code Completion):评估LLMs通过API调用有效利用外部工具处理复杂任务的能力。基于这些任务,BAMBOO构建了10个数据集,这些数据集的信息如下所示:
实验
基于BAMBOO,我们对5种大语言模型的长文本建模能力进行评测,并得出了如下的主要结论:
- ChatGPT在绝大多数任务上取得了最好的性能。
- 大部分模型在要求复杂和任务不常见的数据集上表现不差,例如PrivateEval。
- 随着输入长度的增加,模型的性能通常会下降。
另外,为了更好的研究长文本建模影响因素,我们对5个关键的研究问题进行了探讨:
- RQ1: 长上下文窗口的LLMs是否因扩展而付出代价?
- 结论:对于开源大语言模型来说,扩展LLMs的上下文窗口可能会对短文本任务的性能产生负面影响,这种现象被称为“扩展税”。然而,对于中等长度的文本,更长的训练数据和位置插值可能有助于提高性能。
- RQ2: LLMs在长输入中的挑战是由于文本长度还是任务本身?
- 结论:LLMs在长文本场景中的糟糕表现主要是由于推理和编码能力的不足,而不仅仅是因为证据在长文本中的定位错误。即使只输入证据,虽然有性能提升,但是幅度相对较小,且模型在不同长度的问题中犯常常相同的错误。
- RQ3: 指令位置如何影响长文本建模?
- 结论:指令在输入中的位置对LLMs的性能有显著影响。随着输入长度的上升,将指令放在输入的开始部分通常会导致性能下降。而最佳的指令位置取决于数据集和模型,但通常在输入的末尾放置指令会有更好的表现。
- RQ4: 使用上下文压缩方法的LLMs能否处理更长的文本?
- 结论:上下文压缩技术,如检索和截断,可以增强短上下文LLMs处理长文本的能力。检索增强的LLMs可以达到与长上下文LLMs相当或更好的性能,而截断和总结方法由于遗漏了大量相关信息,通常表现不佳。
- RQ5: 为什么会出现“Lost in The Middle”现象?
- 结论:当证据信息位于输入的开始或结束部分时,模型的性能通常更好,尤其是在更长的输入序列中。注意力图分析显示,无论证据在输入中的位置如何,模型倾向于更有效地利用位于输入开始或结束部分的信息。
讨论
最后,我们针对长文本建模中常常出现的问题进行了讨论,给出了大模型可以改进长文本能力的方向:
- 大模型随着长度的上升常常会发生指令的灾难性遗忘。
- 大模型常常会在长文本任务出现生成格式不符合要求的情况。
- 大模型展现出较差的能力不仅仅是因为输入较长,还有其本身处理对应任务的能力不足。
- 大模型在一些不太常见的任务中表现较差,需要拓展训练数据的领域和任务。
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)