Heidi Labs
Hugging FaceAI 领域最新发展约 9 分钟3,450 字

StateBench:测试语言模型如何在长文档中跟踪状态变化

本文目录

企业文章 发布于 2026年11月3日

点赞 6

Kyle Wiggers Ai2Comms 关注 allenai

技术报告 | 数据 | 代码

我们推出 StateBench,这是一个用于长上下文状态跟踪(state tracking)的基准——衡量语言模型在长文档中跟踪实体信息随其演变的能力。

状态跟踪是许多任务的基础,从阅读代码(其中变量被赋值和重新赋值),到跟随故事中角色在物理空间中移动、物品易手。例如,如果一部悬疑小说在谋杀发生前写道“约翰把刀给了玛丽”,那么重要的是要知道每个角色的状态已经改变。然而,并非所有状态跟踪问题都一样:有些只需要找到最新的更新;更难的则需要跟随一条变化链,其中漏掉一步就可能让最终答案出错。例如,我们悬疑状态跟踪的一个更难变体是:约翰把背包里的东西给了玛丽,而此前已知爱德华把一把刀放进了约翰的背包。

Transformer 在具有长依赖链的困难状态跟踪变体上存在有充分记录的理论局限,这推动了循环(recurrent)和混合(hybrid)架构(如 Gated DeltaNet)的发展,这类架构会携带一份持续记忆向前推进。现有的状态跟踪测试往往聚焦于最困难的情况,但随着这些设计日益普遍,研究人员需要知道每种架构能处理哪些类型的状态跟踪。我们希望不仅在最困难的状态跟踪类型上,也在更简单、可能更常见的类型上,理解架构之间的差异。

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

四层状态跟踪#

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

r-平凡(r-trivial)问题使用不可变赋值。变量的值永不改变,因此模型只需恢复它最初被设为什么。在代码中,这看起来像 let x = 4;;在日常生活中,这就像出生日期——它保持固定。

非周期(aperiodic)问题允许按值重新赋值。模型需要找到最近的值,并可以忽略更早的值。在代码中,这看起来像先 x = 4,之后 x = 2;在日常生活中,这就像恒温器,最新的设置决定当前温度。

可解(soluble)问题增加了自引用更新。每次更新都基于当前值,因此模型必须把变化向前传递,而不能只是找到最新的赋值。在代码中,这看起来像 x = x + 5;在日常生活中,这就像游戏得分,每得一分都累加到总分上。

一般有限(general finite)问题增加了按引用赋值。一个变量可以取另一个变量的当前值,从而在更新之间形成依赖。在代码中,这看起来像 x = y 或交换两个变量。想象一位魔术师把球藏在五个杯子中的一个下面,然后反复交换它们的位置。找到球意味着跟踪这些交换如何改变它的位置。这说明了 S₅ 状态跟踪问题:跟踪连续交换如何重排五个物体。它属于我们四个级别中最难的一级,并在先前关于状态跟踪局限性的工作中有所讨论。

这些级别可以通过变量赋值直观理解,但它们也代表了植根于 Krohn–Rhodes 理论(Krohn–Rhodes theory)的状态跟踪中的理论性区分,这是代数的一个分支,描述状态跟踪问题——可视为有限幺半群(monoid)上的字问题——如何分解为原子原语。我们层级中的每一级都对应一类可由不同原语集合构建的状态跟踪问题。

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

我们的发现#

预训练模型#

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

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

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

前沿模型#

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

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

直接在任务上训练的模型#

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

我们从零开始在 StateBench 上训练了几个 2.75 亿参数模型:两个 Transformer 变体、两个混合模型,以及两个具有不同记忆更新约束的 Gated DeltaNet 变体。这些模型在最多 256 次赋值的序列上训练,并在长达 64,000 次赋值的序列上测试,即最大训练长度的 250 倍。

随着序列变长,不同架构开始分化。Gated DeltaNet 和混合模型在 r-平凡、非周期和可解问题上几乎完美地泛化到我们测试的最长序列——数万次赋值。Transformer 学会了较简单的级别,但在更长序列上退化,并且从未学会一般有限问题。在最难的级别上,记忆更新更灵活的 Gated DeltaNet 变体泛化得最远,在约为其训练期间所见最长序列 10 倍的长度上仍保持接近完美。

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

开放问题与发布#

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

随着循环和混合架构的新变体不断涌现,理解每种架构能处理哪些类型的状态跟踪,可能有助于指导未来系统的开发和训练方式。我们希望 StateBench 为研究人员提供一种更细粒度的方法,以找出模型在何处失效,并为仍然不足的能力构建训练和评估数据。更根本地说,我们希望它成为研究人员的北极星,用以开发相比当前模型具有更稳健状态跟踪能力的新架构。

本文提到的数据集 1

更多来自该作者#

我们能信任 LLM 判断一个研究想法是否新颖吗? 18 2026年10月27日

LitPivot:通过在文献景观中的动态情境化来发展研究想法 39 2026年10月23日