【免费下载链接】autoresearch-mlxApple Silicon (MLX) port of Karpathys autoresearch — autonomous AI research loops on Mac, no PyTorch required.项目地址https://gitcode.com/gh_mirrors/au/autoresearch-mlx点击查看免费下载autoresearch-mlx是 Karpathy autoresearch 的 Apple SiliconMLX移植版让 AI 智能体在 Mac 上自主运行「固定 5 分钟训练预算 → 保留或回滚」的自主研究循环完全不需要 PyTorch 或 CUDA。本指南面向开发者讲透三个扩展点如何扩展实验循环、如何移植 Muon 优化器、如何自定义评估预算。一、30 秒理解一个四文件构成的自主研究循环autoresearch-mlx 的设计极简——整个实验室就几个文件。先看懂这张表再动手扩展文件角色可修改program.md自主实验协议规则、循环流程、日志格式协议文件不改prepare.py固定常量、数据、tokenizer、evaluate_bpb评估❌ 只读train.py模型架构 优化器 训练循环✅ 唯一可编辑文件results.tsv实验历史日志5 列制表符分隔随循环追加rigor.py可选keep/discard 显著性门控只决策不改训练pyproject.toml依赖白名单mlx、tiktoken 等❌ 禁止新增依赖循环的核心规则只有一句只改train.py、只看val_bpb越低越好、固定 5 分钟预算、赢则保留、输则回滚。二、先跑起来3 条命令启动实验循环环境要求Apple Silicon Mac、Python 3.10、uv 包管理器。git clone https://gitcode.com/gh_mirrors/au/autoresearch-mlx cd autoresearch-mlx uv sync # 安装依赖 uv run prepare.py # 一次性下载数据分片 训练 BPE tokenizer uv run train.py # 跑一个 5 分钟训练实验实验结束后会打印一段摘要格式定义见 program.md 的 Output format 部分--- val_bpb: 2.534000 training_seconds: 312.4 num_steps: 46 num_params_M: 50.3重要Apple Silicon 的吞吐量和绝对 val_bpb 与 NVIDIA 不同只和同一台机器上的自己基线比较不要拿别人的数字当参照。三、扩展实验循环加实验、记日志、做保留/回滚3.1 标准循环的 9 步program.md 的 LOOP FOREVER 一节定义了完整协议查看 git 状态 → 2. 修改train.py→ 3.git commit→ 4.uv run train.py run.log 21→ 5.grep ^val_bpb: run.log→ 6. 崩溃则看栈追踪 → 7. 记入results.tsv→ 8. 变好则git commit --amend→ 9. 变差则git reset --hard干净回滚。三条关键纪律⏱️15 分钟超时单次运行超过 15 分钟直接杀掉按失败处理绝不git add -A仓库可能嵌在更大的 monorepo 里只暂存autoresearch-mlx/路径NEVER STOP循环开始后不要问人类要不要继续——它设计就是整夜无人值守运行每小时约 8–9 个实验。3.2 三种扩展方式① 想法扩展改train.py顶部的超参数区所有超参数集中在 train.py无 CLI 参数智能体直接改数值即可TOTAL_BATCH_SIZE 2**16 # 总 batch MATRIX_LR 0.04 # 矩阵参数学习率 DEPTH 4 # 模型深度 WARMDOWN_RATIO 0.5 # 学习率衰减尾部比例训练循环train.py按TIME_BUDGET跑满为止学习率曲线由 get_lr_multiplier 控制warmup → 平台 → warmdown 三段。② 记录扩展results.tsv的五列格式commit val_bpb memory_gb status description 5efc7aa 1.807902 20.7 keep reduce depth from 8 to 4注意必须是制表符分隔的 TSV不是逗号 CSV——description 里的逗号会破坏解析。③ 决策扩展接入rigor.py做显著性门控单次 5 分钟运行的噪声约0.03 val_bpb眼看 delta 决定保留其实是在追噪声。rigor.py 用多种子 bootstrap 置信度替代肉眼判断uv run rigor.py run halve the batch size # 跑 3 个种子对比当前最优 uv run rigor.py run ... --seeds 5 --confidence 0.9 uv run rigor.py best # 查看当前最优 uv run rigor.py log # 查看所有已评分配置核心逻辑在 score第一个种子明显劣于最优就快速放弃20000 次 bootstrap 重采样下 P(better) ≥ 置信阈值才保留。决策写入rigor_ledger.jsonl同一份train.py哈希永不重复评分且它从不修改 train.py、不碰 git、不改评估函数。3.3 公开基线扩展循环能做出什么公开的 results.tsv 初始走势是一个很好的例子Commitval_bpb状态想法383abb42.667000keepbaselineAdamW 默认配置909dd592.588904keepbatch 减半到 2^164161af32.533728keep矩阵 LR 提到 0.045efc7aa1.807902keep深度 8 → 4最后一步尤其说明问题固定 5 分钟预算内更小更快的模型能赢过更大的模型——因为它塞进了更多优化步。这正是步效率思路也是循环最擅长挖掘的方向。四、移植 Muon 优化器从参数分组设计入手4.1 为什么 Muon 值得移植公开的train.py目前只有 AdamWtrain.py 里有明确注释v0.1: AdamW only. Muon port is future work.。而 README.md 记录了 Mac Mini 长跑的获胜配方正是Muon 更锐利的注意力 更小 MLP 更低标量 LR且该配方无法干净地迁移到 Max 级机器——说明硬件相关的收益只能在自己的硬件上跑循环发现。移植 Muon 是第一个高价值扩展。4.2 先读懂现有 AdamW 的三层结构train.py自实现的 AdamW 分三层移植思路就是换中间层参数路由__init__用tree_flatten遍历全部参数按路径分组——blocks里的二维矩阵参数用matrix_lr 权重衰减wte/value_embeds用embedding_lrlm_head用unembedding_lrresid_lambdas/x0_lambdas是标量参数各有独立学习率更新_step梯度、参数、状态全部提升为 float32 计算再写回——注意 bf16/fp32 类型提升陷阱train.py 的注释解释了残差流为什么必须保持 bf16接口训练循环只依赖update(model, grads)和set_lr_multiplier(multiplier)两个方法见 train.py。4.3 Muon 移植四步法第 1 步保留路由只换更新规则。矩阵2D参数改用 Muon 更新embedding、lm_head、标量继续用 AdamW——这是 Muon 的标准用法。第 2 步用 MLX 写 Newton-Schulz 正交化。Muon 的核心是对梯度矩阵做几步多项式迭代Y ← a·Y b·Y·Yᵀ c·(Y·Yᵀ)·Y关键细节迭代全程用float32mx.array.astype(mx.float32)收敛后再写回 bf16非方阵如n_embd × 4·n_embd要按形状选 Y·Yᵀ 或 Yᵀ·Y 分支用mx.linalg做矩阵乘mx.eval及时触发求值避免计算图累积。第 3 步保持接口。新类同样暴露update(model, grads)、set_lr_multiplier(multiplier)和initial_lrs机制保存初始学习率按 multiplier 整体缩放——这样训练循环一行都不用改。第 4 步重调学习率并验证。Muon 的矩阵学习率与 AdamW 的 0.04 通常差异明显先跑单 run 观察 loss 曲线健康度再用rigor.py run做 3 种子确认真实收益。README 的 Mac Mini 经验是 Muon 与更低标量 LR搭配出现建议一次只动一个变量以便归因。4.4 常见坑清单坑症状解法Newton-Schulz 用 bf16 迭代loss 发散或 NaN正交化全程 fp32把 Muon 用到了 embeddingval_bpb 变差embedding 保持 AdamW学习率没重调收敛明显变慢单独重调MATRIX_LR盯lossEMA靠单次运行下结论改进其实是噪声rigor.py run --seeds 5五、自定义评估预算三个常量与一个 OOM 保护5.1 控制评估开销的三个常量固定常量集中在 prepare.py常量默认值作用TIME_BUDGET300 s训练墙钟预算不含编译与评估MAX_SEQ_LEN2048序列长度评估也用它保证可比性EVAL_TOKENS3 × 524288 ≈ 157 万evaluate_bpb采样的总 token 数EVAL_TOKENS直接决定最终评估的耗时评估步数 EVAL_TOKENS ÷ (batch × 序列长)。本项目相对上游版刻意调小了这个值换取 Apple Silicon 上更快的迭代见 README.md 的 Differences from upstream。评估 batch 是另一个常量train.py 的FINAL_EVAL_BATCH_SIZE 256。调小省峰值显存调大缩评估时间。5.2 2 GiB logits 预算别删的 OOM 保护prepare.py 的evaluate_bpb有个不显眼但关键的设计单次前向会物化一个行 × 2048 × 8192的 float32 logits 张量按默认 batch 一次要16 GiB——会超过 24GB Mac 上 Metal 的最大 buffer 直接 OOM。因此代码把单次前向的 logits 限制在2 GiB以内自动切分 micro-batch见 prepare.py由于 BPB 是纯求和指标切分在数值上完全等价。5.3 ⚠️ 修改评估预算的铁律prepare.py是循环协议中的只读边界改EVAL_TOKENS或TIME_BUDGET后新旧val_bpb不可比必须重跑基线重新建立参照program.md Setup 第 5 步评估函数evaluate_bpb是 ground truth 指标循环协议禁止修改评估框架只想加快迭代时优先降EVAL_TOKENS评估耗时同比下降同时留意噪声下限略有升高——配合rigor.py使用。六、总结扩展速查表目标入口文件关键动作添加新实验想法train.py改超参数 → commit → 运行 → keep/revert更严谨地决策rigor.py多种子 bootstrap 置信门控移植 Muontrain.py保留路由与接口只换矩阵参数更新规则加速评估prepare.py调小EVAL_TOKENS并重新建立基线查看实验历史results.tsv5 列 TSV制表符分隔这个项目最有价值的习惯是把固定预算 keep/revert当成科学方法——想法空间可以很狂野架构、优化器、batch、深度都行但判定纪律不能松。无论你扩展循环、移植 Muon 还是调整评估预算按这个节奏把任务交给 AI 智能体整夜运行早上醒来就能收获新的最佳结果 赞分享【免费下载链接】autoresearch-mlxApple Silicon (MLX) port of Karpathys autoresearch — autonomous AI research loops on Mac, no PyTorch required.项目地址https://gitcode.com/gh_mirrors/au/autoresearch-mlx点击查看免费下载相关推荐OpenEvolve开发者终极指南如何快速扩展自定义评估器和特征维度OpenEvolve开发者终极指南如何快速扩展自定义评估器和特征维度 OpenEvolve是一个开源的AlphaEvolve实现专注于通过进化算法自动优化和人工智能大模型AI Agent代码智能体自主智能体卷积神经网络在NLP中的革命性应用nlp_overview核心技术解析卷积神经网络在NLP中的革命性应用nlp_overview核心技术解析 卷积神经网络CNN在自然语言处理领域的革命性应用正在彻底改变我们处理文本数据的方式BilibiliDown开发者指南如何扩展自定义解析器BilibiliDown开发者指南如何扩展自定义解析器 BilibiliDown是一款功能强大的B站视频下载器支持稍后再看、收藏夹、UP主视频批量下载等多种音视频桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考