跳到正文
Hugging Face Blog·· 4 小时前AI 评分52

Allen AI 发布 StateBench 基准,测试语言模型在长文档中的状态追踪能力

StateBench: Testing how language models track state changes over long documents

AI 导读

Allen AI 在 Hugging Face 上介绍 StateBench,一个评估语言模型长上下文状态追踪能力的基准,按难度分为 r-trivial、aperiodic、soluble 和 general finite 四级。

正文 · AI 翻译

📄 技术报告 | 🤗 数据 | 💻 代码

StateBench illustration showing colored paths changing positions across a sequence.

我们推出 StateBench,一个用于评估 长上下文 状态追踪 的基准——即语言模型在长文档中追踪实体信息随时间演变的能力。

状态追踪是许多任务的基础:从阅读代码(其中变量被赋值和重新赋值),到跟踪故事中角色的位置移动和物品的易手。例如,如果一部推理小说在谋杀发生前写道“John 把刀递给了 Mary”,那么了解每个角色的状态已发生变化就很重要。然而,并非所有状态追踪问题的难度都相同:有些只需找到最新的更新;更难的问题则需要追踪一整条变化链,其中漏掉一步就可能导致最终答案出错。例如,我们这个推理小说状态追踪的一个更难的变体是:John 把他背包里的物品递给了 Mary,而此前已知 Edward 曾把一把刀放进了 John 的背包。

Transformer 在具有长依赖链的困难状态追踪变体上存在有据可查的理论极限,这也促使人们设计出 Gated DeltaNet 等携带运行时记忆向前传递的循环和混合架构。现有的状态追踪测试往往聚焦于最困难的情形,但随着这些设计日益普及,研究者需要了解每种架构能处理哪些类型的状态追踪。我们希望了解不同架构不仅在最难的状态追踪类型上的差异,也包括较简单、可能更常见的类型上的差异。 

为此,我们开发了 StateBench 基准,涵盖不同复杂度的状态追踪问题,并用它来评估不同架构语言模型之间的差异。我们发现,直接在这些任务上训练时,循环和混合模型能比 Transformer 泛化得更远;而包括 Gemini 3.8 Flash、Claude Opus 5.5 以及 GPT-6 Sol 和 Luna 在内的前沿模型,随着输入变长,在更难的状态追踪形式上仍会失效。 

状态追踪的四个层级

StateBench 由四个难度级别组成,允许越来越复杂的状态更新操作。对程序员来说,这些状态追踪复杂度级别可以理解为允许不同类型的变量赋值操作:

  • R-trivial(平凡递归)问题使用不可变赋值。变量的值从不改变,因此模型只需找出它最初被设置成的值。在代码中,这类似于 let x = 4; 在日常生活中,它就像出生日期——始终固定不变。
  • Aperiodic(非周期)问题允许按值重新赋值。模型需要找到最新的值,可以忽略更早的值。在代码中,这类似于 x = 4 之后又出现 x = 2;在日常生活中,它就像恒温器,最新的设定决定了当前温度。
  • Soluble(可解)问题增加了自引用更新。每次更新都基于当前值进行,因此模型必须将变化向前传递,而不是简单地找到最新赋值。在代码中,这类似于 x = x + 5;在日常生活中,它就像游戏得分,每一分都会累加到总分上。
  • 一般有限问题增加了按引用赋值。一个变量可以获取另一个变量的当前值,从而在更新之间创建依赖关系。在代码中,这表现为 x = y 或交换两个变量。想象一位魔术师把一个球藏在五个杯子之一下面,然后反复交换杯子的位置。要找到球,就必须跟踪这些交换如何改变球的位置。这说明了 S₅ 状态跟踪问题:跟踪连续的交换如何重新排列五个对象。它属于我们四个难度级别中最难的一级,并在此前关于状态跟踪极限的研究中有过讨论。

这些级别可以用变量赋值来直观理解,但它们也代表了状态跟踪中具有理论依据的区分,这些区分根植于 Krohn–Rhodes 理论——代数学的一个分支,它描述了如何将状态跟踪问题(可以看作是有限幺半群上的字问题)分解为原子基元。我们层级结构中的每个级别都对应一类可以用不同基元集合构建出来的状态跟踪问题。

为了公平地比较这四个级别,我们从一个一般的有限变量赋值序列出发,推导出三个更简单的版本,从而得到四个可比较的 StateBench 问题——每个难度级别各一个。这四个问题使用相同数量的变量和不同的值,赋值出现在序列中相同的位置;只有赋值类型不同。

我们的发现

预训练模型

我们在 StateBench 的 r-trivial、非周期和一般有限级别上测试了一系列开放的预训练模型,以观察它们的状态跟踪在哪里失效,以及不同架构是否会在理论预测的地方失败。在标准理论假设下,Transformer 可以稳健地处理 r-trivial 问题(在一定程度上也能处理可解和非周期问题),但预计会在一般问题上失败。相比之下,Gated DeltaNet 拥有更灵活的记忆更新机制,原则上可以处理全部四个级别。

我们从开放的预训练模型开始,这些模型的训练数据和上下文长度都有完整的记录。其中包括两个 70 亿参数的模型——Olmo 3(一个 Transformer)和 Olmo Hybrid(增加了 Gated DeltaNet 层)——以及 2.75 亿和 27 亿参数的较小模型。所有这些模型都在相同的数据上进行预训练;没有一个模型在训练时见过超过 64,000 个 token 的上下文,而我们在远超该长度的输入上对大多数模型进行了测试。

当我们对每个模型进行评分时,几乎所有模型在 r-trivial 问题上表现良好,随着输入变长在非周期问题上准确率下降,而在一般有限问题上则停留在随机水平。问题格式在这里很重要——2.75 亿参数的混合模型和 Gated DeltaNet 模型在 RULER 风格的 r-trivial 问题上的得分接近满分,但在以电子表格编辑形式呈现的相同问题上却接近随机水平。这一差距正是 StateBench 以多种格式测试同一底层问题的原因之一。 

Accuracy of pretrained transformer, hybrid, and Gated DeltaNet models versus input length in tokens; soluble results are not reported.

前沿模型

随后我们测试了四个前沿模型——Gemini 3.8 Flash、Claude Opus 5.5 以及 GPT-6 Sol 和 Luna——要求它们阅读每个变量赋值序列并生成每个变量的最终值。

四个模型在 r-trivial 和非周期问题上都表现良好。但在可解和一般有限问题上,随着输入变长,准确率急剧下降,在最长的 一般有限问题上降至 13% 或更低。一个可能的原因是敏感性:在这些更难的级别上,更多的步骤会影响最终答案,模型漏掉一次更新就可能导致结果出错的空间更小。 

Accuracy of Gemini 3.8 Flash, Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna across the four StateBench levels versus input length in tokens.

直接在任务上训练的模型

接下来,我们研究了模型在更难级别上的困难究竟反映了架构本身的局限,还是仅仅因为预训练没有教会模型解决这些问题。有针对性的直接训练是一种更有利的设置,它能揭示状态跟踪问题在多大程度上源自底层架构和优化器,而非用于预训练的数据。

我们在 StateBench 上从零开始训练了多个 2.75 亿参数的模型:两个 transformer 变体、两个混合架构,以及两个具有不同内存更新约束的 Gated DeltaNet 变体。模型在最多 256 条赋值的序列上训练,并在长达 64,000 条赋值的序列上测试,是最长训练长度的 250 倍。

随着序列变长,各架构开始出现分化。Gated DeltaNet 和混合架构模型在我们测试的最长序列(数万条赋值)上,在 r-trivial、非周期和可解问题上几乎完美地实现了泛化。Transformer 学会了较容易的级别,但在更长的序列上性能退化,而且始终无法学会一般有限问题。在最难的级别上,具有更灵活内存更新的 Gated DeltaNet 变体泛化得最远,在约 10 倍于训练中所见最长序列的长度上仍接近完美。 

对于 Gated DeltaNet 和混合架构模型,差距指向训练而非架构;直接训练后,它们学会了处理其预训练对应模型无法应对的状态跟踪级别。Transformer 则不同——即使直接训练,它们也始终无法学会最难的级别。

Accuracy of transformer, hybrid, and Gated DeltaNet models trained directly on StateBench across all four levels versus input length in assignments.

开放问题与发布

仍有一些问题尚未解决。我们的新证明表明,在论文的定点舍入算术下,具有更受限内存更新(非负特征值)的 Gated DeltaNet 可以解决所有非周期任务和某些周期任务,例如跟踪某个重复输入出现的是偶数次还是奇数次。它在层级中的确切位置仍待确定,包括它能否解决所有可解任务,以及数值精度或将其与注意力层结合会如何影响其能力。StateBench 还假设变量数量固定,而现实任务往往会随着时间推移引入新的实体。例如,在一段长对话中,随着对话展开,新的人物和物件可能出现,模型也必须开始跟踪它们。当前框架尚未涵盖这种场景。 

随着新型循环架构和混合架构不断涌现,了解每类架构能处理哪种状态跟踪,有助于指导未来系统的开发与训练。我们希望 StateBench 能为研究者提供一种更细粒度的方式,找到模型的失效点——并为尚有不足的能力构建训练和评估数据。更根本的是,我们希望它成为研究者的北极星,指引他们开发出相比当前模型具有更稳健状态跟踪能力的新架构。

来源: Hugging Face Blog · huggingface.co