在大型语言模型 (LLM) 快速发展的格局中,业界正在大力推动更长的上下文窗口。我们已经从只能处理几段文字的模型,发展到了号称能处理 128k、200k 甚至 100 万 token 的巨兽。但这里有一个关键问题: 仅仅因为模型接受了 100 万个 token,就意味着它真的记住了它们吗?

对于刚进入这一领域的学生和研究人员来说,这是一个棘手的问题。传统上,我们依赖困惑度 (Perplexity, PPL) 或“大海捞针” (Needle in a Haystack) 等任务来评估模型。然而,一篇题为 “Forgetting Curve: A Reliable Method for Evaluating Memorization Capability for Long-context Models” 的新研究论文指出,当涉及到长程记忆时,这些现有的方法存在根本性的缺陷。

作者提出了一种名为遗忘曲线 (Forgetting Curve) 的新颖且稳健的指标。在这篇文章中,我们将详细拆解为什么我们目前的测量方法会失效,遗忘曲线是如何工作的,以及它揭示了当今业界领先模型的哪些真相。

当前测量方法的问题

在深入探讨解决方案之前,我们需要了解为什么测量长上下文记忆如此困难。如果你把一本小说喂给 LLM,并问一个关于第一章的问题,模型能否回答取决于两件事:

  1. 记忆力: 它能回忆起那些信息吗?
  2. 理解力/指令遵循: 它能理解你的提示并组织出答案吗?

大多数当前的基准测试都混淆了这两种能力。

困惑度和“大海捞针”的局限性

困惑度是训练语言模型的标准指标。粗略地说,它衡量的是模型对下一个 token 感到“惊讶”的程度。虽然低困惑度是好事,但最近的研究表明,模型可以在长序列上拥有低困惑度,却并不能真正提高其在下游长上下文任务中的表现。

另一方面,流行的“大海捞针”测试将一个特定的事实 (针) 隐藏在大量的文本 (干草堆) 中,并要求模型找到它。这里的问题在于提示依赖性 (Prompt Dependence) 。 如果一个模型没有经过良好的“对齐”或不擅长遵循指令,即使它完美地记住了那根“针”,它也可能无法通过测试。

该论文的作者将这些局限性归类为特定的类别,例如有限的记忆使用 (LMU) (即实际上不需要长记忆的指标) 和需要提示 (PR)

表 1: 长上下文测量方法的概览及其局限性。

如上方的表 1 所示,几乎每一个现有的基准测试都受限于这些问题。它们要么过度依赖提示,要么使用模型可能会过拟合的玩具数据集,要么无法区分模型是“聪明”还是真的在“记忆”。

核心方法: 遗忘曲线

为了解决这个问题,研究人员引入了遗忘曲线 。 这种方法的天才之处在于,它将记忆视为一种“涌现的复制能力”。它不要求模型回答问题;它只是测试模型能否预测它刚刚看到的序列。

它是如何工作的

该方法通过绘制两条不同的曲线来可视化模型一般性知识特定记忆之间的差距。

  1. 复制准确率曲线 (记忆测试) : 向模型输入一段文本序列 (上下文) 。然后,再次向其输入该序列的开头,并要求其预测剩余部分。这本质上是在检查: “你刚刚看过了这段文字;你能把它复制出来吗?”这使用了一种称为教师强制 (Teacher Forcing) 的技术,即模型根据正确的前序 token 来预测下一个 token。

  2. LM 准确率曲线 (基线) : 我们需要排除模型仅仅因为懂英语 (或所使用的任何语言) 而猜对文本的可能性。为了衡量这一点,向模型输入一段不相关的随机文本前缀,然后要求其预测目标序列。这衡量了模型在没有在上下文中看到目标文本的情况下的自然预测能力。

图 2: 遗忘曲线任务在复制设置和语言建模设置下测量 LLM 的预测准确率。

图 2 展示了这种设置。上方序列显示了复制任务 (模型看到文本,然后预测它) 。下方显示了 LM 任务 (不相关的前缀,然后预测文本) 。

解读曲线

通过从复制准确率中减去基线 (LM 准确率) ,我们可以清晰地了解模型的记忆情况。作者确定了三个不同的记忆阶段,如下图所示:

图 1: Llama-2-base-32k 的遗忘曲线。

  • 细粒度记忆 (绿色区域) : 模型拥有近乎完美的召回率 (99% 的复制准确率) 。它确切地知道出现了哪些 token。
  • 粗粒度记忆 (蓝色区域) : 模型并不完美,但其准确率显著高于其基线语言建模能力。即使会犯错,它也记住了“大意”或特定部分。
  • 失忆 (红色区域) : 复制曲线下降并与 LM 曲线汇合。此时,上下文已经毫无用处。模型是在根据通用的语言规则进行猜测,实际上已经遗忘了特定的输入。

为什么这种方法是稳健的

遗忘曲线的一个主要优势是它的稳健性 (Robustness) 。 研究人员通过改变不相关的文本 (使用随机噪声 vs 其他书籍) 和改变复制文本的来源来测试这一点。

图 3: Llama-2-7b 遗忘曲线的稳健性测试。

如图 3 所示,无论文本来源如何,曲线都保持一致。这意味着遗忘曲线衡量的是模型架构的内在属性,而不仅仅是特定数据集的特性。此外,因为它不需要提示 (比如“请总结这篇文章”) ,它可以用于基座模型 (不仅仅是聊天对齐后的模型) 以及任何规模的模型。

实验与结果

研究人员将此方法应用于 14 种不同的开源模型,范围从标准的 Llama 模型到使用新架构 (如 RNN 和状态空间模型 SSMs) 的模型。

Transformer vs. RNN/SSMs

结果让我们得以一窥当前 LLM 的现状,非常引人入胜。

表 3: 开源模型在遗忘曲线和 Ruler 中的表现。

表 3 总结了这些发现。以下是关键要点:

  1. Llama-3 是巨大的升级: 对比 Llama-2-base (7B) 和 Llama-3-base (8B),细粒度记忆从 0 token (意味着它无法立即完美复制) 跃升至 4k token 。 这表明 Llama-3 大量增加的训练数据提高了其基础记忆能力。
  2. 扩展技术有效: 用于扩展上下文窗口的技术,如修改 RoPE (旋转位置编码) ,通过了此方法的验证。像 Llama-2-base-32kYarn-Llama-2 这样的模型显示出的粗粒度记忆很好地延伸到了它们声称的上下文长度。
  3. RNN/SSM 的挣扎: 这可能是最重要的发现。像 MambaRWKV (基于 RNN 或混合架构) 这样的新架构声称能高效处理非常长甚至无限的上下文。然而,遗忘曲线揭示了一个弱点。

让我们看看这些非 Transformer 模型的曲线:

图 17: Yarn-Llama-2 vs 图 19: Mamba。

请特别关注上图右下角的 Mamba 图表 (图 19) 。注意“Fine Length” (完美复制) 基本上为零。该模型在长距离上难以保持精确的 token 级记忆。虽然这些模型可能擅长捕捉一般的语义,但它们缺乏基于注意力的 Transformer 所具有的高保真检索能力。

困惑度陷阱

这篇论文最具教育意义的方面之一是揭穿了困惑度作为记忆指标的假象。作者训练了一个自定义模型 Llama-XL (基于 Transformer-XL) ,该模型旨在在长序列上具有较低的困惑度。

图 5: Llama-XL 的遗忘曲线与困惑度对比。

在图 5 中,看底部的图表。随着序列变长, 困惑度 (PPL) 显著下降并保持在低位。在传统的分析中,我们会说: “这个模型很好地利用了长上下文!”

但是看看顶部的图表 (遗忘曲线) 。复制准确率 (橙色) 几乎立即下降并与 LM 准确率 (蓝色) 汇合。尽管困惑度分数很漂亮,但该模型对长上下文没有记忆能力 。 这证实了该领域许多人的怀疑: 困惑度衡量的是短期可预测性,而不是长期记忆。

结论与启示

“遗忘曲线”为 LLM 行业提供了一个急需的现实检验。它将“声称的上下文长度”的炒作与模型实际能保留的内容区分开来。

给学生的关键要点:

  1. 记忆 \(\neq\) 理解: 一个模型可能很聪明 (推理能力强) ,但长期记忆很差。反之,一个模型可能记忆力极好,但无法遵循指令。遗忘曲线隔离了记忆这一组件。
  2. 架构很重要: Transformer 中的注意力机制似乎在“精确召回”方面比当前的 RNN/SSM 方法具有独特的深度,后者在长距离上可能会有信息损失。
  3. 警惕指标: 永远不要相信像困惑度这样的单一指标能说明全部问题。一个模型可能在 PPL 上“作弊”,而没有真正学会使用长上下文。

随着我们迈向需要阅读整本书或代码库的智能体 (Agent) 和模型,像遗忘曲线这样的指标对于识别哪些模型能真正记住信息,以及哪些只是根据文本的“语感”产生幻觉,将变得至关重要。