book/README.md
Principles and Practices of Engineering Artificially Intelligent Systems
Read Online | Volume I | Volume II | PDF
The ML Systems textbook teaches you how to engineer AI systems that work in the real world. It bridges machine learning theory with systems engineering practice, covering everything from neural network fundamentals to production deployment.
This directory contains the textbook source and build system for contributors.
This textbook is organized into two volumes following the Hennessy & Patterson pedagogical model:
<table> <thead> <tr> <th width="20%">Volume</th> <th width="30%">Theme</th> <th width="50%">Focus</th> </tr> </thead> <tbody> <tr> <td><b>Volume I</b></td> <td>Build, Optimize, Deploy</td> <td>Single-machine ML systems, foundational principles</td> </tr> <tr> <td><b>Volume II</b></td> <td>Scale, Distribute, Govern</td> <td>Distributed systems at production scale</td> </tr> </tbody> </table>Systems first: Start with hardware constraints and work up to algorithms, not the other way around.
Production focus: Every concept connects to real deployment scenarios, not just research benchmarks.
Open and evolving: Community-driven updates keep content current with a fast-moving field.
Hands-on companion: Pair with TinyTorch to build what you learn from scratch.
# Read online
open https://mlsysbook.ai/book/
# Download formats
curl -O https://mlsysbook.ai/book/assets/downloads/Machine-Learning-Systems.pdf
curl -O https://mlsysbook.ai/book/assets/downloads/Machine-Learning-Systems.epub
cd book
# First time setup
./binder setup
./binder doctor
# Daily workflow
./binder clean # Clean build artifacts
./binder build # Build HTML book
./binder preview intro # Preview chapter with live reload
# Build all formats
./binder build pdf # Build PDF
./binder build epub # Build EPUB
# Utilities
./binder help # Show all commands
./binder list # List chapters
./binder validate all # Run Binder-native validation checks
./binder maintain repo-health # Run Binder-native repo diagnostics
book/
├── quarto/ # Book source (Quarto markdown)
│ ├── contents/ # Chapter content
│ │ ├── vol1/ # Volume I: Build, Optimize, Deploy
│ │ ├── vol2/ # Volume II: Scale, Distribute, Govern
│ │ ├── frontmatter/ # Preface, about, changelog
│ │ └── backmatter/ # References, glossary
│ ├── assets/ # Images, downloads
│ └── config/ # Quarto configuration files
├── cli/ # Binder CLI tool
├── docker/ # Development containers
├── docs/ # Documentation
├── tools/ # Build scripts
└── binder # CLI entry point
Binder is the public automation API for book build/validate/maintenance workflows. Use Binder subcommands in editor integrations and CI where possible.
We welcome contributions! See docs/CONTRIBUTING.md for guidelines.
./binder setupquarto/contents/ directory./binder preview <chapter>Thanks to these wonderful people who helped improve the book!
Legend: 🪲 Bug Hunter · ⚡ Code Warrior · 📚 Documentation Hero · 🎨 Design Artist · 🧠 Idea Generator · 🔎 Code Reviewer · 🧪 Test Engineer · 🛠️ Tool Builder
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/profvjreddi"> <sub><b>Vijay Janapa Reddi</b></sub></a> 🪲 🧑💻 🎨 ✍️ 🧠 🔎 🧪 🛠️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Mjrovai"> <sub><b>Marcelo Rovai</b></sub></a> 🧑💻 🎨 🧪</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/GabrielAmazonas"> <sub><b>Gabriel Amazonas</b></sub></a> 🪲 ✍️ 🧠</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/hzeljko"> <sub><b>Zeljko Hrcek</b></sub></a> 🧑💻 ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/kai4avaya"> <sub><b>Kai Kleinbard</b></sub></a> 🧑💻 🛠️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/didier-durand"> <sub><b>Didier Durand</b></sub></a> ✍️ 🪲</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jasonjabbour"> <sub><b>Jason Jabbour</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/uchendui"> <sub><b>Ikechukwu Uchendu</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Naeemkh"> <sub><b>Naeem Khoshnevis</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Sara-Khosravi"> <sub><b>Sara Khosravi</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/V0XNIHILI"> <sub><b>Douwe den Blanken</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/18jeffreyma"> <sub><b>Jeffrey Ma</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/shanzehbatool"> <sub><b>shanzehbatool</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/eliasab16"> <sub><b>Elias</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/JaredP94"> <sub><b>Jared Ping</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ishapira1"> <sub><b>Itai Shapira</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Maximilian Lam</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jaysonzlin"> <sub><b>Jayson Lin</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/sophiacho1"> <sub><b>Sophia Cho</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/andreamurillomtz"> <sub><b>Andrea</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/alxrod"> <sub><b>Alex Rodriguez</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/korneelf1"> <sub><b>Korneel Van den Berghe</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/foundingnimo"> <sub><b>Nimo</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/colbybanbury"> <sub><b>Colby Banbury</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/zishenwan"> <sub><b>Zishen Wan</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/mmaz"> <sub><b>Mark Mazumder</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ma3mool"> <sub><b>Abdulrahman Mahmoud</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/DivyaAmirtharaj"> <sub><b>Divya Amirtharaj</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/srivatsankrishnan"> <sub><b>Srivatsan Krishnan</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/arnaumarin"> <sub><b>marin-llobet</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/aptl26"> <sub><b>Aghyad Deeb</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/James-QiuHaoran"> <sub><b>Haoran Qiu</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Ekhao"> <sub><b>Emil Njor</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ELSuitorHarvard"> <sub><b>ELSuitorHarvard</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/kaiM0ves"> <sub><b>kaiM0ves</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/oishib"> <sub><b>oishib</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jared-ni"> <sub><b>Jared Ni</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/AditiR-42"> <sub><b>Aditi Raju</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/MichaelSchnebly"> <sub><b>Michael Schnebly</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/VThuong99"> <sub><b>Thuong Duong</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/leo47007"> <sub><b>Yu-Shun Hsiao</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/BaeHenryS"> <sub><b>Henry Bae</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/eimlav"> <sub><b>Eimhin Laverty</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jaywonchung"> <sub><b>Jae-Won Chung</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ShvetankPrakash"> <sub><b>Shvetank Prakash</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/marcozennaro"> <sub><b>Marco Zennaro</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/aryatschand"> <sub><b>Arya Tschand</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/arbass22"> <sub><b>Andrew Bass</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/pongtr"> <sub><b>Pong Trairatvorakul</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/euranofshin"> <sub><b>Eura Nofshin</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Matthew Stewart</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Emeka Ezike</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jianqingdu"> <sub><b>jianqingdu</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jzhou1318"> <sub><b>Jennifer Zhou</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/vitasam"> <sub><b>The Random DIY</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Fatima Shah</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/BrunoScaglione"> <sub><b>Bruno Scaglione</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Allen-Kuang"> <sub><b>Allen-Kuang</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Tess314</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/taunoe"> <sub><b>Tauno Erik</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/gnodipac886"> <sub><b>gnodipac886</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/serco425"> <sub><b>Sercan Aygün</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/TheHiddenLayer"> <sub><b>TheHiddenLayer</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Gjain234"> <sub><b>Gauri Jain</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/FinAminToastCrunch"> <sub><b>Fin Amin</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/alex-oesterling"> <sub><b>Alex Oesterling</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/AbenezerKb"> <sub><b>Abenezer Angamo</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/BravoBaldo"> <sub><b>Baldassarre Cesarano</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Jahnic-kb"> <sub><b>Jahnic Beck</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/aethernavshulkraven-allain"> <sub><b>अरनव शुक्ला | Arnav Shukla</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/RinZ27"> <sub><b>Rin</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/bilgeacun"> <sub><b>Bilge Acun</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/atcheng2"> <sub><b>Andy Cheng</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/arighosh05"> <sub><b>Aritra Ghosh</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/abigailswallow"> <sub><b>abigailswallow</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/YangZhou1997"> <sub><b>Yang Zhou</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/XaicuL"> <sub><b>JEON HYUNJUN(Luciano)</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/emmanuel2406"> <sub><b>Emmanuel Rassou</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jasonlyik"> <sub><b>Jason Yik</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/jessicaquaye"> <sub><b>Jessica Quaye</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/cursoragent"> <sub><b>Cursor Agent</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/happyappledog"> <sub><b>happyappledog</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/snuggs"> <sub><b>Snuggs</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/swilcock0"> <sub><b>Sam Wilcock</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/sjohri20"> <sub><b>Shreya Johri</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/skmur"> <sub><b>Sonia Murthy</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Costin-Andrei Oncescu</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>formlsysbookissue</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Annie Laurie Cook</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Parampreet Singh</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Vijay Edupuganti</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Jothi Ramaswamy</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Batur Arslan</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Curren Iyer</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Edward Jin</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Tess Watt</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>bluebaer7</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>yanjingl</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>a-saraf</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>songhan</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>jvijay</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/harvard-edge/cs249r_book/graphs/contributors"> <sub><b>Zishen</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/BunningsWarehouseOfficial"> <sub><b>Kristian Radoš</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/minhdang26403"> <sub><b>Dang Truong</b></sub></a> 🧑💻</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/pipme"> <sub><b>pipme</b></sub></a> ✍️</td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/salmanmkc"> <sub><b>Salman Chishti</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/paolo-estavillo"> <sub><b>Paolo Estavillo</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/GronuJ"> <sub><b>GronuJ</b></sub></a> ✍️</td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Pratham-ja"> <sub><b>Pratham Chaudhary</b></sub></a> 🧑💻</td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END -->Recognize a contributor: Comment on any issue or PR:
@all-contributors please add @username for doc, review, translation, or design
Book content is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
See LICENSE.md for details.