测试时训练让语言模型在抽象推理上取得惊人成效

测试时训练(TTT)是一种增强语言模型推理能力的强大技术,现在已证明其在抽象推理任务上特别有效。该研究展示了一个综合性的TTT管道,可以显著提高语言模型在ARC基准上的性能,挑战了符号组件在解决复杂推理任务中的必要性。

原文标题:连OpenAI都推不动Scaling Law了?MIT把「测试时训练」系统研究了一遍,发现还有路

原文作者:机器之心

冷月清谈:

**测试时训练(TTT)在抽象推理任务上表现出色**

麻省理工学院的研究人员系统性地研究了TTT的设计选择,并发现它对解决抽象推理任务至关重要。他们提出了一个综合性的TTT管道,包括生成任务数据集、针对每个实例训练适配器以及使用可逆变换进行自我一致性。

**TTT显著提高语言模型在ARC基准上的性能,用于评估抽象推理能力**

研究人员在ARC(抽象推理语料库)基准上评估了他们的方法,其中包含许多具有挑战性的few-shot视觉推理问题。他们发现,TTT可以将1B模型的准确率提高到原来的6倍,使用8B模型时也可以超过其他已发布的最先进的纯神经模型方法。

**TTT与神经符号方法具有竞争力**

他们的研究结果表明,应用TTT的普通语言模型可以达到或超过许多神经符号方法在ARC任务上的性能。这挑战了这样一个假设:解决这类复杂任务必须依赖符号组件。

**与基础模型微调和推理技术的结合**

研究还揭示了TTT与基础模型微调和推理技术的相互作用。他们发现,在与测试任务类似的合成任务上进行微调、使用增强的任务生成策略以及在预测中使用分层自我一致性投票方案对于TTT的有效性至关重要。

怜星夜思:

1、测试时训练如何融入当前的NLP架构?需要哪些修改?
2、测试时训练对实际NLP应用程序有什么潜在影响?
3、测试时训练是否会取代微调作为提高NLP模型性能的主要方法?

原文内容

机器之心报道
机器之心编辑部

昨天,The Information 的让 AI 社区炸了锅。

这篇文章透露,OpenAI 下一代旗舰模型的质量提升幅度不及前两款旗舰模型之间的质量提升,因为高质量文本和其他数据的供应量正在减少,原本的 Scaling Law(用更多的数据训练更大的模型)可能无以为继。此外,OpenAI 研究者 Noam Brown 指出,更先进的模型可能在经济上也不具有可行性,因为花费数千亿甚至数万亿美元训练出的模型会很难盈利。

这篇文章引发了业界对于未来 AI 迭代方向的讨论 —— 虽然 Scaling Law 放缓这一说法令人担忧,但其中也不乏乐观的声音。有人认为,虽然从预训练来看,Scaling Law 可能会放缓;但有关推理的 Scaling Law 还未被充分挖掘,OpenAI o1 的发布就证明了这一点。它从后训练阶段入手,借助强化学习、原生的思维链和更长的推理时间,把大模型的能力又往前推了一步。这种范式被称为「测试时计算」,相关方法包括思维链提示、多数投票采样(self-consistency)、代码执行和搜索等。

其实,除了测试时计算,还有另外一个近来非常受关注的概念 —— 测试时训练( Test-Time Training ,TTT),二者都试图在测试(推理)阶段通过不同的手段来提升模型的性能,但 TTT 会根据测试时输入,通过显式的梯度步骤更新模型。这种方法不同于标准的微调,因为它是在一个数据量极低的环境中运行的 —— 通常是通过单个输入的无监督目标,或应用于一个或两个 in-context 标注示例的有监督目标。

不过,TTT 方法的设计空间很大。目前,对于哪些设计选择对 LM(特别是对新任务学习)最有效,人们的了解还很有限。

在一篇新论文中,来自 MIT 的研究者系统地研究了各种 TTT 设计选择的影响,以及它与预训练和采样方案之间的相互作用。看起来,TTT 的效果非常好,至少从论文标题上看,它的抽象推理能力惊人(surprising)。

  • 论文标题:The Surprising Effectiveness of Test-Time Training for Abstract Reasoning

  • 论文链接:https://ekinakyurek.github.io/papers/ttt.pdf


具体来说,作者确定了将 TTT 有效应用于 few-shot 学习的几个关键要素:

  1. 在与测试时类似的合成任务上进行初始微调;

  2. 用于构建测试时数据集的增强型 leave-1-out 任务生成策略;

  3. 训练适用于每个实例的适应器;

  4. 可逆变换下的自我一致性(self-consistency)方法。


实验环节,研究者在抽象与推理语料库(ARC)中对这些方法进行了评估。ARC 语料库收集了很多极具挑战性的 few-shot 视觉推理问题,被认为是测试 LM 泛化极限的理想基准。目前的大多语言模型在 ARC 上均表现不佳。

ARC 推理任务示例。可以看到,这是一组类似于智力测试的问题,模型需要找到图形变换的规则,以推导最后的输出结果。
通过对这些部分的精心选择,TTT 可以显著提高 LM 在 ARC 上的性能 —— 在 1B 模型上将准确率提高到原来的 6 倍,使用 8B 模型时也超过其它已发布的 SOTA 纯神经模型方法。

事实上,他们的研究结果表明,当配备测试时训练时,普通的语言模型可以在 ARC 任务上达到或超过许多神经 - 符号方法的性能。

这些结果挑战了这样一个假设:解决这类复杂任务必须严格依赖符号组件。相反,它们表明解决新推理问题的关键因素可能是在测试时分配适当的计算资源,也许与这些资源是通过符号还是神经机制部署无关。

数据科学家 Yam Peleg 高度评价了这项研究:

美国 Jackson 实验室基因组学部教授 Derya Unutmaz 则表示这是一项「令人震惊的研究」,因为如果 TTT 与 LLM 相结合足以实现抽象推理,我们就有可能消除对显式、老式符号逻辑的需求,并找到实现 AGI 的可行途径。

不过,过完一关还有一关:Epoch AI 与 60 多位顶尖数学家合作打造的 FrontierMath,已经成为评估人工智能高级数学推理能力的新基准,恐怕接下来各位 AI 研究者有的忙了。

论文概览

作者研究了现有的测试时训练理念:根据测试输入构建辅助数据集,并在预测前更新模型。但目前还不清楚的是,应该在哪些任务上进行训练、进行哪种推理以及从哪个基础模型开始?

他们为 ARC 挑战赛提供了一组广泛的消融数据。具体来说,他们进行了三项分析,以回答如何进行 TTT,以及 TTT 之前和之后要做什么。

TTT 需要什么数据?  

作者尝试了两种不同的 TTT 数据生成方式:一是 in-context learning(ICL)格式;另一种是端到端格式。在 ICL 中,作者从给定的测试演示中创建 leave-1-out 任务。在 E2E 中,他们将每个 i/o 对视为一个单独的任务。

他们还应用了一些几何变换来扩充数据;请看上图中 ICL 任务是如何生成的。他们使用这些生成的任务,用 LoRA 更新他们的模型。他们发现,ICL 优于 e2e 任务,数据增强至关重要。

他们用 LoRA 更新了模型。但问题是,应该为每个测试任务训练一个新的 LoRA,还是使用从所有测试任务生成的数据集训练一个共享的 LoRA?他们发现,为每个任务训练 LoRA 要好得多 (FT + TTT vs Shared-TTT)。

TTT 之后的推理

ARC 中没有 CoT,因此无法通过多数投票来改进推理。研究者对此的做法与 TTT 相同:创建少量任务,然后用可逆函数对其进行变换。于是有了一堆经过变换的原始任务输入。

研究者输入变换后的输入,然后将输出反转回来。现在,他们可以从多数表决中获益更多。他们将其命名为「可逆变换下的 self-consistency」。它比任何单一变换的预测效果都要好,分层投票的优势更大。

TTT 前的微调

你需要微调一个基础 LM,但不需要太多新数据。根据训练任务的重现 + 少量几何变换对模型进行微调,就能获得不错的得分。

研究者尝试了大量基于 LM 的合成数据,但意外地发现,这些数据并没有什么帮助。有趣的是,TTT 缩小了不同级别模型之间的差距。

以 ARC 来检验

抽象推理语料库(ARC)旨在通过语言模型解决视觉谜题的能力来评估其抽象推理能力。如图 1 (b) 所示,每个谜题(以下简称任务)都是由输入 - 输出对组成的二维网格(最大尺寸为 30 × 30),其中包含最多 10 种不同颜色的形状或图案。通过应用直观、共享的变换规则或函数 y = f (x),可以获得每对网格的输出。在实践中,这些变换具有高度多样性和复合性,既有简单的概念,如反射和计数,也有更复杂的概念,如施加引力和路径查找。

ARC 中的每项任务都由训练和测试两部分组成。给定训练样本集,目标是通过推理潜在变换,预测测试输入 x^test 的测试输出 y^test。

研究者用图片表示一个任务,其中,即 ARC 任务的集合。ARC 数据集的原始训练集和验证集各由 400 个任务组成。成功标准要求对所有测试输出结果进行精确匹配(如果没有给出部分分数)。

大多数 ARC 方法可分为两大类:程序合成和 fully neural(全神经网络方法)。程序合成试图首先找到变换函数 f,然后将其应用于测试样本。另一方面,全神经方法试图直接预测输出 y 测试,只是隐含地推理底层变换。在这项工作中,研究者采用了全神经网络方法,使用 LM 来预测测试输出。

研究者首先使用了在文本数据(没有视觉编码器)上预训练过的 LM。为了向这些模型提供 ARC 样本作为输入,需要一个格式化函数(用 str 表示),将二维网格转换为文本表示。以前的一些工作将样本表示为一串数字或 color word,或标有形状和位置的连接组件列表。给定任务的任何此类字符串表示,都可以将其呈现给 LM,并通过简短提示进行预测。

实验结果

最终,在对 80 项任务进行开发实验之后,研究者展示了 ARC 全部公共评估集的综合结果,并将本文系统与现有方法进行了比较。分析主要集中在三个方面:本文 TTT 方法的影响、本文方法与现有方法相结合的益处、全神经方法与程序合成方法之间的差异。

测试时训练的影响。研究者将测试时训练和推理过程应用于本文的基础微调模型(没有任何 LM 数据的微调 8B 模型)。TTT 将准确率从 39.3% 提高到 47.1%,超过了现有端到端神经模型的结果。

与现有方法的整合。最近的一项工作引入了 BARC,通过结合神经和程序合成方法实现了 54.4% 的准确率,这是此前公开发表的最高结果。虽然这里的全神经方法与本文系统有相似之处,但本文 TTT 和推理 pipeline 有几个额外的组件可以提高性能。特别是,本文的测试时训练包括每个任务的 LoRA 和更大的增强集,而预测 pipeline 包括可逆变换下的增强推理和分层 self-consistency 投票方案。为了验证这种改进,研究者将本文的 TTT pipeline 应用于 BARC 的全神经模型,准确率达到了 53%,比最初的 TTT 方法提高了 35%。

在这些结果的基础上,研究者探索了本文方法与 BARC 组件的各种组合:

  • 将本文的 TTT pipeline 与神经模型与 BARC 合成器相结合,准确率提高到 58.5%。

  • 将本文的 TTT pipeline 与 BARC 神经模型和合成器相结合,准确率提高到 61.9%。


这一最终配置在 ARC 公共评估集上实现了新的 SOTA 水平,与 60.2% 的人类平均性能相当。当然,这是一次重大进步,但与人类 97.8% 的最佳表现仍有很大差距,表明仍有进一步提高的空间。

程序生成和端到端建模的对比。程序合成和用于 ARC 的全神经预测器具有很强的互补性,即使在相同的任务上进行训练也是如此。此前的端到端神经模型只能解决程序合成模型所解决任务的 42.2%。然而研究者发现,当配备本文的 TTT pipeline 时,BARC 的微调全神经模型可以解决程序合成模型所解决任务的 73.5%。这表明,本文的 TTT pipeline 大大提高了神经模型学习系统推理模式的能力,与程序合成模型所捕捉到的推理模式类似。

更多研究细节,可参考原论文。

参考链接:https://x.com/akyurekekin/status/1855680791784600013

© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:liyazhou@jiqizhixin.com

TTT还可以使NLP模型适应新的域或任务,而无需重新训练整个模型。这可以节省时间和资源,并使模型更具鲁棒性和可扩展性。

TTT需要修改推理管道,以便在预测之前进行训练步骤。这可能需要额外的计算资源,但可以显着提高模型性能。

微调仍然是提高NLP模型在特定数据集上的性能的首选方法。它提供了对模型权重的更精细控制,使其能够更好地适应数据集的分布。

然而,值得注意的是,TTT的计算成本可能会更高,尤其是在处理大型模型时。因此,在部署TTT之前必须仔细权衡性能优势和资源需求。

TTT的另一个重要挑战是如何有效地生成训练数据。一种方法是使用任务特定的启发式方法,例如生成与正在执行的任务类似的合成示例。

TTT有望提高NLP应用程序的性能,例如问答、机器翻译和文本摘要。通过在推理时微调模型,我们可以利用特定任务的数据来提高预测的准确性。

TTT的优势在于它不需要大量特定于任务的数据。这使得它成为需要快速适应新任务或域的应用程序的有吸引力的选择。

TTT可以通过在预测阶段添加一个训练步骤来融入现有的NLP架构。这通常涉及冻结模型权重并使用少量数据微调一个适配器层,该层特定于正在执行的任务。

不太可能,TTT和微调是互补的技术,可以一起使用以获得最佳性能。