stas00/ml-engineering · 上手攻略

  • 仓库:stas00/ml-engineering
  • 链接:https://github.com/stas00/ml-engineering
  • 分类:engineering / llm-infra
  • 作者:Tom
  • 更新:2026-07-10

这是什么

stas00/ml-engineering 是一本机器学习工程开放手册,由 Meta(参与 BLOOM-176B 训练)、HuggingFace(参与 BLOOM-176B、IDEFICS-80B 训练)、Contextual.AI 等一线团队的 ML 工程师 Stas Bekman 多年实战经验沉淀而成。

与一般教程不同,它不是教你怎么用 transformers.trainer,而是解决真实大规模训练中会遇到的具体工程问题:多节点 GPU 通信调优、SLURM 集群配置、分布式存储选型、PyTorch 分布式调试、NCCL 网络基准测试、算子优化等。内容全部来自生产环境,有大量可直接复制使用的命令和脚本。

许可为 CC-BY-SA-4.0,可自由使用但需署名。


解决什么问题

  • 大规模 LLM 训练无从下手:缺少从 1 卡扩到 64+ 卡的系统性工程指南。
  • 训练卡在调试阶段:PyTorch 分布式任务 hang 住不知道从哪下手,本书有专门的 debugging 章节。
  • 集群配置选型困惑:不知道 SSD vs NVMe vs Lustre 的使用场景,不知道 InfiniBand vs RoCE 的取舍。
  • 重复踩坑:很多 ML 工程师在网络调优、存储瓶颈上反复浪费 Weeks 的时间。
  • 中文资料稀缺:主流资料多为模型使用,工程侧(训练、推理、优化)中文资料极度匮乏。

内容结构(7 大板块)

Part 1. Insights
  ├── AI Battlefield Engineering     # 成功训练需要了解的整体图景
  └── How to Choose a Cloud Provider # 选云指南

Part 2. Hardware
  ├── Compute     # GPU/CPU 选型、TFLOPS 对比、内存带宽
  ├── Storage     # 本地、分布式、共享文件系统
  └── Network     # 节点内/节点间网络(InfiniBand/RoCE/NVLink)

Part 3. Orchestration
  ├── Orchestration Systems  # 容器管理、资源调度
  └── SLURM                 # 完整的 SLURM 使用指南

Part 4. Training
  └── 训练相关指南(从入门到生产)

Part 5. Inference
  └── 推理优化相关

Part 6. Development
  ├── Debugging and Troubleshooting # PyTorch 分布式调试
  └── Testing                       # 测试最佳实践

Part 7. Miscellaneous
  └── Resources  # LLM/VLM 训练日志公开资源

核心亮点内容

GPU 算力对比表

包含各代 GPU(V100/A100/H100/H200 等)的理论 TFLOPS实际测量 TFLOPS,帮助选型决策。

all_reduce_bench.py

比 NCCL-tests 更容易使用的网络吞吐基准测试工具,用于验证多节点 GPU 通信效率。

torch-distributed-gpu-test.py

快速验证多节点 GPU 互联是否正常,避免训练中途才发现网络配置错误。

mamf-finder.py

实测你的 GPU 实际 TFLOPS,对比理论值,排查硬件或驱动问题。

SLURM 速查表

包含常用命令、常见问题排查,比官方文档更贴近实战。

PyTorch 分布式调试指南

涵盖 hang 检测、死锁排查、梯度同步失败等高频问题,有具体排查命令。


快速上手建议

这不是一个「安装后运行」的工具库,而是一本参考手册。建议用法:

  1. 电子书下载:HuggingFace 托管了 PDF/EPUB 版本,可直接下载离线阅读: - PDF - EPUB

  2. AI Agent 集成:仓库内置 SKILL.md,可以直接给 AI agent 读,让它获得训练大模型的系统性工程知识: # 在支持 SKILL.md 的 AI Agent 中加载此仓库 # Agent 即具备训练/调优 LLM 的工程知识

  3. 遇到问题时搜索:每个章节都有具体操作步骤和命令,先定位问题板块再细读。


典型适用场景

场景 适用内容
搭建训练集群 Compute/Storage/Network 全流程选型指南
多节点分布式训练 SLURM 配置、NCCL 调优、all_reduce_bench
PyTorch 调试 pytorch.md 调试章节,hang/break 排查
推理服务优化 Inference 章节
换云或选云 How to Choose a Cloud Provider
训练日志分析 Resources 章节收录了 BLOOM 等公开训练日志

坑与注意

  1. 不是入门教程:假设读者有 ML 基础(会用 PyTorch、知道什么是梯度),内容聚焦工程侧,不讲模型原理。
  2. 部分内容有时效性:GPU 型号、网络技术快速迭代,书中的具体数值(如某型号的 TFLOPS)是历史快照,需要到厂商官网获取最新数据。
  3. 深度有余、广度不足:每个话题讲得很深,但不会覆盖所有话题(如 RLHF、模型压缩等非工程侧话题不在范围内)。
  4. SLURM 为主:Orchestration 章节以 SLURM 为主要示例,如果你用 Kubernetes/MPI/其他调度系统,部分内容需要适配。
  5. 中文翻译少:目前中文社区资料极少,遇到问题主要靠读英文原版。
  6. 电子书版本可能滞后:建议直接参考 GitHub 上的 Markdown 源文件以获取最新内容。

与同类对比

资源 定位 优势 劣势
ml-engineering 工程实战手册 来自一线经验、命令脚本可直接用、内容全面 无中文、非互动式
HuggingFace 博客 训练技巧分享 及时、权威 碎片化、不系统
The Stack Overflow for ML 问题求解 覆盖面广 质量参差不齐
NVIDIA 官方文档 硬件/驱动 最权威 过于底层、不讲实战
CUDA Python 官方教程 GPU 编程入门 系统化 不涉及集群/分布式

一句话结论

如果你正在或即将从事大模型训练或推理工程,无论团队大小,这本手册都是目前最贴近生产实践的免费工程参考书。建议先通读 Insights 章节建立全局认知,再根据具体任务定向查阅。