人工通用智能抽象推理语料库 (ARC-AGI)
本仓库包含ARC-AGI任务数据,以及一个基于浏览器的界面,供人类尝试手动解决这些任务。
"ARC可以被视为一个通用人工智能基准测试,一个程序合成基准测试,或者一种心理测量智力测试。它面向人类和人工智能系统,旨在模拟人类般的通用流体智力。"
关于该数据集的完整描述、目标及其基本逻辑,可以在《论智力的度量》中找到。
提醒一下,当测试者第一次看到任务时,能够为该任务中的所有测试输入生成正确的输出网格(包括选择输出网格的尺寸),就被认为解决了该任务。对于每个测试输入,测试者允许尝试3次(这适用于所有测试者,无论是人类还是AI)。
任务文件格式
data
目录包含两个子目录:
data/training
:包含训练用的任务文件(400个任务)。使用这些来原型化你的算法或训练你的算法以获取ARC相关的认知先验。data/evaluation
:包含评估用的任务文件(400个任务)。使用这些来评估你的最终算法。为确保公平的评估结果,不要将评估集的信息泄露到你的算法中(例如,在开发过程中自己查看评估任务,或者在使用评估分数作为反馈的同时反复修改算法)。
任务以JSON格式存储。每个任务JSON文件包含一个带有两个字段的字典:
"train"
:示例输入/输出对。它是一个"对"的列表(通常是3对)。"test"
:测试输入/输出对。它是一个"对"的列表(通常是1对)。
一个"对"是一个带有两个字段的字典:
"input"
:该对的输入"网格"。"output"
:该对的输出"网格"。
"网格"是一个矩形矩阵(列表的列表),包含0到9之间的整数(包括0和9)。最小可能的网格大小是1x1,最大是30x30。
查看任务时,测试者可以访问示例对的输入和输出,以及测试对的输入。目标是构建与测试输入网格相对应的输出网格,每个测试输入有3次尝试机会。"构建输出网格"包括选择输出网格的高度和宽度,然后用符号(0到9之间的整数,以颜色可视化)填充网格中的每个单元格。只有完全正确的解决方案(所有单元格都与预期答案匹配)才能被认为是正确的。
测试界面的使用
测试界面位于apps/testing_interface.html
。在网络浏览器中打开它(推荐使用Chrome)。它会提示你选择一个任务JSON文件。
加载任务后,你将进入测试空间,如下所示:
在左侧,你将看到演示任务性质的输入/输出对。中间,你将看到当前的测试输入网格。在右侧,你将看到可用于构建相应输出网格的控件。
你可以使用以下工具:
网格控件
- 调整大小:输入网格大小(例如"10x20"或"4x4")并点击"调整大小"。这会保留现有的网格内容(在左上角)。
- 从输入复制:将输入网格复制到输出网格。这对于输出包含输入某些修改的任务很有用。
- 重置网格:用0填充网格。
符号控件
- 编辑:从颜色选择栏中选择一种颜色(符号),然后点击单元格设置其颜色。
- 选择:在输出网格或输入网格上点击并拖动以选择单元格。
- 在输出网格上选择单元格后,你可以从颜色选择中选择一种颜色来设置所选单元格的颜色。这对绘制实心矩形或线条很有用。
- 在输入网格或输出网格上选择单元格后,你可以按C复制其内容。复制后,你可以在输出网格上选择一个单元格并按"V"粘贴复制的内容。你应该选择要粘贴区域左上角的单元格。
- 填充:点击输出网格中的一个单元格,将所有相连的单元格染成选定的颜色。"相连的单元格"是指具有相同颜色的连续单元格。
答案验证
当你的输出网格准备好时,点击绿色的"提交!"按钮来检查你的答案。我们不强制执行3次尝试规则。
在你为当前测试输入网格获得正确答案后,你可以使用"下一个测试输入"按钮切换到该任务的下一个测试输入网格(如果有的话;大多数任务只有一个测试输入)。
完成一个任务后,使用"加载任务"按钮打开一个新任务。