Compositional-ARC: Assessing Systematic Generalization in Abstract Spatial Reasoning¶
会议: ICLR 2026
arXiv: 2504.01445
代码: 待确认
领域: LLM/NLP
关键词: systematic generalization, meta-learning for compositionality, ARC, abstract reasoning, few-shot learning
一句话总结¶
提出 Compositional-ARC 数据集评估模型在抽象空间推理中的系统性泛化能力——从已知基础几何变换(如平移、旋转)泛化到未见过的变换组合。一个仅 5.7M 参数的 MLC 训练的 encoder-decoder 模型在系统性任务上达到 78.26%,与 ARC Prize 2024 冠军的 8B 模型+TTT 持平,远超 GPT-4o、o3-mini 等(<3%)。
研究背景与动机¶
领域现状:系统性泛化(systematic generalization)是人类认知的核心能力——理解已知组件后能自动推广到新组合。LLM 虽在各领域取得进展,但在组合性泛化测试中表现不佳。
现有痛点:Lake & Baroni (2023) 提出的 Meta-Learning for Compositionality (MLC) 在伪语言任务上实现了人类级别的系统性泛化,但这一方法是否适用于非语言领域(如空间推理)仍未探索。
核心矛盾:当前 LLM(包括 o3-mini、GPT-4o)在标准推理任务上表现优异,但面对需要从基础组件重组到新组合的场景时系统性失败——不是因为能力不够,而是缺乏组合性泛化的训练范式。
本文目标:(1) 设计一个评估空间推理系统性泛化的 benchmark;(2) 验证 MLC 可超越语言领域。
切入角度:利用几何变换的封闭性(两个有效变换的组合仍为有效变换),设计 ARC 风格的 2D 网格任务,测试模型能否从基础变换和 level-1 组合推断未见过的 level-2 组合。
核心 idea:将 MLC 从语言推广到视觉空间推理,证明小模型 + 正确的训练范式可以在组合性泛化上大幅超越万倍参数的 LLM。
方法详解¶
整体框架¶
这篇论文要回答的问题是:MLC 这种「在语言上能逼出人类级系统性泛化」的训练范式,换到视觉空间推理上还成不成。为此作者干两件事——先造一个能精确隔离「组合泛化」的数据集 Compositional-ARC,再用 MLC 训练一个极小的 encoder-decoder 去刷它。
数据这一侧是分层搭起来的:靠几何变换的封闭性(两个有效变换组合仍是有效变换),先定义 5 种基础变换、由 3 类指示器(形状/颜色/邻居)触发,两两指示器叠成 level-1 组合、三三叠成 level-2 组合,再把 level-2 划到训练时没见过的 OOD 测试集。模型这一侧走的是 episode 流程:每个 episode 临时抽一套「视觉解释文法」(哪类属性触发哪种变换),把 10×10 网格切成 2×2 patch 编码喂进 encoder-decoder,模型只能看几对 study examples、从中反推当前文法再套到 query 上预测输出网格。评估时只给基础变换和 level-1 组合的示例,逼它推断从没见过的 level-2 组合。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}%%
flowchart TD
subgraph DATA["Compositional-ARC 数据集(设计 1)"]
direction TB
A["几何变换封闭性:<br/>两有效变换组合仍有效"] --> B["5 基础变换 × 3 指示器<br/>(形状/颜色/邻居触发)"]
B --> C["level-1:2 指示器组合"] --> D["level-2:3 指示器组合<br/>(留作 OOD 测试集)"]
end
subgraph MLC["MLC 视觉文法训练(设计 2)"]
direction TB
E["每 episode 重抽视觉文法<br/>study = 6 基础 + 6 level-1"] --> F["10×10 网格 → 2×2 patch ×25<br/>+ 1D/2D 位置编码"]
F --> G["3 层 encoder-decoder<br/>5.7M 参数 + copy task"]
end
D --> E
G --> H["预测未见 level-2 组合的输出网格"]
关键设计¶
1. Compositional-ARC 数据集:用几何变换的封闭性造一个干净可控的组合泛化测试床
要测「系统性泛化」,关键是任务必须能把「见过的组件」和「没见过的组合」干净地分开,否则刷分到底靠的是泛化还是记忆说不清。作者利用几何变换的一个性质——两个有效变换的组合仍是有效变换——在 ARC 风格的 2D 网格上搭起一套分层任务。底层是 5 种基础变换:平移、旋转、反射、扩展、变色;触发条件由 3 类指示器决定:形状(如 L 形物体做平移)、颜色(如绿色物体做水平反射)、邻居(与指定物体同格时向相邻行扩展)。
组合则按指示器个数分层:level-1 是 2 个指示器叠加(如形状+颜色 → 平移+反射),level-2 是 3 个指示器叠加(形状+颜色+邻居 → 平移+反射+扩展)。系统性测试的核心安排是:study examples 只展示基础变换和 level-1 组合,把 level-2 组合留作测试集——模型必须从「会单个变换、会两两组合」推断出「三三组合」该怎么做。更关键的是数据划分让 query 的 level-2 组合在训练/评估集之间互不重叠(如训练见过 平移+旋转+反射、测试考 平移+旋转+扩展),是真正的 OOD 评估,泛化能力被精确隔离出来。
2. Meta-Learning for Compositionality(MLC)扩展到空间推理:用动态文法逼模型学规则而非记映射
通用 LLM 在这类任务上失败,是因为它倾向于记住固定的「属性→变换」映射,一旦组合换新就崩。MLC 的破法是让映射本身在训练中不断漂移:每个 episode 都重抽一套视觉解释文法(「黄色物体做平移」在另一个 episode 里可能变成「黄色物体做水平反射」),固定记忆因此毫无用处,模型唯一能做的就是从当前 study examples 里现场推断文法、再组合应用。
具体实现上,10×10 网格被切成 2×2 的 patch(每张网格 25 个 patch),每个 patch 映射成一个嵌入向量(一个 patch 最多 \(10^4\) 种取值,对应 1 万个嵌入),并用特殊 token |、→ 标记 study examples 与输入输出网格的边界;再叠加 1D 位置编码标记 grid pair 的先后顺序、2D 位置编码(行/列分量)保留空间位置。训练时还挂了一个辅助 copy task——要求模型把 study examples 的输出也复现出来,逼它更扎实地读懂示例而不是草草扫一眼。模型本体很小:3 层 encoder + 3 层 decoder,8 个 head,dim=128,FFN=768,GELU 激活,总共只有 5.7M 参数。
损失函数 / 训练策略¶
主损失是标准交叉熵,预测输出网格的 patch 序列;外加辅助 copy task 损失(复现 study examples 的输出);decoder 端还以 0.001 的概率随机扰动目标网格单元颜色以增强鲁棒性。数据共生成 10 万个 episode(每个配一套唯一的视觉解释文法),按 82,908 / 8,546 / 8,546 划分为训练 / 验证 / 测试,且训练与测试用的 level-2 组合互不重叠,保证 OOD 评估。
实验关键数据¶
主实验¶
系统性泛化任务(Systematicity)上的 Exact Match Accuracy:
| 模型 | 参数量 | Exact Match (%) | 备注 |
|---|---|---|---|
| GPT-4o | ~数百B | 0.99 | 通用 LLM |
| Gemini 2.0 Flash | ~数百B | 2.66 | 通用 LLM |
| o3-mini (low) | ~数百B | 0.53 | 通用 LLM(推理增强) |
| Llama-3.2-3B-ReARC | 3B | 0.87 | ARC 专用 |
| Llama-3.2-3B-ReARC + TTT | 3B | 73.70 | +测试时训练 |
| Mistral-8B-Full + TTT | 8B | 78.20 | ARC Prize 2024 冠军 |
| MLC (ours) | 5.7M | 78.26 | 与冠军持平! |
消融实验¶
| 配置 | Exact Match (%) | 说明 |
|---|---|---|
| MLC 完整 | 86.73 ± 6.03 | 4 个 split 均值 |
| - 去掉 copy task | 69.05 ± 9.23 | 辅助任务很重要 |
| - 去掉基础变换 examples | 75.27 ± 12.95 | 适度下降 |
| - 去掉 level-1 组合 examples | 21.01 ± 19.07 | 严重崩溃 |
| MLC (更复杂数据集) | 88.10 | 变换种类增加后仍有效 |
关键发现¶
- 5.7M << 8B 但表现持平:MLC 训练的微型模型在系统性泛化上与 ARC Prize 2024 冠军(8B + TTT + 大量工程优化)持平,参数量差 1400 倍。
- 通用 LLM 系统性泛化近乎为零:GPT-4o (0.99%)、o3-mini (0.53%) 在 3-shot 任务上分别达 22%/64%,但在需要组合泛化的 Systematicity 任务上几乎完全失败。
- Level-1 组合 examples 是关键:去掉 level-1 examples 导致准确率从 87% 降至 21%,说明中间层次的组合示例对推断更高层次组合至关重要。
- Copy task 是隐藏增益:辅助 copy task 贡献了 ~18pp 的提升,迫使模型更深入地理解 study examples。
- 错误模式不同:LLM 主要错误是预测错误形状或只做基础变换;MLC 主要错误是形状微小偏差(很少退化为基础/level-1 变换)。
亮点与洞察¶
- "正确的训练范式 > 大模型"的绝佳例证:5.7M 参数 vs 8B 参数,核心差异不在模型大小而在 MLC 训练策略。这对"大力出奇迹"的 scaling 叙事是一个有力的反例。
- MLC 从语言到视觉的成功迁移:证明 MLC 不是语言特定的 trick,而是一种通用的组合性泛化训练范式——通过动态变换训练文法迫使模型学习规则而非记忆。
- 研究设计精巧:level-0/1/2 的层次化任务设计既干净又有深度,能精确地隔离和测量组合性泛化能力。
局限与展望¶
- 任务相对简单:5 种基础变换、10×10 网格、2 个物体,与真实世界的空间推理相比仍很受限。
- 组合层次仅到 level-2:更深层次的组合(3+变换组合)是否仍可泛化未测试。
- 固定网格大小:未测试对不同大小网格的泛化能力。
- 与 ARC 原始数据集的差异:Compositional-ARC 的变换规则比原始 ARC 更规则化,原始 ARC 的多样性和抽象性更高。
相关工作与启发¶
- vs Lake & Baroni (2023, MLC 原文):原文在伪语言任务上验证 MLC,本文首次扩展到视觉空间推理,证明 MLC 的通用性。
- vs ARC Prize 2024 冠军 (Franzen et al.):冠军使用 8B 模型 + 定制 tokenizer + 数据增强 + TTT + DFS 搜索等大量工程优化,MLC 模型仅 5.7M 参数+简单训练即达到同等水平。
- vs GPT-4o / o3-mini:暴露了当前最强 LLM 在组合性泛化上的根本缺陷——它们可以做 pattern matching 但无法做 systematic composition。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次将 MLC 推广到视觉空间推理,数据集设计精巧,实验结论有冲击力。
- 实验充分度: ⭐⭐⭐⭐⭐ 多个模型对比、4 个 split 验证、详细消融、错误分析、复杂度扩展实验一应俱全。
- 写作质量: ⭐⭐⭐⭐⭐ 图文并茂,逻辑清晰,概念引入循序渐进。
- 价值: ⭐⭐⭐⭐⭐ 对 AI 系统性泛化能力的理解有重要贡献,5.7M 参数超越 GPT-4o 的结果极具启发性。