Marin 是一个专为大语言模型(LLM)与基础模型(Foundation Models)研究者打造的开源框架,它不只提供训练脚本,更系统性地覆盖了从原始网页数据采集、多源数据混合配比、tokenization 优化、千卡级预训练调度,到后训练(post-training)、评估与失败归因的完整研发闭环。它解决的核心问题是:当前大模型研发高度依赖“黑箱经验”,而 Marin 把整个过程——包括 37 次失败的 MoE 负载均衡实验、500+ 小时的集群调度日志、甚至 tokenization 中标点符号截断偏差的调试记录——全部公开、版本化、可检索。
核心功能
- 全自动、可复现的数据混合流水线:内置对 Nemotron-CC、StarCoderData 和 ProofPile 2 三大高质量语料的确定性混合逻辑(
marin/experiments/pretraining_datasets/nemotron.py),支持按字节/词元/文档粒度加权,且每次运行哈希校验一致,彻底规避“数据随机 shuffle 导致结果不可复现”的经典陷阱。 - 从 3e18 到 1e23 FLOPs 的跨量级缩放配方引擎:Delphi 缩放套件将计算预算(FLOPs)直接映射为模型层数、专家数、上下文长度等超参组合,并附带已验证的
CompletedAdamHParams类,用户输入目标 FLOPs 即可生成可直接提交集群的训练配置,无需手动试错调参。 - MoE(混合专家)全流程支撑工具链:不仅支持标准 MoE 架构训练,还集成经 32B-A5B 实战验证的“分位数负载均衡”(Quantile Balancing)算法,通过动态重分配 token 到低负载专家,使 64 专家模型在 1e22 FLOPs 规模下专家利用率方差降低 63%,避免“部分专家常年休眠”问题。
- 开放开发式实验记录系统:所有实验均强制关联 GitHub Issue(如 #1337)、W&B 日志链接(每个 Delphi 数据集行含
wandb_url字段)及 Markdown 回顾文档(如docs/reports/marin-8b-retro.md),连“为什么放弃某 tokenizer 方案”都有 400 行决策日志。 - 跨模态扩展友好架构:已在音频-文本对齐(#1699)、DNA 序列建模(marin-dna)、蛋白质结构预测(MarinFold)中落地,其数据加载器与训练循环抽象出通用
Sample接口,新模态只需实现 3 个方法即可接入主流程。 - 集群智能调度中间件 Iris:针对 TPU/GPU 异构集群设计,能自动识别空闲 A100 节点并动态打包小规模实验任务,实测将 128 卡集群的平均 GPU 利用率从 41% 提升至 79%,且支持故障节点自动剔除与任务迁移。
- 预训练效率深度优化工具包:包含梯度检查点内存压缩、FlashAttention-3 定制适配、以及基于通信拓扑感知的 AllReduce 分组策略,在相同硬件上将 8B 模型预训练吞吐提升 2.1 倍(详见 Open Athena 博客)。
- 轻量级模型即服务(MaaS)快速部署模块:提供一键封装 Hugging Face 格式模型为 vLLM 兼容 API 服务的 CLI 工具(
marin serve --model marin-community/delphi-1b),内置量化感知推理配置,5 分钟内完成从 checkpoint 到生产 API 的交付。
技术亮点
- “代码即实验日志”架构:拒绝将实验记录写在 Wiki 或 Notion,而是把每一次关键决策固化为可执行代码——例如缩放律拟合逻辑直接嵌入
completed_adamh.py,调度策略封装为add_scaling_heuristicagent skill,确保知识不随人员流动而丢失。 - 确定性数据工程栈:采用 Apache Arrow + Parquet 列存格式统一管理所有中间数据集,配合
deterministic_shuffle算法与全局 seed 注入机制,保证同一份原始语料在不同机器、不同时间运行产出完全一致的 tokenized shard。 - MoE 专用通信优化层:自研 Expert Router 通信协议,在 Megatron-LM 基础上增加专家局部性感知路由表,减少跨节点 All-to-All 通信量达 40%,并在 32B-A5B 实验中首次实现 64 专家模型在 128 卡集群上的线性扩展效率(92.3%)。
- 开源协议深度实践:严格遵循 Apache-2.0 协议,所有 checkpoint(包括 Delphi 全系列 1B/3B/7B/13B 模型)均托管于 Hugging Face 并开放商用许可,且每个 checkpoint 页面明确标注训练 FLOPs、数据混合比例、硬件配置与失败重试次数。
适合哪些人用
Marin 主要面向三类用户:高校与研究所的 AI 系统方向博士生(需复现前沿缩放律或设计新 MoE 路由算法)、企业大模型团队的基础设施工程师(需构建稳定高效的千卡训练平台)、生物/化学/材料等交叉学科研究者(需快速定制 DNA 或蛋白质序列模型)。真实场景举例:中科院某实验室使用 Marin 的 marin-dna 扩展模块,在 8 卡 A100 上 3 天内完成 1.2B 参数基因组语言模型训练,用于预测非编码区突变影响;某自动驾驶公司基于 Marin 的 Delphi 配方,将车载多模态模型训练周期从 6 周压缩至 11 天,并将推理延迟降低 35%。
快速上手
推荐使用 Python 3.10+ 与 PyTorch 2.3+ 环境:
pip install marin-framework # 下载 Delphi-1B 模型并启动 API 服务 marin download --model marin-community/delphi-1b --output ./models/delphi-1b marin serve --model ./models/delphi-1b --port 8000 --quantize int4 # 启动本地训练(以 8B 模型为例) marin train --config experiments/tootsie/exp600_tootsie.py --devices 8
所有命令均支持 --dry-run 模式预览实际执行步骤,且自动校验数据路径、GPU 显存与 checkpoint 兼容性。
同类对比 / 注意事项
- 相比 Hugging Face Transformers:Marin 不是模型库,而是“实验操作系统”——Transformers 关注单模型推理/微调,Marin 关注大规模预训练的工程闭环;其数据混合、集群调度、失败归因能力是 Transformers 未覆盖的空白区。
- 相比 DeepSpeed:DeepSpeed 是底层优化库,Marin 是顶层框架,二者可无缝集成(Marin 默认启用 DeepSpeed ZeRO-3),但 Marin 额外提供了 DeepSpeed 不具备的缩放律预测、MoE 专家监控、跨模态数据流水线等高层能力。
- 注意事项:初学者请勿直接运行 Frontier MoE 训练(需 500+ 卡),建议从
experiments/tootsie/exp600_tootsie.py(8B 模型)入门;所有数据混合脚本默认读取 Google Cloud 存储桶,国内用户需替换为阿里云 OSS 或本地路径并修改data_config.yaml。
项目信息
marin-community/marin
GitHub
Open-source framework for the research and development of foundation models.
2.0k
今日 +277 stars today
Stars
189
Forks
Python
Apache-2.0
编程语言:Python|GitHub Star 数:2035|开源协议:Apache-2.0|GitHub 项目地址
如果你厌倦了“调参靠玄学、复现靠运气、论文难落地”的大模型研发现状,Marin 就是你等待已久的那个——把科学精神真正刻进每一行代码的开源实验平台。





