号称不可能轻易被击败的 AGI 基准 ARC-AGI 被 GPT-4o 撼动,GPT-4o 以在公共测试集 50%、在训练集 71% 的准确率成为了新的 SOTA!
ARC-AGI 是唯一可以用来衡量通用人工智能进展的基准,创造者 François Chollets 曾经掷下豪言 ——
「它不可能轻易被击败!」
为了测试这一点,他于 2020 年在 Kaggle(Google LLC 旗下的数据科学竞赛平台)上主办了首届 ARC-AGI 竞赛。
获胜团队 icecuber 在测试集上仅取得了 21% 的成功率,这个成绩强有力地证明了 François 的断言是正确的。
此后几年,来自世界各地的挑战者不断刷新这个纪录,但进展缓慢。ARC-AGI 似乎成为了一座不可跨越的高山。
可是这周二,ARC-AGI 基准无法被挑战的神话被 GPT-4o 撼动了!GPT-4o 以在公共测试集 50%、在训练集的保留子集 71% 的准确率成为了新的 SOTA!
ARC-AGI 上周被大肆宣传为 LLM 无法解决的基准。这个说法激发了我亲爱的同事 Ryan Greenblatt 的斗志,因此他上周试图用 LLMs 来解决这个问题。Ryan 在一组示例中获得了 71% 的准确率,而人类的准确率为 85%;这(GPT-4o)是 SOTA。
这个消息也迅速登上了 HN 热搜榜。
值得一提的是,今年 Mike Knoop、François 和 Lab42 联手创建了 2024 年 ARC 奖,奖金池超过 110 万美元。
为了完成这个挑战,Ryan 放弃了一个星期的项目,设计了很多花哨的技巧,争取了高性能:
训练集:71% vs. 人类基线 85%
测试集:51% vs. 之前的 SOTA 34%(人类基线未知)
但遗憾的是,此提交不符合 ARC-AGI 奖项和主要排行榜的资格,因为它使用闭源模型和过多的运行时计算。
可能 Ryan 会提交到私人排行榜中吧。
什么是 ARC-AGI?
ARC-AGI 的数据集由视觉问题组成,输入输出示例是由彩色单元格组成的网格,任务是猜测从输入到输出的转换规律,然后补全缺失的网格。
看起来很简单对吧,就像是小学的奥数题,让 GPT-4o 来解决也并不困难。不过,公共测试集中的任务要难得多,对于人类来说,也会有些棘手,但并非不可解决。
每一项 ARC-AGI 任务都是经过人工验证的,包括公共测试集,确保 ARC-AGI 的所有任务都可以由人类解决。
毕竟这是一个通用人工智能基准,如果连人类自己都难倒了,那拿去测试 LLM 也说不过去。
据报道,亚马逊土耳其机器人 (Amazon Mechanical Turk,MTurk) 训练分布的人类基线是 85%,但没有针对公开测试集的人类基线,不过我们已知的是,公开测试集更难,那么针对公开测试集的人类基线应该会更低。
Ryan 给出了测试集中的一些代表性的问题,以及他基于 GPT-4o 的解决方案是否回答正确。
问题 1:
问题 2:
问题 3:
从 Ryan 给出的这 3 个例子中可以看出,GPT-4o 答对了三分之一。(跟小编的胜率一样,前 2 个图密密麻麻,没看出个所以然来…)
怎么让 GPT-4o 做到的
Ryan 的解决方案的主要思路非常简单:让 GPT-4o 生成约 8000 个尝试实现转换的 python 程序,选择一个在所有示例(通常有 3 个示例)中都正确的程序,然后提交该函数应用于额外测试输入时产生的输出。
Ryan 以图像和各种 ASCII 表示形式向 GPT-4o 展示了该问题。
这种方法在本质上与 AlphaCode 中应用的方法类似,在 AlphaCode 中,一个模型会生成数百万个试图解决编程问题的完成项,然后对这些完成项进行汇总,以确定要提交的内容。
从更高层次上来解释,Ryan 使用的方法是:
-
向 GPT-4o 介绍 ARC-AGI 的问题,并为问题中的每个网格提供图像表示法和各种文本表示法。
-
指导 GPT-4o 推理背后的规律,进一步推理如何用代码实现转换,最后用代码实现。
-
使用几次提示以及几个精心手写的分步推理示例来实际让 GPT-4o 有效地进行此推理。生成的提示通常长度约为 30k 个 token(包括图像)。
-
从 GPT-4o 中抽取大量的完成样本(每个问题约 5000 个)。
-
针对每个问题选取最有希望的 12 个补全,然后通过向 GPT-4o 展示该程序在示例中的实际输出,并要求 GPT-4o 修改代码使其正确,从而尝试修复每个补全。
-
然后,根据对正确示例程序的多数投票结果,选出 3 个提交程序。
概括来说,Ryan 通过足够长的、精雕细琢的少样本提示,生成许多可能的 Python 程序,从大约 5k 个猜测中,使用示例选出最佳猜测,然后进行调试。
除了对训练集进行迭代外,Ryan 还对公共测试集的 100 个问题子集进行了少量迭代。
在这里介绍的所有结果都是在不重叠的公共测试集的另一个子集上计算得出的。
训练集和测试集不是独立的,而且测试集的难度更大,因此使用测试集的子集进行迭代有助于快速更好地了解问题随难度的变化。
不幸的是,这些测试集不是独立同分布(Independent Identically Distribution,IID):这使得迭代变得更加困难和混乱。
关于方法的更多细节,以及完整的解决方案,可以参阅项目的 GitHub:
采样每增加一倍,精度提高 3%
如果有更多的采样,性能会有所提高吗?
答案是会的!
缩放 Python 采样数量可以可靠地提高性能,每增加一倍,精度提高 3%。
而且这距离 AlphaCode 使用的数百万个样本还很远!
GPT-4o 存在的非推理弱点
GPT-4o 看不清楚。GPT-4o 在网格上的视力很糟糕,当被要求描述一个较大的网格中的内容时,它通常无法正确「看清」输入,并陈述有关某些位置的颜色或存在的形状的错误事实。
GPT-4o 不太擅长编码(特别是对于此类几何操作问题),并且经常犯一些简单的错误,例如差一错误(Off-by-one error,OBOE)。
当上下文中的 token 超过 32k 时,其性能会下降。
消除这些非推理弱点将显著提高解决方案的性能,而这些问题似乎很可能通过规模化(scalling)来解决。
距离 ARC-AGI 大奖还有多远?
如何才能达到 ARC-AGI 所设定的 85% 的大奖目标呢?
Ryan 做出了非常「数据化」的预测。
70% 的可能性:一个由 3 名顶尖 ML 工程师组成的团队,通过微调 GPT-4o(包括 SFT 和 RL)、1000 万美元的计算量和 1 年的时间,可以使用 GPT-4o 超越 MTurk 85% 的人类基线(简单训练集)。
35% 概率:在上述同等条件下,公共测试集上的概率也可达 85%。目前还不清楚哪些人在测试集上的表现 >=85%,尽管这对于聪明的人来说可能并不难。
80% 的概率:下一代多模态大模型(例如 GPT-5)将能够大幅提高 ARC-AGI 的性能。
LLM 有学习能力吗
Ryan 引用了 François Chollets 的一段话 ——
如果你是对的(LLMs 可以进行情境学习),那么,LLMs 在 ARC 谜题上会表现得很好,因为 ARC 谜题并不复杂。你不需要认真思考它,它们实际上对人类来说非常明显。
即使是孩子也可以做到,但 LLMs 不能。即使 LLMs 的知识比你多 100,000 倍,仍然做不到。ARC 唯一的特殊之处在于它的设计初衷就是为了抵制记忆。这是 LLM 性能的巨大障碍。
如果仔细观察 LLMs,很明显他们并没有真正即时合成新程序来解决他们面临的任务。
Ryan 则认为,LLMs 在进行上下文学习时实际上做了一些相关的「学习」。
尽管整体性能非常弱,远远不如人类(否则他就不需要在他的解决方案中抽取数千个样本),但这仍然是一种学习。
「我的观点并不是说 GPT-4o 相对于人类来说是聪明的,但我确实认为它是具有『智能』的。」
参考资料:
-
https://x.com/bshlgrs/status/1802766374961553887
-
https://redwoodresearch.substack.com/p/getting-50-sota-on-arc-agi-with-gpt