昨日,The Information 发布的一篇文章在 AI 社区掀起了轩然大波。
该文章披露,OpenAI 下一代旗舰模型在质量提升方面的幅度,相较于前两款旗舰模型之间的提升有所逊色。原因在于高质量文本以及其他数据的供应正在缩减,这致使原本依据 Scaling Law(即运用更多数据训练更大模型)的发展模式恐难以为继。不仅如此,OpenAI 研究者 Noam Brown 还表示,更为先进的模型在经济层面或许也不具可行性,毕竟耗费数千亿乃至数万亿美元训练出的模型,想要实现盈利难度极大。
此文章引发了业界对于 AI 未来迭代走向的热议。尽管 Scaling Law 增速放缓这一状况令人忧虑,但也不乏积极乐观的观点。部分人士觉得,就预训练而言,Scaling Law 或许会渐趋平缓;然而有关推理的 Scaling Law 仍有很大的挖掘潜力尚未被充分利用,OpenAI o1 的推出便是有力例证。它以强化学习、原生思维链以及更长的推理时长为依托,从后训练阶段切入,使大模型的能力再度获得提升。这种模式被称作「测试时计算」,其相关方法涵盖思维链提示、多数投票采样(即 self - consistency)、代码执行以及搜索等。
实际上,在AI领域当中,除了备受瞩目的“测试时计算”之外,还存在着另一个近期广受关注的概念——“测试时训练”(Test-Time Training,TTT)。这两种方式均致力于在测试(推理)阶段,凭借各异的手段促使模型性能得以提升。其中,TTT会依据测试时所输入的内容,借助显式的梯度步骤来对模型进行更新。值得注意的是,这种方法与标准的微调存在明显区别。它是在数据量极为稀少的环境下开展运作的,一般而言,要么是通过针对单个输入的无监督目标,要么是应用于仅有一个或两个in-context标注示例的有监督目标。
TTT方法所涉及的设计空间极为广阔。就当下的情况来看,对于究竟哪些设计选择对于语言模型(特别是针对新任务学习方面)最为有效,人们所掌握的情况还相当有限。
在一篇全新的论文里,来自麻省理工学院(MIT)的研究者们针对各种各样的TTT设计选择所产生的影响,以及它和预训练、采样方案之间的相互作用,展开了系统性的研究。从目前的情况来推断,TTT所呈现出的效果似乎相当不错,至少从该论文的标题来判断,它所具备的抽象推理能力着实令人感到惊讶(surprising)。
具体来讲,作者明确指出了能够将“测试时训练”(TTT)有效应用于少样本(few-shot)学习的若干关键要素:
其一,是要在与测试时情况相类似的合成任务上开展初始微调操作。
其二,采用用于构建测试时数据集的增强型留一法(leave-1-out)任务生成策略。
其三,训练适用于每个实例的适应器。
其四,运用可逆变换下的自我一致性(self-consistency)方法。
在实验环节当中,研究者们选择在抽象与推理语料库(ARC)中对上述这些方法进行评估。ARC语料库精心收集了众多极具挑战性的少样本视觉推理问题,由于其问题的难度和特性,该语料库被广泛认为是测试语言模型(LM)泛化极限的理想基准。就目前的实际情况来看,绝大多数的语言模型在ARC语料库上所展现出的表现都不尽如人意。
通过对上述提及的各个关键部分进行精心挑选与合理运用,“测试时训练”(TTT)能够极为显著地提升语言模型(LM)在抽象与推理语料库(ARC)上的性能表现。
具体而言,当采用 1B 模型时,TTT 可将其在 ARC 上的准确率提升至原本的 6 倍之多。而在使用 8B 模型的情况下,TTT 所展现出的效果更是出色,其准确率甚至超过了其他已经发布的、处于当前最优水平(SOTA)的纯神经模型方法所能够达到的程度。
事实上,从他们此次的研究成果来看,当语言模型配备了测试时训练(TTT)这一机制后,那些普通的语言模型在面对抽象与推理语料库(ARC)任务时,其性能能够达到甚至超越许多神经 - 符号方法所呈现出的性能水平。
这些研究结果无疑对以往的一个常见假设发起了挑战,即人们通常认为要解决像ARC任务这类复杂任务,必须要严格依靠符号组件才行。然而,此次研究结果却恰恰相反,它们清晰地表明,在解决新的推理问题时,关键的因素或许在于测试时能够合理分配恰当的计算资源,而且这一关键因素可能与这些计算资源究竟是通过符号机制还是神经机制来进行部署并没有太大的关联。
数据科学家Yam Peleg对这项研究给予了高度的评价:
美国 Jackson 实验室基因组学部教授 Derya Unutmaz 明确指出,这堪称是一项 “令人震惊的研究”。其原因在于,倘若 “测试时训练”(TTT)与大型语言模型(LLM)相互结合便足以达成抽象推理的话,那么我们便极有可能不再需要显式的、传统意义上的老式符号逻辑了。并且,这很可能会为我们探寻实现通用人工智能(AGI)开辟出一条切实可行的途径。
不过,正所谓过了一关又有一关在等着。如今,Epoch AI 与 60 多位顶尖数学家携手合作打造出了 FrontierMath,而这一成果已然成为了评估人工智能高级数学推理能力的全新基准。如此一来,恐怕后续各位从事 AI 研究的人员又要有诸多工作需要忙碌起来了。
论文概览
作者针对现有的测试时训练理念展开了细致的研究。就当下的情况而言,仍存在诸多不够明晰的地方。究竟应当在哪些具体的任务之上开展训练工作呢?又该采用何种类型的推理方式才最为合适呢?应该从哪一个基础模型着手开启这一系列的操作呢?
为此,他们专门针对ARC挑战赛准备了一组涉及范围颇为广泛的消融数据。具体来讲,他们精心开展了三项分析工作,其目的就在于通过这些分析,能够清晰地解答出应当如何去实施测试时训练(TTT),以及在TTT操作之前需要完成哪些准备工作,在TTT操作完成之后又应当开展哪些后续事宜。
TTT 需要什么数据?
作者对两种不同的“测试时训练”(TTT)数据生成方式进行了尝试:其中一种方式是采用in-context learning(ICL)格式。另一种方式则是端到端(E2E)格式。在该格式下,作者把每个输入/输出(i/o)对都视作是一个单独的任务。
他们还采取了运用一些几何变换的方式来对数据进行扩充处理。大家可以留意一下上面所给出的图示,从中便能清楚地看到 in-context learning(ICL)任务具体是怎样生成的。
他们借助这些新生成的任务,运用低秩自适应(LoRA)的方法来对其模型进行更新操作。
经过一系列的实践与对比分析后,他们发现了一个颇为重要的结果,那就是 in-context learning(ICL)这种任务生成方式要比端到端(e2e)任务生成方式表现得更为出色。
他们通过低秩自适应(LoRA)的方法对模型进行了更新。在此过程中出现了一个有待解决的问题,究竟应当针对每个单独的测试任务去专门训练一个全新的LoRA呢,还是利用从所有测试任务所生成的数据集来训练出一个可供共享使用的LoRA呢?
他们发现:针对每个任务分别去训练LoRA这种方式所呈现出的效果要远远好得多。
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}\)。
研究者用\(\Omega\)来表示一个任务,这里的\(\Omega\)也就是ARC任务的集合。ARC数据集的原始训练集以及验证集各自都是由400个任务所组成的。其成功的标准在于,需要对所有的测试输出结果都进行精确匹配(倘若没有给出部分分数的情况)。
大多数的方法可以划分成两大类:程序合成以及fully neural(全神经网络方法)。程序合成这类方法主要是试图首先去找到变换函数\(f\),然后再将找到的这个变换函数\(f\)应用到测试样本之上。而从另一方面来看,全神经方法则是试图直接去预测输出\(y^{test}\),只是在这个过程中是隐含地对底层变换进行推理。研究者所采用的是全神经网络方法,也就是利用语言模型(LM)来预测测试输出。
研究者在最开始的时候,使用的是已经在文本数据(并且是没有视觉编码器的那种)上预先经过训练的语言模型(LM)。为了能够将ARC样本作为输入提供给这些模型,就需要一个格式化函数(用\(str\)来表示),将二维网格转化成为文本表示形式。在以前的一些相关工作当中,有的是将样本表示为一串数字或者是color word(颜色词),也有的是将其表示为标有形状和位置的连接组件列表。给定了任务的任何一种此类字符串表示形式,就可以将其呈现给语言模型(LM),能够通过简短提示来进行相应的预测。
实验结果
历经对 80 项任务的开发实验后,研究者最终呈现出 ARC 全部公共评估集的综合成效,并针对本文系统与现有方法展开了比较。分析主要围绕以下三个关键维度:本文测试时训练(TTT)方法所产生的影响、本文方法与现有方法相互整合带来的益处,以及全神经方法与程序合成方法之间的区别差异。
测试时训练的影响力。研究者把测试时训练与推理流程应用于本文的基础微调模型,此模型为未涉及任何语言模型(LM)数据的微调 8B 模型。准确率从 39.3%大幅跃升至 47.1%,成功超越现有端到端神经模型的成果表现。
与现有方法整合。近期一项研究成果引入了 BARC,通过融合神经与程序合成方法达成了 54.4%的准确率,此乃此前公开发表的最佳成绩。尽管其中的全神经方法与本文系统存在一定相似性,但本文 TTT 及推理流程具备若干独特的额外组件,能够有效提升性能。具体而言,本文测试时训练涵盖每个任务专属的低秩自适应(LoRA)以及规模更为庞大的增强数据集;而预测流程则纳入可逆变换下的增强推理与分层自我一致性(self - consistency)投票策略。为验证这些改进举措的有效性,研究者将本文 TTT 流程应用于 BARC 的全神经模型,所获准确率达 53%,较初始 TTT 方法提升幅度高达 35%。
这一最终配置达成了全新的 SOTA 水平,其性能与人类平均性能的 60.2% 相当。毋庸置疑,这无疑是一项意义非凡的重大进展,不过与人类 97.8% 的最佳表现相比,仍存在着较为显著的差距,这也意味着后续尚有进一步提升的广阔空间。
程序生成与端到端建模的比较。程序合成与应用于 ARC 的全神经预测器之间具备极为强劲的互补特性,即便它们是在相同任务上开展训练亦是如此。此前的端到端神经模型仅仅能够解决程序合成模型所处理任务的 42.2%。但研究人员发现,当配备本文所提出的 TTT 管道时,BARC 经过微调的全神经模型能够解决程序合成模型所解决任务的 73.5%。由此可见,本文的 TTT 管道极大地增强了神经模型学习系统推理模式的能力,且该推理模式与程序合成模型所捕捉到的推理模式相近。
若需了解更多研究详情,请查阅原论文。
论文标题:The Surprising Effectiveness of Test-Time Training for Abstract Reasoning
完
领取专属 10元无门槛券
私享最新 技术干货