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:
https://github.com/rgreenblatt/arc_draw_more_samples_pub
采样每增加一倍,精度提高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相对于人类来说是聪明的,但我确实认为它是具有『智能』的。」