这是一份开放的集合,包含方法论、工具以及逐步指导,以帮助成功训练大型语言模型和多模态模型及其推理。
这是适合LLM/VLM训练工程师和技术人员的技术资料。这里包含大量的脚本和可复制粘贴的命令,以便您能快速应对需求。
这个仓库是我对训练大型语言模型(LLM)(以及VLMs)的经验总结;其中很多知识是我在2022年训练开源的BLOOM-176B模型,2023年训练IDEFICS-80B多模态模型,以及在Contextual.AI于2024年训练RAG模型的过程中积累的。
我一直将这些信息整理起来主要是为了自己,这样我就可以快速找到过去已经研究过并行且有效的解决方案,但正如往常一样,我很乐意与更广泛的机器学习社区分享这些笔记。
第一部分 洞察
- 人工智能战场工程 - 成功所需了解的内容
第二部分 硬件
第三部分 编排
- SLURM - 主要的编排环境
第四部分 训练
- 训练 - 与模型训练相关的指南
第五部分 推理
- 推理 - 模型推理洞察
第六部分 开发
第七部分 杂项
- 资源 - LLM/VLM 漫游记
我会在我的推特频道https://twitter.com/StasBekman上发布任何重大更新。
下载书籍的PDF版本。
我会尝试每周更新一次,但如果您需要最新的版本,请参阅这里的构建说明。
感谢HuggingFace允许我在HuggingFace hub上托管我的书籍PDF。
如果您想讨论与机器学习工程相关的内容,此仓库提供了社区讨论,所以请随时分享您的经验或开始讨论您感兴趣的话题。
高端加速器:
网络:
您可能需要快速频繁查找的内容。
工具:
- all_reduce_bench.py - 一种比nccl-tests更容易的网络吞吐量基准测试方法。
- torch-distributed-gpu-test.py - 一个快速测试节点间连接的工具
指南:
- 调试PyTorch应用程序 - 快速复制粘贴解决挂起或中断的PyTorch应用程序的方法
- SLURM用户指南 - SLURM速查表和技巧
- 创建小型模型/数据集/分词器
- LLM/VLM 漫游记集合
如果没有被委托进行特定的LLM/VLM培训,我就不可能获得最初的专门知识。由于租用巨大的机器学习计算集群的成本高得令人望而却步,因此只有少数人能享受到这种特权。希望机器学习社区的其他人能够从这些笔记中获得间接的学习体验。
特别感谢Thom Wolf,他在我对大规模训练一无所知时提议让我领导BLOOM-176B的训练。这个项目使我进入了高强度的学习过程。当然,还要感谢HuggingFace给了我全职从事BLOOM-176B和后来IDEFICS-80B训练的机会。
最近,我在Contextual.AI训练模型和构建可扩展的训练/推理系统的过程中继续扩展我的知识和经验,对此机会我表示感激,感谢Aman和Douwe。
我还想感谢众多贡献者,他们让这本书变得出色且无误。
如果您发现了错误、拼写错误或有任何改进建议,请毫不犹豫地打开问题或提交PR。
本内容按照署名-相同方式共享 4.0 国际许可协议分发。
@misc{bekman2024mlengineering,
author = {Bekman, Stas},
title = {机器学习工程开放书籍},
year = {2023-2024},
publisher = {Stasosphere Online Inc.},
journal = {GitHub仓库},
url = {https://github.com/stas00/ml-engineering}
}