结论先给:这篇博客最诚实的东西不是44%,也不是67美分,是作者在监督式改动涨了4个点之后写下的那句“我不理解原因”。这句话值钱,不是因为它谦虚,是因为它把这条涨分路径的边界划出来了一部分。18%到44%之间这二十几个百分点,不是模型变强了,是测试协议变了——这件事该被讨论一万遍,但没人讨论,因为44%和67美分太好转发了。
先把条件复述一遍,后面所有判断都从这里长出来:一块RTX 5090,从初始化开始训一个8层Transformer,约1.5小时。训练对象包括训练谜题——也包括评测谜题本身,评测标签隐藏。每个谜题一个可学习加性嵌入,位置用3D RoPE。推理时对测试输入做颜色置换和二面体置换增强,输出逆增强,提交两种最常见的输出投票结果。这些条件下ARC-AGI-1拿44%,ARC-2拿7%。最刺眼的条件不用我点你也能看见:评测谜题参与训练。
“算不算作弊”的争论我不想展开。作者在原文里回应了,理由是ARC是元学习基准不是监督学习,训练评测输入属于转导推理,可以追溯到Vapnik;测试策略禁止的是设计者预先知道测试内容,不禁止测试时训练;官方比较对象TRM和HRM也这么干的。这套回应在评测设计框架下站得住。但“是不是作弊”本身是个太扁平的问法。真正的问题是:如果测试时训练不算作弊,那ARC-1在允许测试时训练的协议下到底在测什么?
把消融数据拉出来,按“这个改动往哪个方向动了多少分”整理如下:
| 配置 | ARC-1分数 | 判断 |
|---|---|---|
| 完整方法(监督式,含额外数据) | 44% | 参考线,但别脱离条件转述 |
| 训练输入token版本(无监督) | ~39% | 差5个点,机制未知 |
| 去额外数据(仅ARC-1+ConceptARC) | ~40%(需约两倍算力) | 额外数据贡献4个点,有算力代价 |
| 去3D RoPE(换1D) | ~24% | 表示层基础,贡献最大 |
| 去每任务嵌入 | ~24% | 同上 |
| 逐任务从零无监督(CompressARC风格) | ~18% | 无测试时训练的下限参照 |
| 逐任务监督版本 | ~15% | 低于无监督,交互复杂 |
18%那行才是说明问题的数字。逐任务从零无监督,按CompressARC做法,只能拿18%。完整方法拿44%。中间这26个点,大头不是SwiGLU、不是RMSNorm、不是8层替换4层——甚至主要不是数据增强——是测试时训练协议本身。每任务嵌入去掉掉到24%,3D RoPE换1D同样掉到24%。这两项是表示层,不是架构现代化。至于SwiGLU和RMSNorm这套升级,在这个实验里的贡献跟上面那几个消融比,属于边角料。
这话可能有人不爱听,但我横评里反复强调一件事:别把架构升级的边际贡献当主因。SwiGLU和RMSNorm在LLM预训练里确实好用,可放到这个从零训练1.5小时、67美分算力预算、8层小Transformer的场景里,连单独消融都没人给。作者博客里没拆SwiGLU对RMSNorm的对照,不是因为藏了东西,是因为这套升级打包上的,他自己也拆不出每项贡献几成。小模型从零训练的文献里这是常态,不是例外——大家都在刷分,没几个人认真做消融。这篇博客的消融表已经比同行平均水平强不少,但仍然拆不开架构现代化那几项各自的值。
文中岔开说一句:HRM/TRM的“7M模型”标签,作者直接点出是误导性的,实际还训了O(100M+)的嵌入权重,应叫“7M活跃权重”。这个批评对。ARC小模型赛道上参数量口径一直是软的,各说各话。7M被转出去的时候,没人提嵌入权重另行训练。这就是典型的裸数字——脱了计量口径的参数量,跟脱了测试协议的分数一样,看着精确,经不起追问。
现在说那4个点。作者明说监督式改动是这次最大变化之一:训练损失不再算输入token,只算输出token。这项改动把分数从约40%推到44%,但测试损失反而更差,只是分数更稳定、方差更小。然后作者原话是“我不理解原因”。
这句话值钱。
不是因为它暴露了作者哪里没做够,是因为它诚实划出一条线:44%这个数字里,至少有4个点来自一个看不见的机制。如果这4个点是噪声,那真实可归因的分数是40%,不是44;如果这4个点是真实效应,那小模型在ARC上的涨分路径仍然是黑箱。两种情况结论一样:我们离“知道自己在做什么”还有一段不短的距离。
这比那些拿到分数就着急写机制解释的刷榜报告强。这行里太多人拿到一个数就急着往回套因果,好像用了SwiGLU加RMSNorm就一定该涨。这篇博客的作者没有。他不理解,就回了一句不理解。这恰恰是44%比那些包装成“我们发现了XX机制”的东西更有参考价值的原因——它的边界被标出来了一部分。
但别把这话理解成给“试出来就行”辩护。不是。试出来不知道机制,算结果,不算可复现的判断。换一组约束,那4个点还在不在,没人敢打包票。监督式改动只在一个特定协议、一个特定规模、一次训练里给出正效应。作者自己在博客里说了这是当前版本下的结论,我也只说这一轮数据。下次换了优化器或增强种类,这4个点可能就消失。所以你别拿44%去跟别的模型直接比,尤其别跟没做测试时训练的比。那种比较是耍流氓对比,两边连同一把尺子都不是。
作者自己也清楚。他在博客里明确说只拿TRM、HRM、CompressARC比,不和LLM直接比。这个克制是对的,但即便如此也有问题。TRM和HRM的测试时训练协议跟这次的具体做法不完全可比——训什么、怎么训、算力花多少,每个变量都不同。一次训练所有测试任务这做法在ARC社区不是他首创,但把它跟67美分全生命周期成本绑一起讲,是新的,也是最有传播力的。问题就在这:传播力强的东西最容易脱离原条件被转述。44%现在是独立的了,67美分也是。这俩绑一块变成“一个人用一块5090和一个半钟头把ARC-1刷到44%,总花费67美分”,到了这一步,所有消融数据、协议争议、作者自己承认的不理解,全被过滤掉了。这就是标题的宿命。
接着往下说。作者对LLM在ARC上的批评其实挺尖锐:公开榜分数参考价值有限,因为答案已经躺在互联网上了;LLM在ARC-2上的进步主要来自后训练,基础模型还停在个位数。这个判断对。互联网数据污染对公开评测集的伤害,全行业都知道,没几个人公开处理。但如果把这标准套回来,作者自己这次跑的也是公开评测集,输入可见,标签隐藏,但非独立于公开信息。污染路径和LLM不同——不是靠记忆答案,是靠专门针对评测输入从零训练——但对“这个分数能不能代表对未知任务的泛化”的伤害一样大。只是方式不同。
所以作者建议未来ARC-1/2禁止离线训练或预训练,要求模型提交后从零训练。这不是随口说的。这条建议等于承认:现有协议下,公开榜分数已经被协议本身稀释到很难解释的地步。一个自己测试时训练的模型作者,建议以后基准禁止离线训练——这中间的张力才是这篇博客真正想说的。我不觉得这人虚伪。他只是比大多数刷榜的人更早看到了同一个结论:这把尺子的量程到头了。
回到成本。67美分这个数,作者标得很清楚:生命周期计算成本,含从初始化训练到所有任务推理的开销。这个定义有边界,不含硬件购置、电费、开发者时间。作为对比基准,这个口径在ARC小模型赛道上其实是最合理的——大家在同一块GPU上跑,电费和硬件成本近似抵消,算力成本才是真正差异项。问题是这数从“生命周期计算成本”缩成“成本”,口子就开了。5090本身的价格不在67美分里,1.5小时训出来的CUDA和PyTorch生态也不在。你要复现,先买块5090。当然这算抬杠——作者没这么宣称。但“67美分”被转的时候不会带这些条件。一个裸数字就这么生成了。跟我刚入行时看到“几块钱训出能打CIFAR的模型”当新闻一样,严格说数字是真的,只是跟我们以为的那个东西没关系。
作者对递归的质疑——他说自己不用递归就达到类似性能,递归唯一确认的好处是增加计算不增加内存搬运——这个我不表态。ARC这个规模的任务,递归是不是“下一代突破”不是这次工作能验证的。他没证明递归没用,只说在他的协议下递归没有贡献。这个偏执提一嘴就够。缺同样条件下的对照实验,任何关于递归是否有用的结论都是裸数字。
如果这篇博客只是告诉你“44%不是你以为的那个44%”,那它最多算一篇免责声明。但它不是。它值得你花时间的理由是具体到场景的:
你做ARC小模型研究,或者关心小模型在ARC上的涨分路径,读这篇博客,但别读44%。读消融表,特别是3D RoPE和每任务嵌入那两行——它们证明表示层在转导学习里的贡献比架构现代化实在得多。这个信息对这个方向有直接指导意义。
你关心基准设计——ARC还能不能承担“测流体智能”这个任务——这篇博客是个好数据点。价值不在于拿了44%,在于把测试协议对分数的影响量化到26个百分点,并且作者自己站出来建议以后禁止离线训练。基准维护者该认真读这段。正在写刷榜报告的人也该读,读完可能就不会那么急着解释为什么涨分了。
你只想找个“67美分逼近AGI”的故事转发,这篇博客给不了你。它给的是相反的东西:一个经过仔细消融、边界被部分标出、但核心机制仍然未知的实验。这种内容在ARC赛道上是少数。别转数字,转它的结论——分数是现象,条件才是结论。
补一句公正补丁:我没提的部分不是没意思。作者开放了源代码,邀请改进但明确请求不要额外增加训练数据以保持从零训练约束的公平性——这个对。他对“递归是下一代突破”的怀疑,虽然没给同条件对照,但作为问题本身值得追。不过这些都不是这篇博客最需要被看到的地方。最需要被看到的是那张消融表,和一句“我不理解原因”。这两样比44%和67美分耐读得多。这个结论是当前版本下的,下个大版本如果哪家改了测试协议或关掉ARC-1公开榜,我会重跑——盯着呢。
