返回列表

ARC Prize 2025 Competition Writeup: 5th Place

677. ARC Prize 2025 | arc-prize-2025

开始: 2025-03-26 结束: 2025-11-03 数学与计算 数据算法赛
ARC Prize 2025 竞赛总结:第 5 名

作者: Lonnie (lonnieqin)

发布时间: 2025-11-12

竞赛: ARC Prize 2025

排名: 私有排行榜第 5 名

概述

本提交 fork 了来自 @sanyul2024 年第一名 LB 5.83 基线 笔记本,以及来自 @boristown2024 年第一名基线 笔记本,后者源自 ARC Prize 2024 第一名解决方案,由 ARChitects 团队(Daniel Franzen 和 Jan Disselhoff)提供。完全归功于他们所有人的杰出工作。

我的提交笔记本可以在这里找到:https://www.kaggle.com/code/lonnieqin/lb-5-83-baseline-from-1st-place-of-2024

性能表现

公共排行榜: 第 344 名

私有排行榜: 第 5 名

从公共排行榜到私有排行榜排名的巨大提升,突显了模型泛化能力的重要性,以及在使用小型评估集时超参数优化在竞争性机器学习中的关键作用。

解决方案结构

解决方案由以下几个关键组件组成,组织如下:

1. 核心基础设施文件:

  • model_runner.py: 处理模型加载、训练、推理和词汇表缩小
  • selection.py: 实现各种算法以选择最佳预测
  • async_tools.py: 管理跨多个 GPU 的并行执行
  • common_stuff.py: 包含所有超参数和编排逻辑的中心配置枢纽

2. 训练管道:

  • 多 GPU 分布式训练(4 个 GPU),使用不同的数据分割
  • 在量化基础模型(Nemo Mini)上进行 LoRA 微调
  • 数据增强(转置、旋转、颜色置换)
  • 针对特定任务的 priming 以改进预测

3. 推理管道:

  • Turbo DFS(深度优先搜索)束搜索用于高效解码
  • 用于预测选择的增强评分机制
  • 跨多个 GPU 的并行推理
  • 结果缓存和增量处理

4. 执行流程:

  • 4 个 GPU 并行训练 → 等待完成 → 4 个 GPU 并行推理 → 聚合结果 → 生成提交

方法论

该解决方案采用微调语言模型方法来应对 ARC-AGI 挑战:

基础架构

  • 模型: Nemo Mini(在 ARC 2024 数据集上微调——ARC 2024 的最佳解决方案)
  • 微调: LoRA(低秩适应),rank 为 32
  • 活跃层: 仅前 32 层可训练,以减少过拟合

数据表示

  • 任务使用专用格式化程序(ArcFormatter_premix_3)转换为文本格式
  • 输入/输出网格序列化为 token 序列
  • 最大序列长度:4,224 tokens(训练),8,192 tokens(推理)

训练策略

  • 增强: 转置、旋转、随机颜色置换、示例洗牌
  • Epochs: 4 个 epoch,每个 240 个训练步骤
  • 多 GPU: 数据分布在 4 个 GPU 上(每个处理约 1/4 的任务)
  • 学习率: 1e-4(主),1e-5(嵌入)

推理策略

  • 特定任务 Priming: 在预测之前,模型会在每个测试任务的示例上进行短暂重训练
  • Turbo DFS 束搜索: 高效探索多个预测候选
  • 增强评分: 在多个增强版本上评估预测以选择最稳健的解决方案
  • 概率跟踪: 维护累积概率以识别最佳候选

我的贡献:将随机种子视为超参数

虽然本解决方案建立在强大的 2024 年第一名基线之上,但我做了一个关键修改,结果证明影响惊人:

将随机种子更改为 19920627,这是基于对种子值的实证探索选择的。

随机种子作为合法的超参数

小样本量场景下(如本竞赛的 240 个评估任务),随机种子应被视为一流超参数,而不是事后想法。这是因为:

  • 小样本的高方差: 每个排行榜分割只有 120 个任务,仅多解决 1-2 个任务就能 dramatically 改变排名
  • 随机模型行为: 随机种子影响多个管道阶段,产生意义不同的模型行为
  • 特定任务交互: 不同的种子可能产生更适合特定任务类型的增强模式或训练动态

这种种子改变会在整个机器学习管道中产生级联效应:

  • 数据洗牌: 改变训练示例呈现的顺序
  • 增强模式: 修改应用于训练数据的旋转、转置和颜色置换
  • 模型训练: 影响 LoRA 层中的权重初始化和训练动态
  • 推理行为: 改变束搜索解码中的随机元素
  • 收敛路径: 导致不同的优化轨迹和最终模型状态

超参数景观:超越随机种子

虽然随机种子优化在本竞赛中被证明是有效的,但重要的是要认识到该解决方案空间包含众多其他值得系统探索的超参数

1. 模型选择和架构超参数

基础模型选择 - 最具影响力的决定之一:

  • Nemo Mini(当前选择): 高效,推理快,平衡性好
  • Llama 3.1 变体: 8B, 70B 模型,具有不同的推理能力
  • Qwen 2.5: 在推理任务上表现强劲
  • Gemma 2: Google 的开放模型,具有不同的架构选择
  • Phi-3/Phi-4: Microsoft 的小型语言模型,针对推理优化
  • Mistral 变体: 7B, Mixtral MoE 模型,具有不同的权衡
  • DeepSeek 模型: 强大的编码和推理能力

不同的基础模型具有根本不同的:

  • 词汇表和分词策略(影响网格表示)
  • 架构归纳偏置(注意力模式、层深度)
  • 预训练分布(某些模型看到更多代码/结构化数据)
  • 上下文窗口能力(影响最大任务大小处理)
  • 推理速度和内存要求(计算约束)

架构配置:

  • LoRA rank: 当前设置为 32,但可以探索 8 到 128+ 的值
  • LoRA alpha: LoRA 更新的缩放因子
  • LoRA 目标模块: 哪些层应用 LoRA(注意力、MLP、两者)
  • 可训练层: 当前为前 32 层;不同的层选择可能捕获不同的抽象
  • 量化级别: 4-bit vs 8-bit vs 全精度权衡
  • 家族内的模型大小: 不同的参数量捕获不同的复杂度级别

2. 训练超参数

  • 学习率: 主 (1e-4) 和嵌入 (1e-5) 率可以独立调整
  • Epoch 数量: 当前为 4;更多 epoch 可能会改善收敛或导致过拟合
  • 训练步骤: 每个 epoch 240 步是另一个可调参数
  • Batch size: 影响训练稳定性和泛化
  • 梯度累积步骤: 用于有效的大 batch size
  • 优化器选择: Adam, AdamW, SGD 具有不同的动量值
  • 学习率调度: 恒定 vs 余弦衰减 vs 线性 warmup 策略
  • 权重衰减: 正则化强度
  • Dropout 率: 如果适用于微调策略

3. 数据增强超参数

  • 增强概率: 每个增强应用的频率
  • 增强类型: 包括/排除哪些变换(转置、旋转、颜色置换)
  • 示例洗牌策略: 演示示例的不同排序
  • 颜色映射方案: 替代颜色置换策略
  • 旋转角度: 90°, 180°, 270° vs 其他变换
  • 增强组合: 顺序 vs 并行应用

4. 推理超参数

  • 束搜索宽度: 同时探索的候选数量
  • DFS 深度限制: 在解空间中搜索多深
  • Temperature: 生成采样温度(通常 0.1 到 1.5)
  • Top-k/top-p 值: 核采样参数
  • 重复惩罚: 阻止重复模式
  • Priming epochs: 在测试任务示例上微调多长时间
  • 增强数量: 评分多少个增强版本
  • 最大生成长度: 输出的 token 限制

5. 选择算法超参数

  • 评分权重: 如何平衡不同的评分标准
  • 集成策略: 如何组合多次运行的预测
  • 置信度阈值: 何时信任预测 vs 探索替代方案
  • 投票机制: 多数投票 vs 加权投票 vs 共识策略

小样本量优势

在具有小型评估集(100-500 个样本)的竞赛中,这些超参数变得特别有影响力,因为:

  • 较低的统计效力: 单个超参数选择在最终分数中产生可测量的差异
  • 更高的方差敏感度: 小的改进(1-3 个额外正确预测)转化为显著的排名变化
  • 探索可行性: 由于测试数据有限,对超参数进行系统网格搜索或随机搜索在计算上是可行的
  • 过拟合机会: 超参数可以调整以利用小型评估分布的特定特征

这并没有贬低成就——相反,它强调全面的超参数优化是一种有价值且合法的竞赛策略,特别是在评估集受限的情况下。

动机:随机种子优化背后的统计学

我的方法动机在于理解竞赛的统计景观

竞赛结构

  • 公共排行榜: 120 个样本(竞赛期间反映在公共排行榜上的分数;样本对参与者不可见)
  • 私有排行榜: 120 个样本(用于计算最终私有分数;2025 年 12 月 5 日后公布)

随机种子策略

鉴于:

  • 大多数竞争性解决方案都是同一基线笔记本的变体
  • 由于随机性,同一模型在不同运行中可能产生不同的分数
  • 公共排行榜和私有排行榜中都只有 120 个样本

这创造了一个机会: 系统地探索超参数(包括随机种子)即使没有根本的算法改进,也能产生显著不同的排名。

分数方差分析

我在不同随机种子下观察到的表现:

  • 最佳公共排行榜分数:4.17% (5/120 任务)
  • 估计私有分数:~10% (12/120 任务)
  • 本笔记本的分数范围:3.33% 到 6.67%(上限可能更高) 跨越不同的随机种子配置
  • 分数方差:±3.34 个百分点(相当于 120 个任务中的 ±4 个任务)
  • 像素级敏感度放大: 全有或全无的评分(一个像素错误 = 完全失败)放大了这种方差;超参数微调将预测推向边界任务的精确匹配可以摇摆 1-2 个完整解决,相当于 1-2% 的分数跳跃。

这种2 倍的性能变化(从 3.33% 到 6.67%)证明了随机种子作为小样本场景中超参数的巨大影响。

公共排行榜景观:

  • 8 个团队 achieved >10% 分数 (>12 个任务解决)
  • 即使在顶级解决方案中也存在显著方差
  • 顶级解决方案可能受益于强大的架构有利的超参数配置

概率计算

问题: 在简化假设下,模型在独立任务上的基础准确率为 4%(实际情况并非如此,因为任务准确率不同且存在依赖关系),达到 10% 分数(12/120 任务)的概率是多少?

假设每个任务独立,成功概率 p = 0.04:

  • P(X ≥ 12) 其中 X ~ Binomial(n=120, p=0.04)
  • 期望值:E[X] = 120 × 0.04 = 4.8 任务
  • 标准差:σ = √(120 × 0.04 × 0.96) ≈ 2.15
  • P(X ≥ 12) ≈ P(Z ≥ (12 - 4.8) / 2.15) ≈ P(Z ≥ 3.35) ≈ 0.04 %

如果纯粹是随机的,这是极不可能的(约 1/2500 的机会)!

真正的洞察

然而,实际机制更为细微:

  • 模型能力因任务类型而异: 模型在某些任务模式上可能有 10-15% 的准确率,而在其他任务上为 0-2%
  • 超参数影响特定任务性能: 不同的超参数配置(包括种子、基础模型和训练策略)产生不同的增强模式和模型行为,导致特定任务上的性能变化
  • 小样本量放大: 每个分割只有 120 个任务,小的改进(多解决 1-2 个任务)会产生巨大的排名跳跃
  • 模型选择至关重要: 不同的基础模型在不同任务类别中具有不同的优势——有些擅长空间推理,有些擅长模式完成或颜色变换

战略含义:

  • 虽然 LLM 在 ARC-AGI 推理上挣扎(根本限制),但通过以下方式可以实现竞争性结果:
    • 从强大的基线开始
    • 系统超参数探索(种子、学习率、增强策略等)
    • 探索不同的基础模型架构 (Llama, Qwen, Gemma, Phi 等)
    • 理解哪些任务类型受益于不同的配置
    • 利用竞赛的小型评估集进行针对性优化

竞争现实

不是关于操纵系统——而是关于:

  • 认识到在小样本场景中所有随机元素都是合法的超参数
  • 理解竞赛排名反映模型质量最佳超参数选择
  • 承认在 240 个评估样本下,超参数优化至关重要
  • 欣赏超参数调整是一项核心机器学习技能,而不是捷径
  • 认识到基础模型选择本身就是一个关键的超参数选择

我的第 5 名成绩验证了,虽然解决 ARC-AGI 从根本上仍然极其困难,但通过仔细探索超参数空间(包括经常被视为理所当然的参数,如随机种子和基础模型架构的基础选择),在这种格式中实现竞争性性能是可行的。

成功之处

  • 强大的基线架构: ARChitects 的原始设计被证明作为基础非常有效
  • 多 GPU 分布: 能够在竞赛紧张的时间约束内处理所有任务
  • 特定任务 Priming: 通过 conditioning individual challenge 特征改进预测
  • 增强评分: 通过更稳健的评估指标增强预测选择
  • 超参数优化: 将随机种子视为可调超参数实现了竞争性结果,3.33% 到 6.67% 的分数方差证明了显著影响
  • Nemo Mini 作为基础模型: 在此特定任务分布上平衡了效率和性能

改进空间

  • 系统超参数搜索: 对多个超参数(不仅仅是随机种子)进行原则性的网格搜索或贝叶斯优化可以识别更好的配置
  • 基础模型探索: 测试替代基础模型(Llama 3.2, Qwen 3, Gemma 3, Phi-3/4, Mistral, DeepSeek)可以揭示更适合 ARC-AGI 推理模式的架构
  • 模型集成方法: 结合具有不同架构偏置的多个基础模型的预测可以提高鲁棒性和对不同任务类型的覆盖
  • 种子集成策略: 与其选择单个最佳种子,不如在多个种子配置上平均或投票以减少方差
  • 公共 - 私有差距分析: 更深入地调查分数差异将为未来竞赛提供有价值的见解
  • 选择算法: 更复杂的预测选择方法可以提高一致性
  • 架构增强: 探索 LoRA 微调之外的修改(全量微调、适配器层、前缀微调)可能会解锁进一步的增益
  • 边缘情况处理: 针对具有不寻常或罕见模式的任务的更好策略
  • 小样本交叉验证: 为具有有限评估数据的竞赛开发稳健的验证策略
  • 多阶段超参数优化: 顺序优化(模型选择 → 训练超参数 → 推理超参数)可能比随机搜索更有效
  • 像素精度鲁棒性: 在超参数搜索期间开发容错评分代理,以更好地处理单像素失败风险,例如通过验证中的软匹配指标来指导精确预测而不过拟合噪声。
  • 符号函数生成: 与其直接逐像素预测输出网格,不如探索从多样训练样本生成可解释的变换函数(例如,通过程序合成或规则归纳)。这种方法可以通过更抽象地捕获底层模式来增强对未见任务变化的泛化,减轻原始像素输出的脆弱性。

结论

这次竞赛经历既令人谦卑又鼓舞人心。在私有排行榜上获得第 5 名表明,在具有小型评估集的竞赛中,全面的超参数优化不仅有益——它是必不可少的。教训不仅限于随机种子:基础模型选择、学习率调度、增强策略、模型架构选择和推理参数都构成了值得系统探索的丰富景观。

仅随机种子变化观察到的分数方差(3.33% 到 6.67%)说明了这些看似微小的决定有多大的影响。当我们考虑模型选择的其他维度(Llama vs Qwen vs Gemma vs Phi vs Mistral vs DeepSeek)以及这些选择与其他超参数之间的交互时,潜在的解空间变得更加广阔。

关键洞察是认识到超参数方差何时变得与模型方差相当或超过模型方差。在这种情况下,将传统上“固定”的参数(如随机种子和基础模型选择)视为一流超参数成为一种合法且强大的策略。

我想向Kaggle 和整个 ARC Prize 社区表示诚挚的感谢,感谢他们创建了这个具有挑战性和发人深省的竞赛。有机会参与抽象推理任务并向世界级竞争对手学习是非常宝贵的。特别感谢 ARChitects 团队开源他们的解决方案,以及 @sanyul@boristown 的出色基线实现。

这次竞赛激励我更深入地参与未来的 ARC 挑战。抽象推理问题代表了 AI 中最迷人的前沿领域之一,我很兴奋能为推进这一领域做出贡献。对于未来的迭代,我计划系统地探索基础模型选择空间以及其他超参数,以更好地理解哪些架构选择最适合不同类型的抽象推理任务。

致任何阅读本总结的人: 在小样本竞赛中,永远不要低估系统地探索每个超参数的重要性,从基础模型架构的基本选择开始。看似微小的配置选择——无论是随机种子、学习率还是模型选择——都可能是好解决方案和获胜解决方案之间的区别。我仅从种子变化中观察到的 2 倍性能方差(3.33% 到 6.67%)表明,全面探索完整的超参数空间可能会产生更戏剧性的改进。

同比赛其他方案