AREX Feed Article
1 亿参数从零训练、不用 LLM:独立研究者称在 ARC-AGI-2 Kaggle 得 37%,或为无 LLM 最高分
北京时间 11 月 12 日凌晨 2 时 17 分(11 月 11 日 18:17 UTC),独立研究者 Mithil Vakde 在 X 账号 (关注者 4,183 人,简介自述「试图解决样本效率问题」(Trying to solve sample efficiency),并标注此前为 IIT Bombay 工程物理专业 2023 届)宣布:他不用大语言模型、用约 1 亿参数从零训练的 looped transformer(循环 transformer,让中间的层反复执行),在 ARC-AGI-2 Kaggle 竞赛上得到 37%(提交页显示 37.08)。他称这「可能是无 LLM 的最高分」,峰值曾排到榜单第 6 名,并超过去年冠军方案 NVARC 的 27.64%。与推文同时发布的,是其个人站点上的技术 writeup《》,全文已提交 。
ARC-AGI-2 要求模型从几对示例网格中归纳隐藏规则,再为新的测试输入写出精确的输出网格,每题最多两次尝试。截至发稿,这条推文获得 348 赞、155 收藏、约 1.3 万浏览。writeup 写明,looping(循环)是最后一周才加入的,把他的分数从 33% 推到 35% 再到 37%;在全部 746 份 ARC Prize 2026 writeup 中,其余无 LLM 方案的最好成绩只有 12.08。37% 这一成绩与「无 LLM、从零训练」的定性目前均出自作者本人,对比性声明未经独立复核。
官方榜单上挂着 35.69:37.08 的口径边界
37% 的具体数字是 37.08。按 writeup 的说法,这个版本于 11 月 2 日 12:14 UTC、即截止时刻(23:59 UTC)前约 12 小时提交,但它在隐藏任务上的重跑在截止后才完成,Kaggle 把它标记为「Succeeded (after deadline)」,官方榜单不收录这一成绩。作者随 writeup 发布的提交页截图(Figure 9)显示,「440e 1024d - Version 4」得 37.08 且带 after deadline 标记,页面里被勾选的是 10 天前的一次提交:35.69。
官方榜单当前收录的是他此前的 76M looped 模型,35.69,图注写明列第 141 名。作者称其在榜单上曾排到第 6 名,随后被一批后期冲分的 Qwen 方案超过。即便只按官方在榜的 35.69,也已经高于 NVARC 的 27.64%——NVARC 是 ARC Prize 2025 的冠军方案,对 4B 的 Qwen 模型做微调。作者在 writeup 中写道,今年的头部提交「似乎都是 4B、27B 或更大的 Qwen/DeepSeek LLM」,而他的模型参数只有约 1 亿(writeup 给出 99.8M),且从随机初始化开始训练。
8 个块循环出 28 层深度
writeup 给出的架构核心是用循环换深度。整个模型只有 8 个 transformer 块:第 1~2 块(prelude,前奏块)各跑一次,中间第 3~6 块连续循环 6 次,第 7~8 块(coda,收尾块)各跑一次——2 + 4×6 + 2,从 8 份权重得到 28 次块传递。Kaggle 提交版本宽 1024、16 个注意力头,可训练参数 99.8M。
两个细节用来稳住这个长循环。训练期,前 5 次循环的状态也会提前穿过第 7~8 块和输出头去计分(deep supervision,深度监督),这部分损失的均值以权重 0.3 计入总损失,测试时只用第 6 次;每个块还通过一条可学习的 skip 连接(旁路)直接收到一份 token embedding(词元嵌入)的副本,prelude 的输出在每次循环开始时重新加回,循环因此不会丢掉「自己在看什么」。
其余设计大多是被算力上限或前代版本的失败逼出来的:竞赛环境是 4 块 L4 GPU、12 小时、断网,序列最长约 2.4 万 token,全注意力撑不住。作者使用了自创的 hub-and-spoke 稀疏注意力:每个 demo 对(示例题目的输入输出对)只看自己和作为中心(hub)的测试输入,测试 token 再通过带门控的第二路 softmax 读取全部 demo,注意力成本随 demo 数量线性而非平方增长。位置编码用 3D RoPE(行、列、角色三个维度),demo 对之间不记录顺序。模型逐格自回归地写出答案,demo 对全部放进上下文,没有任何每任务参数——它无法记住某个任务,每次都得从示例里重新读规则。
looping 的单项增益:同尺寸加 15~19 分
按作者的说法,looping 是比赛最后一周才加入的改动,也是他找到的最大单项增益。过去几个月,他的无 loop 模型(最大到 1B 参数)在 Kaggle 上停在 30%~32% 的平台,最好 33.89;加上循环后,两个 looped 模型首次提交就全部超过此前所有无 loop 版本,参数最多反而少了 10 倍。他在回复里写道:「。」
writeup 里有固定其他变量的对照。在 ARC-AGI-1 的 400 道公开评测题上(模型只用 1,307 道公开任务从头训练):同一个 8.4M 模型不加循环得 47.44,把中间四块分别循环 2、3、4、6 次后,分数升到 55.88、60.13、61.88、66.25。同深度换独立层也赢:12~32 个独立块的模型参数最多是它的 4 倍,在每个深度都低 2.3~7.6 分。作者把同尺寸对照概括为「+15~19 分」。
作者认为最清晰的一项对照是每任务嵌入:加上它,looping 的增益从 +16.8 分降到 +8.5 分——教师强制下的准确率几乎没变,输掉的是同一任务在不同旋转、换色视角下答案的一致性,投票因此更容易失败。作者的解读是:能查表的任务,模型就没有理由学一条对所有视图都成立的规则。
作者同时标注了自己的边界:每个配置只跑一个种子,主配置的两个种子相差 4.25 分,无 loop 基线没有单独调参,所以表中部分差距在噪声之内,looping 本身的增益不在。这套离线配方还让一个 19M 模型在 ARC-AGI-1 公开评测上得 70.25%(top-2,两次作答中任一次正确即计分),单次训练加评测约 3.7 个 H200 小时,成本约 13 美元;一个 1.05M 的小模型得 49.00,超过他自己 3 月用 76M 参数做出来的 44。
与 HRM、TRM 的分野:改隐藏状态,不改答案
此前的从零训练路线里,HRM 和 TRM 同样用循环,但循环对象是整张答案草稿——反复重写已经成型的输出。writeup 引用 ARC Prize 对 HRM 的分析称,其层级设计几乎不起作用,增益主要来自外层的答案精修循环,且大部分分数来自在评测任务本身上训练。mdlARC 不同:它从不回头修改已写下的格子,循环精修的是下一个待写格子的隐藏状态。
:HRM/TRM 标称 7M/25M 参数,实际还训练了 430M 以上的每任务嵌入值,mdlARC 的参数数就是全部模型;mdlARC 是自回归的,循环的正当性来自最小描述长度原则(MDL);层级循环他们试过,「完全没用」;训练「更便宜、更快」。按 writeup 的解释,模型是训练数据的压缩描述:深度负责计算,参数是你付出的描述长度,而 ARC 公开数据只有约 200 万 token,模型自身尺寸占了描述长度的大头。至于为什么不用 LLM,他的理由是样本效率:LLM 连 ARC 题都见过太多,「有了足够的数据,ARC-1/2 会变得平凡」,有趣的问题是只给少量 ARC 题能走多远。
作者也承认 loop 本身不新:深度上的权重共享可以追溯到 Universal Transformers 和 ALBERT,「中间块加 prelude 与 coda」的 recurrent-depth 设计来自 Geiping 等人 2025 年的工作;ARC 上今年的无 LLM 第二名(12.08)同样是一个从零训练的 looped transformer。他的说法是,没有找到此前在自回归解码器中间做 loop 的工作,但「我没查完所有文献」。
600 美元预训练、12 小时 Kaggle 微调
成绩的另一半在工程。Kaggle 版模型先在本地预训练:数据是 161,798 个拼图、3,826 个族,全部由前沿 LLM 在编码代理里写出的生成器程序制造——每个任务约 42 个同规则变体,再把两个任务组合成新任务;模型只看这些程序输出的网格,不看程序或任何文本,也没有用 ConceptARC、RE-ARC 或 NVARC 的数据。预训练跑 440 个 epoch(轮次),在 8 块 B300 上用了 14.1 小时,约 600 美元。
到了 Kaggle 的 4×L4 上,模型对隐藏任务的 demo 对做 180 个 epoch 的全参数微调,作者测得全微调比 LoRA(一种低秩适配的轻量微调方法)高约 10~20 分,并由时间守卫保证在第 10 小时前收尾;最坏序列 7,444 个 token,单卡显存占用 20.68 GiB,逼近 24 GB 上限。答题时每个任务生成 40 个视角(旋转、反射、换色,并轮流抽掉一个示例),投票取最常见的两个网格作为两次作答;3 个多 token 预测头做投机解码,只提速、不改答案。作者在回复中——训练约 5 小时、解码不到 1 小时,「Kaggle 队列很长,无法确定」。
Kaggle 重跑隐藏集时不返回日志,notebook 因此先写一份合法的占位 submission.json,每个阶段自己捕获错误,失败信息编码进输出文件的大小。这套机制派上了用场:一次数据并行提交在重跑时得了 0.00,作者靠文件大小编码把原因定位到微调阶段——最可能是 GPU 间通信挂起。他还把这套设定做成了新基准 :固定 1,307 道公开任务(约 200 万 token)从零训练,不限架构和算力,当前纪录就是他的 19M looped 模型;仓库页面于 11 月 11 日更新,规则和基线「随发布补上」。
代码权重全开源,等待独立核验
writeup 结尾的链接列表里,代码(MIT-0 协议,tag v3.1-nov2026)、99.8M 权重、Kaggle notebook 和 4,013 个生成器全部公开; 目前有 164 颗星。他给 ARC Prize 参赛者的建议写在文末要点(Takeaways)里:不需要 LLM 也能在 ARC-AGI-2 上有竞争力;给模型加循环——「几行代码,不加参数」;把每任务参数去掉;真正的瓶颈在候选选择——正确答案往往已经生成出来,只是没进前二,各次运行中 oracle(正确答案已在候选之中时的得分)比 top-2 高 9~14 分。
里有祝贺:做深度学习教程的 Yacine Mahdid 写道「looping 的提升这么大,真有意思」;也有——「它用什么训练的?你怎么确保它不是在刷榜?」
作者自己标注的限制同样具体:最终模型严重欠训练、实现粗糙;每个任务约 42 个生成变体是否有效「没测过」;hub-and-spoke 与全注意力之间没有对照实验;为什么循环恰好 6 次有效,他也不知道。37.08 目前不在官方榜单上,它能从「作者自述」变成「可引用的成绩」,要等论文 track 的评审和社区的独立复现来决定。