ml-engineering

stas00 / ml-engineering

一本开放式的机器学习工程实战手册,系统总结大模型训练与调优的踩坑经验、性能优化方法和实用工具,帮助工程师少走弯路。

Python 模型训练 AI 基础设施 开发工具 机器学习工程 性能优化 最佳实践 开源书籍

为什么值得看

编辑点评

这是由资深工程师维护的硬核工程指南,内容覆盖分布式训练、混合精度、GPU/TPU 调优、故障排查等真实场景,代码示例丰富,适合正在训练大模型或优化训练管线的工程师。优点是实践性强、紧跟前沿;缺点是内容庞大且更新快,需要按需查阅而非通读。

Star 趋势

近 7 日
  • Star 总数19,003
  • 今日新增+2
  • 7 日增速-50%
  • Fork1,246

同类项目

同场景 · 模型训练 / AI 基础设施 / 开发工具

项目文档

来自 GitHub README · master 分支

Machine Learning Engineering Open Book

This is an open collection of methodologies, tools and step by step instructions to help with successful training and fine-tuning of large language models and multi-modal models and their inference.

This is a technical material suitable for LLM/VLM training engineers and operators. That is the content here contains lots of scripts and copy-n-paste commands to enable you to quickly address your needs.

This repo is an ongoing brain dump of my experiences training Large Language Models (LLM) (and VLMs); a lot of the know-how I acquired while training the open-source BLOOM-176B model in 2022 and IDEFICS-80B multi-modal model in 2023, and RAG models at Contextual.AI in 2024.

I've been compiling this information mostly for myself so that I could quickly find solutions I have already researched in the past and which have worked, but as usual I'm happy to share these notes with the wider ML community.

Table of Contents

Part 1. Insights

  1. The AI Battlefield Engineering - what you need to know in order to succeed.

  2. How to Choose a Cloud Provider - these questions will empower you to have a successful compute cloud experience.

  3. When Is It Worth Upgrading GPUs? - a practical framework for deciding whether a GPU generation upgrade is worth its cost, worked through on a real H200 → B200 benchmark.

Part 2. Hardware

  1. Compute - accelerators, CPUs, CPU memory.

  2. Storage - local, distributed and shared file systems.

  3. Network - intra- and inter-node networking.

Part 3. Orchestration

  1. Orchestration Systems - managing containers and resources
  2. SLURM - Simple Linux Utility for Resource Management

Part 4. Training

  1. Training - model training-related guides

Part 5. Inference

  1. Inference - model inference insights

Part 6. Development

  1. Debugging and Troubleshooting - how to debug easy and difficult issues

  2. And more debugging

  3. Testing - numerous tips and tools to make test writing enjoyable

Part 7. Miscellaneous

  1. Resources - LLM/VLM chronicles

Updates

I announce any significant updates on my twitter channel https://twitter.com/StasBekman.

Ebook versions of the book

You can download various ebook formats of this book: * PDF * EPUB

I will try to rebuild these once in a few weeks or so, but if you want the latest ebook versions, the instructions for building are here.

Thanks to HuggingFace for giving me permission to host my book's ebook formats at the HF hub.

SKILL.md for AI agents

I maintain a SKILL.md file that you can use to teach your AI agent to train and operate large-scale ML models better.

See also the companion skills: The Art of Debugging and Stas' Python Cookbook.

Courses

  • Lessons Learned from Training LLMs - provides a very different way of reading my open books, by going over the terse learned insights and allowing you to quickly dive deeper when you need to.

Lectures/Talks

Discussions

If you want to discuss something related to ML engineering this repo has the community discussions available - so please don't hesitate to share your experience or start a new discussion about something you're passionate about.

Key comparison tables

High end accelerators:

Networks:

Shortcuts

Things that you are likely to need to find quickly and often.

Tools:

Guides:

Gratitude

None of this would have been possible without me being entrusted with doing the specific LLM/VLM trainings I have learned the initial know-how from. This is a privilege that only a few enjoy due to the prohibitively expensive cost of renting huge ML compute clusters. So hopefully the rest of the ML community will vicariously learn from these notes.

Special thanks go to Thom Wolf who proposed that I lead the BLOOM-176B training back when I didn't know anything about large scale training. This was the project that catapulted me into the intense learning process. And, of course, HuggingFace for giving me the opportunity to work full time on BLOOM-176B and later on IDEFICS-80B trainings.

Recently, I continued expanding my knowledge and experience while training models and building scalable training/inference systems at Contextual.AI and I'm grateful for that opportunity to Aman and Douwe.

I'd also like to thank the numerous contributors who have been making this text awesome and error-free.

Contributing

If you found a bug, typo or would like to propose an improvement please don't hesitate to open an Issue or contribute a PR.

License

The content of this site is distributed under Attribution-ShareAlike 4.0 International.

Citation

@misc{bekman2024mlengineering,
  author = {Bekman, Stas},
  title = {Machine Learning Engineering Open Book},
  year = {2023-2026},
  publisher = {Stasosphere Online Inc.},
  journal = {GitHub repository},
  url = {https://github.com/stas00/ml-engineering}
}

My repositories map

Books: Machine Learning Engineering | The Art of Debugging | Stas' Python Cookbook

Applications: ipyexperiments

Tools and Cheatsheets: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix

Other Machine Learning: ML ways | Porting

文档抓取自 GitHub 仓库 README,版权归原作者所有;已过滤徽章等噪音并经安全消毒后展示。