ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

arc-task-gen分层生成实战:用Chollet分类+17种mechanic均匀覆盖ARC变换机制

arc-task-gen分层生成实战:用Chollet分类+17种mechanic均匀覆盖ARC变换机制 arc-task-gen分层生成实战用Chollet分类17种mechanic均匀覆盖ARC变换机制【免费下载链接】arc-task-genGenerates original ARC-AGI-1-style tasks distribution-matched to the public eval set.项目地址: https://gitcode.com/gh_mirrors/ar/arc-task-genarc-task-gen 是一个按分布匹配的 ARC-AGI-1 风格网格任务生成器。本文带你实战它的分层生成stratified generation流程先用 Chollet 六类认知原语给公开评测集打标再用 17 种变换 mechanic 均匀分配任务让模型无法靠背题得分。公开评测集早已出现在训练语料里模型在它上面的分数只是少样本规则归纳的上界。arc-task-gen 的解法是生成一套私有任务且可测量属性与公开评测集一致使两次成绩可以相互比较。上图即配套研究中私有评测集的用法背景BDH-CQ 用 150M 参数在 ARC-AGI-1 公开集上取得 29.5% pass2单任务成本仅 $0.0007 —— 而 arc-task-gen 正是用来生成模型没见过的等价题来交叉验证这类成绩的工具。 分层生成 vs 基础生成多了什么基础版 generate_tasks.py 做的是联合约束采样每个生成任务从某一个公开评测任务整体抽取行、列、颜色数、训练/测试对数见 sample_joint_slots保证网格大小、配色数、对数的自然协方差被保留。但任务考的是什么能力仍未受控。分层版 generate_tasks_stratified.py 在此基础上再加两个条件条件轴粒度作用Chollet 类别6 类认知原语粗粒度跨任务集可比的确认性分析轴mechanic17 种具体变换细粒度均匀覆盖变换机制避免自然分布的严重偏斜两类标签都由 LLM 一次性标注完成代码在 label_eval_tasks.py。6 类 Chollet 认知原语object_centric对象中心、geometric几何变换、spatial_relational空间关系、numerical数值参数化、pattern_completion模式补全、compositional组合原语。17 种 mechanic含other逃生口超过 15% 即说明列表需要修订类别包含的 mechanic几何类symmetry_completion、reflection、rotation、translation、scaling、tiling_repetition对象类cropping_extraction、flood_fill、denoising、object_counting、object_sorting_rank、recolor_by_property、gravity_stacking结构类line_drawing、occlusion_repair、panel_set_operation、other 设计意图mechanic 是闭合列表这样不同任务集之间的计数才可比other是刻意留的逃生阀。 三步跑通 stratified 生成先获取项目并安装Pixi 管理环境依赖见 pixi.tomlgit clone https://gitcode.com/gh_mirrors/ar/arc-task-gen cd arc-task-gen pixi install export OPENAI_API_KEYsk-... # 任意 OpenAI 兼容端点均可然后三步走python label_eval_tasks.py # ① 一次性打标category mechanic python generate_tasks_stratified.py --n 400 # ② 仅类别匹配按公开集类别比例 python generate_tasks_stratified.py --mechanics all --per-mechanic 25 # ③ mechanic 均匀分层三条命令的含义打标label_eval_tasks.py 只把每个任务的训练对喂给 LLM盲于求解结果产出data/arc_agi_eval_categories.json。可用--limit 10先做便宜冒烟测试。类别匹配每个生成任务绑定一个公开评测锚点任务的形状序列 类别。mechanic 分层--mechanics all --per-mechanic 25即 16 种 mechanic 各 25 题共 400 题——均匀分配而不是听任自然分布自然分布非常偏斜。怕烧钱加--dry-run-plan可只写出抽样计划默认存到data/stratified_slot_plan.json而不发起任何 API 调用先检查锚点与 mechanic 的分配是否合理。⚙️ 锚点画像与均匀分配的机制细节每个生成任务的提示词由 format_prompt 拼装携带该锚点任务的形状序列、颜色数、密度标签、输出尺寸关系等统计量外加一个必须实现的 mechanic。注意公开网格、规则描述和任务 id从不进入提示词只有统计量和标签——从机制上杜绝了向生成模型泄露公开题。均匀分配的核心在 build_mechanic_plan每种 mechanic 固定分配--per-mechanic个 slot从拥有该 mechanic 的公开锚点中随机抽取某 mechanic 锚点不足 8 个MIN_ANCHORS时自动向其众数类别借用锚点池并在计划中标记anchor_pool_borrowed整个计划由 seed 控制可复现。生成的 slot 计划会写入 write_plan其中包含类别计数、形状关系分布和mechanic_counts方便你在正式跑之前核对均匀覆盖是否达成。由于 stratified 版只是包装器它完整复用 generate_tasks.py 的生成循环每调用只生成一题实测一次要多题会显著缩小网格、embedding 余弦去重阈值 0.80、与公开评测规则的去重阈值 0.92需先跑 describe_eval_tasks.py、结构校验与收敛循环。 输出产物与分布验证结果落在data/generations_stratified/gen_timestamp/与基础版相同的三件套文件内容tasks.json全部任务id 键控标准 ARC{train: [...], test: [...]}格式separated/id.json每题一文件可直接载入 ARC 测试界面sanity_check.json分布对比、每题规则描述、slot 溯源、逐轮过滤历史想肉眼看题visualize_tasks.py 会把任务渲染成 PNG输入在左输出在右测试对带红色标注python visualize_tasks.py data/generations_stratified/gen_ts/官方 400 题 vs 生成 400 题的关键指标对照摘自 instructions.md输入面积均值 226.92 vs 224.70、输入行数 13.23 vs 13.19、颜色数 5.35 vs 5.24、≥4 训练对占比 34.2% vs 34.8%——分布对齐精度在 1% 量级。⚠️ 使用前的三个注意事项可解性不做程序校验结构检查只验证矩形网格与 0–9 取值。官方盲测 20 题中 19 题可解——建议你自己抽样验证再信分数。去重受措辞限制两题机制相同但描述不同会双双存活聚类内留下哪一题是任意的。任务 id 会泄露规则diagonal_corner_echo这类名字是模型起的给人工求解者看题前请重编号且sanity_check.json里含有每题的规则描述注意保密。另外生成的任务集刻意不提交进仓库——一旦公开就会进入网络爬取语料基准即失效。 核心文件速查文件职责generate_tasks.py基础生成器联合槽采样、去重循环、sanity 检查generate_tasks_stratified.py分层生成包装器类别匹配 mechanic 均匀分配label_eval_tasks.py一次调用打两个标签Chollet 类别 mechanicdescribe_eval_tasks.py为公开评测集生成规则描述启用跨集去重visualize_tasks.py任务渲染为 PNG快速肉眼质检instructions.md完整使用说明与数据目录约定一句话总结先label_eval_tasks.py打标再generate_tasks_stratified.py --mechanics all --per-mechanic 25即可得到一套类别分布对齐、16 种变换机制均匀覆盖的 400 题私有评测集——用它测出的分数才是模型真会推理的证据。【免费下载链接】arc-task-genGenerates original ARC-AGI-1-style tasks distribution-matched to the public eval set.项目地址: https://gitcode.com/gh_mirrors/ar/arc-task-gen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表