ml-engineering README

The project's README from github.com/stas00/ml-engineering. As one markdown file: README.md.

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:

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

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

ml-engineering (stas00/ml-engineering)

Searching Database…

What is this?An open book on machine learning engineering: methodologies, tools and step-by-step instructions for training, fine-tuning and running inference on large language models and multi-modal (VLM) models, written by the engineer who led the BLOOM-176B training.
Is it a book I read, or software I install?It is a book rather than a package: you read it free on GitHub or download PDF and EPUB versions, and the text is filled with scripts and copy-n-paste commands you run on your own machines.
How do I get started with it?Just read it on GitHub, or grab the PDF/EPUB from the HuggingFace hub. There is also a companion course, 'Lessons Learned from Training LLMs', that goes over the terse insights first and lets you dive deeper where needed.
Do I need my own GPU cluster to get anything out of it?Reading is free, but the hands-on parts — tools like torch-distributed-gpu-test.py and the network benchmarks — are meant to run on the GPU machines you train on, so a laptop alone won't exercise most of it.
Is this a finished, polished textbook?No — the author calls it an ongoing brain dump that keeps growing, with ebooks rebuilt only every few weeks and updates announced on his Twitter channel, so some sections are rougher than a curated textbook.
Is this for beginners or for people already running big trainings?For working LLM/VLM training engineers and operators rather than ML newcomers — it assumes you are dealing with real GPU jobs and shares hard-won recipes from training BLOOM-176B and IDEFICS-80B, not introductory theory.
Can I reuse or redistribute the content?Yes, under CC BY-SA 4.0: share and adapt it as long as you attribute the author and share alike — typical for an open book, but different from the permissive code licenses you may be used to.
What does the book actually cover?Seven parts: insights (cloud provider choice, when to upgrade GPUs), hardware (compute, storage, network), orchestration including SLURM, training, inference, debugging and testing, plus a resources chapter.
Does it come with ready-to-run tools?Yes: allreducebench.py for benchmarking network throughput more easily than nccl-tests, torch-distributed-gpu-test.py for checking inter-node connectivity, and mamf-finder.py for measuring the TFLOPS you can actually get, plus PyTorch debugging and SLURM cheat sheets.
Can I use it to teach my AI coding agent?Yes — the repo ships a SKILL.md meant to teach AI agents to train and operate large-scale ML models better, alongside companion skills: The Art of Debugging and Stas' Python Cookbook.
Will it help me decide what hardware to rent or buy?It maintains key comparison tables of accelerator TFLOPS, memory size and speed, and inter- and intra-node network speeds, and works through a real H200 to B200 benchmark to decide when a GPU upgrade is worth its cost.
What are similar projects?verl, ColossalAI, transformers, halo, skypilot, airllm, EvoVLM, ms-swift
Creator
stas00
Size
27.9 MB
Stars
19.5K
Updated
CommitOct 16
Age
6y
Commits · 90 Days