Marin:开源基础模型研究与开发框架,从数据到模型全链路可复现
一个由 Stanford CRFM 和 Open Athena 社区驱动的基础模型研发框架:数据整理、预处理、分词、预训练、后训练、评估------全流程开源可复现,所有实验过程以 open development 方式记录。
📦 项目源码备份下载(夸克网盘)完整项目已同步备份到夸克网盘,永久有效、无需提取码 :
项目简介
Marin (marin-community/marin)是 Stanford CRFM(Center for Research on Foundation Models)和 Open Athena 社区联合维护的一款开源基础模型研究与开发框架 。它的定位非常直接:为 Foundation Models 的研究、开发和社区提供一个可复现、可审计的全链路平台。
Marin 关注的是大语言模型的训练全流程------包括数据整理、变换、过滤、分词、预训练、后训练和评估。但它不只是提供工具和基础设施,更核心理念是 open development(开放开发):从原始数据到最终模型的每一步都被记录,失败的实验也是记录的一部分。
为什么选 Marin
- 🔬 Open Development 理念:所有流程、实验和决策都以文档形式实时记录。失败实验同样是资产,而非需要掩盖的污点。
- 📐 完整训练链路:数据整理、变换、过滤、分词、预训练、后训练、评估------一条 pipeline 覆盖全生命周期。
- 🧪 实验即代码:Marin 实验定义为可依赖的步骤集,按拓扑顺序执行,类似 Makefile 但更强。
- 📊 可复现、可审计:每个实验都有完整记录,从数据 Mix 到模型 Checkpoint 到 Scaling Law,全部开源可复现。
- 🌐 多模态扩展 :已被用于训练音频-文本模型、DNA 模型(marin-dna)和蛋白质模型(MarinFold)。
- 🏛️ 学术级支持:获得 Google TPU Research Cloud、Schmidt Sciences、Siegel Family Endowment 等机构支持。
核心特性
前沿混合专家模型(MoE)
当前核心研究方向:从零开始预训练并后训练一个超大混合专家模型(5e24 model-FLOPs,5000 亿+ 总参数),专注于科学家和研究者关心的任务。
Delphi Scaling Suite
Delphi 是 Marin 的开源 scaling 套件,灵感来自 Pythia,将 LLM 训练配方从 3e18 扩展到 1e23 FLOPs。包含三个部分:
- Scaling Recipe:将计算预算映射到模型配置
- Scaling Suite:在 Google TPU Research Cloud 上训练
- Scaling Law:用小型 Delphi 模型预测大型模型
已发布内容:
- 所有 run 的 Checkpoint(Hugging Face)
- 确定性复现 Nemotron-CC / StarCoderData / ProofPile 2 混合的训练 pipeline
- 可 fork 的
CompletedAdamHParams配方代码 add_scaling_heuristicagent skill 开发方法论- Plot-ready 的 Delphi 数据(每行含
wandb_url)
已有模型成果
- Marin 8B:在 base-model benchmark suite 上超越 Llama 3.1 8B
- Marin 32B:更大规模的训练成果
- 音频-文本模型、DNA 模型、蛋白质模型(MarinFold)
安装
方式一:pip 安装(推荐)
bash
pip install marin
方式二:从源码构建
bash
git clone https://github.com/marin-community/marin.git
cd marin
uv sync
前置要求:Python 3.10+、uv 包管理器。
方式三:Docker 部署
bash
docker build -f docker/marin/Dockerfile -t marin .
详细安装指南见 docs/tutorials/installation.md。
上手:运行第一个示例
Marin 实验定义为可依赖的步骤集,按拓扑顺序执行。以下是训练一个 TinyStories 小模型的完整示例:
python
from fray.cluster import ResourceConfig
from levanter.optim import AdamConfig
from marin.execution.lazy import lower
from marin.execution.step_runner import StepRunner
from marin.experiment.data import tokenized
from marin.experiment.train import train_lm
from experiments.llama import llama_nano
from experiments.marin_tokenizer import marin_tokenizer
# 1. Tokenize the dataset as a lazy handle --- nothing downloads yet.
tinystories_tokenized = tokenized(
name="tokenized/tinystories",
source="roneneldan/TinyStories",
tokenizer=marin_tokenizer,
sample_count=1000, # cap at 1 000 samples per shard to keep the tutorial fast
)
# 2. Train the model --- depends on the tokenized dataset above.
nano_tinystories_model = train_lm(
name="checkpoints/marin-nano-tinystories",
version="v1",
model=llama_nano,
optimizer=AdamConfig(learning_rate=6e-4, weight_decay=0.1),
# Steps can depend on other steps
datasets={tinystories_tokenized: 1.0},
batch_size=4,
seq_len=2048,
num_train_steps=100,
z_loss_weight=None,
evals=None,
resources=ResourceConfig.with_cpu(),
)
if __name__ == "__main__":
StepRunner().run([lower(nano_tinystories_model)])
训练步骤依赖 tokenize 步骤,因此会自动按依赖顺序执行。稍加修改即可扩展到更大模型、更多数据集、甚至多 GPU/TPU 集群。
入门路径:
适用场景
- 基础模型研究者:需要一套可复现、全链路开源的 LLM 训练框架。
- Scaling Law 研究者:利用 Delphi 套件进行不同规模模型的 scaling 实验。
- 多模态研究者:将 Marin 用于音频-文本、DNA、蛋白质等跨模态模型训练。
- 开源社区贡献者:参与 open development 理念,贡献数据处理、训练配方或评估工具。
结语
Marin 解决的不是"又一个训练框架"的问题,而是"基础模型研究如何真正可复现、可审计"的问题。它把 open development 的理念贯彻到每个细节------从数据 mix 到 scaling law,从成功实验到失败实验,全部开源记录。对于想在 Foundation Models 领域做严肃研究的团队,Marin 提供了一个学术级、可复用、可审计的底座。不妨 clone 下来跑一个 tiny model,感受一下从数据到 checkpoint 的全链路流程,也能在 ReadTheDocs 和 Open Athena Blog 里了解更多研究洞察。
资源备份(夸克网盘)
完整源代码已同步备份到夸克网盘,可直接下载:
参考链接
- 仓库地址:https://github.com/marin-community/marin
- 官方文档:https://marin.readthedocs.io/en/latest/
- Discord 社区:https://discord.gg/J9CTk7pqcM
- 许可证:Apache 2.0