mlcommons/training
Reference implementations of MLPerf® training benchmarks
MLPerf® Training 参考实现 (mlcommons/training)
是什么 – MLPerf Training 基准测试套件的 参考 代码集合。每个基准测试(例如 Llama 3.1、Stable Diffusion v2、RetinaNet、DLRM 等)都提供一个最小实现,能够:
- 在至少一个深度学习框架中构建模型,
- 通过 MLCommons 存储站点获取所需数据集,
- 运行一个 Docker 容器,训练模型直至达到基准测试的目标质量,
- 报告所用时间。
这些实现有意地 未完全优化;它们旨在作为任何人希望提交基准测试结果或研究基准测试工作原理的起点。
README 中的关键点
| 方面 | 详情 |
|---|---|
| 范围 | 多个 MLPerf 训练模型的参考实现(视觉、语言、推荐、图、扩散等)。 |
| 每个基准测试的组件 | • 模型代码(通常使用 PyTorch、TensorFlow、NeMo 或其他框架) |
| • Dockerfile | |
| • 数据集下载脚本和可选的验证脚本 | |
| • 测量达到目标质量所需时间的训练运行脚本 | |
| 如何运行 | 1. 安装 Docker 并运行共享的 install_cuda_docker.sh。 |
2. 在主机上从 training.mlcommons-storage.org 下载数据集。 |
|
| 3. (可选)验证数据集。 | |
| 4. 使用每个基准测试文件夹中提供的命令构建并启动 Docker 镜像。 | |
| 涵盖的基准测试 | 从早期版本(v4.0)到当前的 v6.1,包括以下模型: |
- Flux.1(文本到图像,Torchtitan)
- Llama 3.1‑8B、Llama 2‑70B‑LoRA(NeMo / PyTorch)
- GPT‑OSS‑20B、DeepSeek‑V3、Qwen‑35‑397B‑GRPO(大规模 LLM)
- RetinaNet、Stable Diffusion v2、BERT‑large、GPT‑3、DLRM、RGAT(视觉、NLP、推荐、GNN) | | 引用 | 如果在学术工作中使用了本仓库的任何部分,请引用 MLPerf Training 基准测试论文(arXiv:1910.01500)和提供的 BibTeX 条目。 | | 状态 | 描述为“alpha/beta”质量;鼓励贡献者提交问题或拉取请求以改进。 |
哪些人可能从中受益?
- 研究人员:准备向 MLPerf Training 基准测试提交结果,需要基准实现的人。
- 硬件厂商:希望使用可复现的工作负载测试新加速器的人(知道代码未经过深度调优)。
- 学生或工程师:学习大规模训练基准如何构建(Docker 基础、数据集处理、质量目标停止标准)的人。
快速入门(简单步骤)
- 克隆仓库:
git clone https://github.com/mlcommons/training.git。 - 选择一个基准测试文件夹(例如,Flux.1 使用
text_to_image)。 - 按照文件夹中的 README 操作:运行
install_cuda_docker.sh,按指示下载数据集,然后运行提供的docker build和docker run命令。 - 容器将训练模型,直到达到基准测试定义的质量指标,然后打印出经过的时间。
限制 / 注意事项
- 性能不具备代表性 – 这些是 参考(未优化)实现;实际世界中的性能数字将远慢于生产级堆栈所能达到的水平。
- 资源需求高 – 某些基准测试(如 70B 参数 LLM)需要大型 GPU 集群和海量存储;无法在普通笔记本电脑上运行。
- 数据集下载在 Docker 外部 – 脚本假设数据集位于主机文件系统上;放置错误会导致失败。
- alpha/beta 质量 – 代码可能不完整、包含错误或缺乏充分测试。期待社区贡献来提升稳定性。
总结
mlcommons/training 是一个真实、由社区维护的仓库,为 MLPerf Training 基准测试套件提供了最小、可复现的参考实现,覆盖广泛的 AI 任务。它是任何人希望理解、实验或提交 MLPerf 训练挑战结果的宝贵起点,但并非用于生产级训练性能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目