论文链接:https://doi.org/10.1162/tacl_a_00638
论文标题:Lost in the Middle: How Language Models Use Long Contexts
论文发表期刊:Transactions of the Association for Computational Linguistics(2024)
作者团队 & 机构:Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, Percy Liang(斯坦福、加州大学伯克利分校、Samaya AI)
这篇论文的研究背景是关于语言模型在处理长篇文本时是如何使用长上下文信息的。语言模型在处理长篇文本时面临着许多挑战,例如如何有效地检索和利用相关信息,以及如何处理长篇文本中的信息丢失和模糊性。
虽然最近的语言模型能够将长上下文作为输入,但对它们使用长上下文的情况知之甚少。这项研究分析了语言模型在两项任务中的表现,这两项任务要求识别输入语境中的相关信息:多文档问题解答和键值检索。实验结果发现,当改变相关信息的位置时,性能会明显下降,这表明当前的语言模型不能稳健地利用长输入语境中的信息。特别是,当相关信息出现在输入上下文的开头或结尾时,性能往往最高,而当模型必须在长上下文中间获取相关信息时,性能会明显下降,即使是明确的长上下文模型也是如此。这项研究的分析使人们更好地了解语言模型如何使用输入上下文,并为未来的长上下文语言模型提供了新的评估协议。
作者进行了一系列的实验,使用了多个最新的语言模型,并对输入上下文的大小和相关信息的位置进行了控制性的变化。
多文档问题解答任务示例如下图所示,包含输入上下文和所需的模型答案。为清楚起见,包含答案的文档在输入上下文中用粗体标出。
在上图所示的多文档问题解答示例中,调整相关信息在输入上下文中的位置。对输入上下文中的文档重新排序并不会影响所需的输出结果。以及调节多文档问题解答示例的输入上下文长度。添加不包含答案的文档会增加输入上下文的长度,但不会影响预期输出。
使用的模型以及这些语言模型在多文档问题解答任务中 Closed-book 和 Oracle 数据集上的准确率。
键值检索任务示例如下所示,包含输入上下文和所需的模型输出。给定一个键,目标是返回相关的值。所有键和值都是 128 位 UUID。为清楚起见,输入上下文中与回答查询相关的键值对用粗体标出。
改变输入上下文长度和相关信息位置对键值检索性能的影响。较低的位置更接近输入上下文的起始位置。虽然有些模型在这项合成任务中表现出了完美的准确性(例如 Claude-1.3 和 Claude-1.3 100K),但我们再次看到,当相关信息出现在上下文的最开始或结尾时,性能往往最高,而当模型必须从输入上下文的中间进行检索时,性能就会迅速下降。
改变相关信息(在本例中,即回答输入问题的段落的位置)在语言模型输入上下文中的位置会导致 U 型性能曲线:模型更善于使用出现在输入上下文开头(首要偏向)或结尾(回顾偏向)的相关信息,而当模型必须访问和使用位于输入上下文中间的信息时,性能会明显下降。一张可视化图如下示意:
研究者通过一系列对照实验对语言模型如何使用长输入上下文进行了实证研究。实证发现,当改变相关信息的位置时,语言模型的性能会明显下降,这表明模型在长输入上下文中很难稳健地获取和使用信息。特别是,当模型必须使用长输入上下文中间的信息时,性能往往最低。
作者对 (i) 模型架构、(ii) 查询感知上下文和 (iii) 指令微调的作用进行了初步调查,以更好地了解它们如何影响语言模型如何使用上下文。最后,通过对开放域问题解答的实际案例研究得出结论,发现语言模型阅读器的性能远远早于检索器的召回而达到饱和。这篇论文的研究结果和分析提供了一个更好的理解语言模型如何使用其输入上下文,并为未来的长上下文模型提供了新的评估协议。