
揭秘 Marin iceball-micro6 个阶段一条命令跑通的轻量级后训练完整指南【免费下载链接】marinOpen-source framework for the research and development of foundation models.项目地址: https://gitcode.com/GitHub_Trending/ma/marinMarin iceball-micro 是开源基础模型训练框架 Marin 内置的一个轻量级后训练实验它用一条命令把「预训练 → 对话微调SFT→ GRPO 强化学习 → 双评测」整条后训练链路跑通。本文将带你完整解析这份仅 500 行的实现看它是如何用最少的资源验证一整套基础模型后训练流程的。 什么是 iceball-micro一句话概括iceball-micro 是一张Marin 实验图artifact graph它把 Qwen3-0.6B 架构的模型从零随机初始化依次走完以下环节每个环节都产出一个可检查的制品阶段做什么关键参数fineweb切取 FineWeb-Edu 固定前缀4096 行并分词512 序列长度pretrain从零预训练 Qwen3-0.6B约 6 亿参数16 步batch 32lr 3e-4sft用 No Robots 数据集做对话微调8 步lr 1e-5gsm8k将 GSM8K 题目转成 RL 环境所需的 parquet1024 训练 / 128 验证rl通过 MarinSkyRL 跑 GRPO 强化学习8 步每 prompt 4 采样evaluation用 Evalchemy Harbor 双引擎冒烟评测gsm8k-smoke、aime-smoke它的核心思想非常「Marin」不追求模型效果而是用最小的可复现规模验证整条链路的每一处交接——预训练权重如何喂给 SFT、SFT 导出如何被 RL 消费、RL 策略如何被评测服务加载。上图展示的是 Marin 8B 模型的多阶段训练时间线。iceball-micro 正是这种「阶段化流水线」思路的微缩版每个阶段是图中的一个节点依赖关系自动拓扑排序执行。⚙️ 核心实现解析全部实现集中在 iceball_micro.py核心入口是 build_workflow() 函数它用 5 个步骤组装出完整工作流1️⃣ 数据物化与分词write_fineweb_slice() 用 DuckDB 流式读取固定 commit 的 FineWeb-Edu parquet只取前 4096 行写成 JSONLwrite_gsm8k_parquet() 则把 GSM8K 题目解析出####后的最终答案转成带reward_spec的 SkyRL 类型化 parquet——奖励函数是规则精确匹配无需额外判题模型。2️⃣ 从零预训练ICEBALL_QWEN3_CONFIG 定义了 28 层、1024 隐维的 Qwen3-0.6B 架构。预训练仅 16 个优化器步4×GB200 GPU、batch 32Adam 优化器配余弦学习率与 z-loss 正则。注意它是随机初始化而非加载预训练权重——这正是「实验」而非「产品」。3️⃣ 对话微调SFTsft_step 直接以上一步的预训练 checkpoint 为init_from使用 HuggingFaceH4/no_robots 数据集约 9500 条对话和 Qwen3 聊天模板做 8 步微调。4️⃣ GRPO 强化学习这是最有集成价值的一步。ICEBALL_RL_CONFIG 内嵌了完整 SkyRL 训练配置GRPO 优势估计 KL 正则、FSDP2 策略、vLLM 异步推理引擎。特别值得注意的是 SkyRLRolePlan策略与推理引擎分布在两个独立节点上目的是让这次小规模运行就演练更大 RL 任务的多机交接拓扑。5️⃣ 双引擎评测eval_step 把 RL 产出的策略模型只服务一次同时交给 Evalchemygsm8k-smoke和 Harboraime-smoke两套独立评测框架。由于模型是随机初始化的迷你模型得分为 0 是预期行为——验证的是链路而非能力。 真实跑分一个阶段的 loss 曲线在 WB 记录 中可以看到每次实验的完整指标。下图是 Marin 8B 模型在 WB 上的训练 loss 曲线log 坐标展示了同一框架在不同规模下的训练监控方式——iceball-micro 的每一步同样都会汇报 loss、tokens/s 与 MFU而下图展示训练 loss 与验证 loss 的对比形态蓝为 train、橙为 eval。iceball-micro 这类短跑实验正是用这种「快速收敛信号」来确认数据管线、tokenizer 和训练循环没有接错 如何运行 iceball-micro前置条件克隆并安装 Marin依赖用 uv 管理外部 RL 运行时 MarinSkyRL 通过独立锁文件固定版本git clone https://gitcode.com/GitHub_Trending/ma/marin cd marin基本用法三种模式见 模块文档字符串# 1. 只打印完整实验图不分配 GPU推荐先跑这个 python -m experiments.post_training.iceball_micro --version 2026.08.01 # 2. 端到端完整运行fineweb → pretrain → sft → gsm8k → rl → evaluation python -m experiments.post_training.iceball_micro --version 2026.08.01 --run # 3. 只运行到某个阶段其依赖自动包含 python -m experiments.post_training.iceball_micro --version 2026.08.01 --stage rl --run在 Iris 集群上运行从 CPU 协调器提交GPU 任务在cw-us-east-08a集群的 2×4 GB200 上执行uv run iris --clustercw-us-east-08a job run --no-wait \ -e DAYTONA_API_KEY $DAYTONA_API_KEY \ -- python -m experiments.post_training.iceball_micro --version 2026.08.02 --run资源需求一览来自 build_workflow数据步骤4 CPU / 32 GB 内存无需 GPU预训练 / SFT / RL4×GB200RL 为 2 节点 × 4 GPU评测1×GB200每个阶段产出的 checkpoint、导出和评测记录都会持久化到对象存储失败阶段可以安全重试、复用已完成的上游制品——这正是实验图artifact graph相比一次性脚本的价值所在。 关键文件导航文件作用experiments/post_training/iceball_micro.py实验主体全部 6 阶段定义tests/post_training/test_iceball_micro.py单测验证 GSM8K 奖励 schema、数据切片、依赖链完整性experiments/evaluation/README.mdEvalchemy / Harbor 评测体系说明docs/dev-guide/forking-policy.md说明 iceball-micro 还是 MarinSkyRL 外部 fork 的官方端到端验证实验config/external/MarinSkyRL/uv.lockRL 运行时版本固定值得一提iceball-micro 不只是「示例」——按 forking-policy.md 的规定每当 MarinSkyRL fork 升级时都要重跑这份实验作为回归门禁。它的实验日志也完整保存在 .agents/logbooks/iceball-micro.md包括每次提交、失败重试和最终成功的完整证据链非常值得一读。✅ 总结iceball-micro 是学习 Marin 后训练体系的最佳入口它浓缩了三个核心设计理念实验即图Graph每个阶段都是可检查、可重试、可复用的制品节点依赖自动拓扑执行最小可复现验证用 4 张卡、不到 400 万 token 就能端到端跑通「预训练 → SFT → GRPO → 双评测」把集成问题暴露在小规模上开放记录从随机初始化到得分为 0 的评测全过程留痕、可追溯。如果你想在自己的项目里复刻一条类似的后训练验证链路直接打开 iceball_micro.py 跟着 6 个阶段读一遍——这就是本文的全部答案。【免费下载链接】marinOpen-source framework for the research and development of foundation models.项目地址: https://gitcode.com/GitHub_Trending/ma/marin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考