Project Icon

arckit

Python工具包简化抽象推理语料库数据处理

arckit是一个处理抽象推理语料库(ARC-AGI)数据集的Python工具包。它提供数据加载接口、矢量图形可视化和模型评估功能。支持数据加载、任务交互和可视化创建,并通过命令行工具实现任务图像的快速查看与保存。arckit兼容多个数据集版本,为ARC数据处理提供了便捷解决方案。

arckit

PyPI版本

ARC网格的可视化示例

用于轻松处理抽象与推理语料库(ARC-AGI,前身为ARC)数据集的Python和命令行工具。

pip install -U arckit

Arckit提供了以友好格式加载数据的工具(无需单独下载!),使用高质量矢量图形可视化数据,并在数据集上评估模型。

v0.1新功能: 通过version参数更新至最新的ARC-AGI和Kaggle数据集。

🐍 Python API

加载数据集

>>> import arckit
>>> train_set, eval_set = arckit.load_data() # 加载ARC1训练/评估集

# TaskSets可迭代且可索引
>>> train_set 
<TaskSet: 400 tasks>
>>> train_set[0]
<Task-train 007bbfb7 | 5 train | 1 test>

# 可以通过任务ID进行索引
>>> train_set[0] == train_set['007bbfb7']
True

# 可以通过ID加载特定任务
>>> task = arckit.load_single('007bbfb7')

与任务交互

>>> task.dataset
'train'
>>> task.id
'007bbfb7'

## 提取任务网格
>>> task.train # o task.test
=>  List[Tuple[ndarray, ndarray]] # 输入/输出对列表

>>> task.train[0][0] # 第一个训练示例的输入
array([[0, 7, 7],
       [7, 7, 7],
       [0, 7, 7]])

# 可以在Python中预览任务(带颜色!)。
>>> train_set[15].show()
                                <Task-train 0d3d703e | 4 train | 1 test>
┏━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━┳━━━━━━━━┓
┃ A-in 3x3 ┃ A-out 3x3 ┃ B-in 3x3 ┃ B-out 3x3 ┃ C-in 3x3 ┃ C-out 3x3 ┃ D-in 3x3 ┃ D-out 3x3 ┃  ┃ TA-in  ┃
┡━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━╇━━━━━━━━┩
│  3 1 2   │   4 5 6   │  2 3 8   │   6 4 9   │  5 8 6   │   1 9 2   │  9 4 2   │   8 3 6   │  │ 8 1 3  │
│  3 1 2   │   4 5 6   │  2 3 8   │   6 4 9   │  5 8 6   │   1 9 2   │  9 4 2   │   8 3 6   │  │ 8 1 3  │
│  3 1 2   │   4 5 6   │  2 3 8   │   6 4 9   │  5 8 6   │   1 9 2   │  9 4 2   │   8 3 6   │  │ 8 1 3  │
└──────────┴───────────┴──────────┴───────────┴──────────┴───────────┴──────────┴───────────┴──┴────────┘

# 获取原始ARC格式的任务,遵循fchollet的仓库格式。
>>> task.to_dict()
=>  {
    "id": str,
    "train": List[{"input": List[List[int]], "output": List[List[int]]}],
    "test":  List[{"input": List[List[int]], "output": List[List[int]]}]
    }

为提交文件评分:

要评估Kaggle ARC格式的提交:

>>> eval_set.score_submission(
    'submission.csv', # Kaggle格式的提交文件,包含output_id和output两列
    topn=3,           # 考虑的预测数量(默认:3)
    return_correct=False # 是否返回已解决任务的列表
    )

加载特定版本的数据集

ARC-AGI数据集自最初发布以来进行了几次小的错误修复。默认情况下,加载latest版本,但你可以为load_dataload_single指定version参数。版本选项包括:

  • latest, arcagi: ARC-AGI的最新版本(也固定为aa922be
  • kaggle, kaggle2024: 2024年Kaggle竞赛的数据
  • arc, kaggle2019: 原始ARC数据,与2019年Kaggle竞赛相同

🖼️ 创建可视化

arckit.vis子模块提供了使用drawsvg模块创建任务矢量图形可视化的有用函数。这些函数的文档字符串提供了更详细的信息以及额外的选项。

>>> import arckit.vis as vis
>>> grid = vis.draw_grid(task.train['2013d3e2'][0], xmax=3, ymax=3, padding=.5, label='Example')
>>> vis.output_drawing(grid, "images/grid_example.png") # svg/pdf/png

arckit可视化示例

在绘制任务时,arckit会智能地调整所有网格的大小,使插图的总大小不超过所选的宽度/高度。

>>> task = vis.draw_task(train_set[0], width=10, height=6, label='Example')
>>> vis.output_drawing(grid, "images/arcshow_example.png") # svg/pdf/png

arckit输出示例

💻 命令行工具

arcshow直接在控制台绘制特定任务的可视化:

arcshow命令输出示例(带颜色)

arcsave将特定任务的可视化保存到文件(pdf/svg/png),用于检查任务或生成显示特定任务的高质量图形(例如,用于论文)。可以通过十六进制ID或数据集指定任务,例如train0

用法:arcsave [-h] [--output OUTPUT] task_id width height

将任务保存为图像文件。

位置参数:
  task_id          要保存的任务ID。可以是任务ID或字符串,例如`train0`
  width            输出图像的宽度
  height           输出图像的高度

可选参数:
  -h, --help       显示此帮助消息并退出
  --output OUTPUT  要保存的输出文件。必须以.svg/.pdf/.png结尾。默认使用pdf。

arcsave命令输出示例

💡 贡献

欢迎任何相关贡献!请随时提出问题或拉取请求,或者如果您想讨论任何可能的更改,请给我发电子邮件。

📜 致谢

ARC数据集由Francois Chollet慷慨地在Apache 2.0许可下发布,原始格式可以在这个仓库中找到。该数据集在arckit包中以相同的许可证复制。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号