终极指南:TinyRecursiveModels数据集构建完全指南 — 从ARC-AGI到数独与迷宫的高效预处理
终极指南TinyRecursiveModels数据集构建完全指南 — 从ARC-AGI到数独与迷宫的高效预处理【免费下载链接】TinyRecursiveModels项目地址: https://gitcode.com/gh_mirrors/ti/TinyRecursiveModelsTinyRecursiveModelsTRM是一个强大的开源项目专注于构建递归模型解决复杂推理问题。本文将详细介绍如何使用TRM项目中的工具构建三大核心数据集ARC-AGI、数独和迷宫帮助AI开发者快速上手数据预处理流程为模型训练奠定坚实基础。为什么数据集预处理对递归模型至关重要高质量的数据集是训练高性能递归模型的基础。TinyRecursiveModels通过精心设计的预处理流程将原始问题转化为模型可理解的结构化数据同时保留问题的推理本质。项目提供了三个核心数据集构建脚本分别位于dataset/build_arc_dataset.py、dataset/build_sudoku_dataset.py和dataset/build_maze_dataset.py覆盖了从抽象推理到逻辑解谜的多种任务类型。图1TinyRecursiveModels的模型架构展示了输入、潜在推理和输出之间的递归关系环境准备快速开始的前期配置在开始数据集构建前请确保已正确安装项目依赖git clone https://gitcode.com/gh_mirrors/ti/TinyRecursiveModels cd TinyRecursiveModels pip install -r requirements.txt项目数据集构建模块依赖于NumPy进行数值处理Hugging Face Hub用于获取原始数据以及ArgParser处理命令行参数。所有配置文件集中在config/目录下可根据需求调整参数。ARC-AGI数据集构建抽象推理能力的数据基石ARC-AGIAbstraction and Reasoning Corpus是评估AI抽象推理能力的基准数据集包含大量视觉推理问题。dataset/build_arc_dataset.py脚本实现了从原始JSON文件到模型输入的完整转换流程。核心处理步骤数据加载与验证从kaggle/combined/目录读取挑战和解决方案文件支持训练集和测试集自动划分数据增强通过8种旋转翻转变换dihedral_transform和颜色映射置换生成多样化训练样本网格标准化将不同尺寸的输入统一为30x30网格使用0填充和EOS标记表示边界特征编码将网格数据转换为序列形式包含PAD0、EOS1和数字2-11三类标记关键代码片段展示了网格转换过程def np_grid_to_seq_translational_augment(inp: np.ndarray, out: np.ndarray, do_translation: bool): # 计算随机填充位置 pad_r np.random.randint(0, ARCMaxGridSize - max(inp.shape[0], out.shape[0]) 1) if do_translation else 0 pad_c np.random.randint(0, ARCMaxGridSize - max(inp.shape[1], out.shape[1]) 1) if do_translation else 0 # 填充网格并添加EOS标记 result [] for grid in [inp, out]: nrow, ncol grid.shape grid np.pad(grid 2, ((pad_r, ARCMaxGridSize - pad_r - nrow), (pad_c, ARCMaxGridSize - pad_c - ncol)), constant_values0) # 添加EOS标记指示网格边界 eos_row, eos_col pad_r nrow, pad_c ncol if eos_row ARCMaxGridSize: grid[eos_row, pad_c:eos_col] 1 if eos_col ARCMaxGridSize: grid[pad_r:eos_row, eos_col] 1 result.append(grid.flatten()) return result运行ARC-AGI数据集构建命令python dataset/build_arc_dataset.py --input_file_prefix kaggle/combined/arc-agi --output_dir data/arc --subsets training,training2,evaluation --test_set_name evaluation2数独数据集构建逻辑推理训练的理想选择数独作为经典的逻辑推理问题是训练递归模型的优质数据来源。dataset/build_sudoku_dataset.py脚本从Hugging Face Hub获取极端难度数独数据并进行专业预处理。独特的数据增强策略数独数据集采用了保持逻辑有效性的增强方法通过以下变换生成等价谜题数字映射1-9的随机排列保持0不变行列变换3x3区块内的行/列随机重排转置变换随机选择是否进行矩阵转置图2TinyRecursiveModels的核心递归函数实现展示了潜在状态z的迭代优化过程关键实现细节def shuffle_sudoku(board: np.ndarray, solution: np.ndarray): # 创建数字映射0不变1-9随机排列 digit_map np.pad(np.random.permutation(np.arange(1, 10)), (1, 0)) # 随机转置 transpose_flag np.random.rand() 0.5 # 生成有效的行置换先打乱3个区块再打乱每个区块内的3行 bands np.random.permutation(3) row_perm np.concatenate([b * 3 np.random.permutation(3) for b in bands]) # 列置换类似行置换 stacks np.random.permutation(3) col_perm np.concatenate([s * 3 np.random.permutation(3) for s in stacks]) # 应用所有变换 def apply_transformation(x: np.ndarray) - np.ndarray: if transpose_flag: x x.T return digit_map[x.flatten()[mapping].reshape(9, 9)] return apply_transformation(board), apply_transformation(solution)运行数独数据集构建命令python dataset/build_sudoku_dataset.py --output_dir data/sudoku --num_aug 3 --min_difficulty 5迷宫数据集构建路径规划问题的数据处理迷宫求解需要模型具备空间推理和路径规划能力dataset/build_maze_dataset.py脚本处理30x30复杂迷宫数据将其转换为适合递归模型训练的格式。数据表示与增强字符映射将迷宫元素墙#、空格 、起点S、目标G、路径o映射为整数ID方向增强通过8种旋转翻转变换生成不同方向的迷宫保持路径有效性序列转换将2D迷宫网格展平为1D序列保留空间结构信息运行迷宫数据集构建命令python dataset/build_maze_dataset.py --output_dir data/maze --aug True三大数据集的统一输出格式所有数据集构建脚本都生成一致的输出结构包含Numpy数组文件存储inputs、labels、puzzle_identifiers等元数据文件dataset.json包含序列长度、词汇表大小等关键信息标识符映射identifiers.json记录谜题ID与原始问题的对应关系这种统一格式使模型能够无缝切换不同任务便于进行多任务学习和迁移学习研究。高效数据集构建的最佳实践增量构建先使用小样本集验证流程再扩展到完整数据集参数调优通过config/arch/目录下的YAML文件调整预处理参数数据质量检查使用utils/functions.py中的工具函数可视化处理后的数据并行处理对于大规模数据可修改脚本添加多进程支持总结开启递归模型训练之旅通过本文介绍的三个核心数据集构建脚本您可以快速准备高质量的训练数据为TinyRecursiveModels模型提供坚实的训练基础。无论是抽象推理、逻辑解谜还是路径规划这些精心预处理的数据集都能帮助模型充分发挥递归推理能力。立即开始使用这些工具构建您的数据集探索递归模型在复杂推理问题上的惊人能力如有疑问可参考项目中的evaluators/arc.py了解评估方法或查看models/recursive_reasoning/目录下的模型实现细节。【免费下载链接】TinyRecursiveModels项目地址: https://gitcode.com/gh_mirrors/ti/TinyRecursiveModels创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考