Principles and Practices of Engineering Artificially Intelligent Systems
π Read Online β’ πΎ Download PDF β’ π Explore Ecosystem
π Hardcopy edition coming 2026 via MIT Press!
The open-source textbook that teaches you to build real-world AI systems β from edge devices to cloud deployment. Originally developed as Harvard University's CS249r course by Prof. Vijay Janapa Reddi, now used by universities and students worldwide.
Our mission: Expand access to AI systems education worldwide β empowering learners, one chapter and one lab at a time.
"This grew out of a concern that while students could train AI models, few understood how to build the systems that actually make them work. As AI becomes more capable and autonomous, the critical bottleneck won't be the algorithms - it will be the engineers who can build efficient, scalable, and sustainable systems that safely harness that intelligence."
β Vijay Janapa Reddi
Go beyond training models β master the full stack of real-world ML systems.
Topic | What You'll Build |
---|---|
System Design | Scalable, maintainable ML architectures |
Data Engineering | Robust pipelines for collection, labeling, and processing |
Model Deployment | Production-ready systems from prototypes |
MLOps & Monitoring | Reliable, continuously operating systems |
Edge AI | Resource-efficient deployment on mobile, embedded, and IoT |
Star this repository to help us demonstrate the value of open AI education to funders and institutions.
Goal: 10,000 stars = $100,000 in additional education funding
β Star Now β takes 2 seconds!
We've graduated this project from Harvard to enable global access and expand AI systems education worldwide. Please help us support educators globally, especially in the Global South, by providing TinyML kits for students, funding workshops, and sustaining our open-source infrastructure.
From $15/month to sponsor a learner to $250 for workshops β every contribution democratizes AI education.
Resource | Description |
---|---|
π Main Site | Complete learning platform |
π₯ TinyTorch | Educational ML framework |
π¬ Discussions | Ask questions, share insights |
π₯ Community | Join our global learning community |
# Read online (continuously updated)
open https://mlsysbook.ai
# Or download PDF for offline access
curl -O https://mlsysbook.ai/Machine-Learning-Systems.pdf
git clone https://github.com/harvard-edge/cs249r_book.git
cd cs249r_book
make setup-hooks # Setup automated quality controls
make install # Install dependencies
# Recommended: Use the binder for development
./binder preview intro # Fast chapter development
./binder help # See all commands
# Or use traditional Make commands
make preview # Start development server
We welcome contributions from the global community! Here's how you can help:
- π Content β Suggest edits, improvements, or new examples
- π οΈ Tools β Enhance development scripts and automation
- π¨ Design β Improve figures, diagrams, and visual elements
- π Localization β Translate content for global accessibility
- π§ Infrastructure β Help with build systems and deployment
All contributions benefit from automated quality assurance:
- β Pre-commit validation β Automatic cleanup and checks
- π Content review β Formatting and style validation
- π§ͺ Testing β Build and link verification
- π₯ Peer review β Community feedback
The Book Binder is our lightning-fast development CLI for streamlined building and iteration:
# Fast chapter development
./binder build intro html # Build single chapter
./binder build intro,ml_systems html # Build multiple chapters together
./binder preview intro # Build and preview chapter
# Full book building
./binder build * html # Build complete website
./binder build * pdf # Build complete PDF
# Management
./binder clean # Clean artifacts
./binder status # Show current status
./binder help # Show all commands
# Building
make build # Build HTML version
make build-pdf # Build PDF version
make preview # Start development server
# Quality Control
make clean # Clean build artifacts
make test # Run validation tests
make lint # Check for issues
# Get help
make help # Show all commands
MLSysBook/
βββ binder # β‘ Fast development CLI (recommended)
βββ book/ # Main book content (Quarto)
β βββ contents/ # Chapter content
β β βββ core/ # Core chapters
β β βββ labs/ # Hands-on labs
β β βββ frontmatter/ # Preface, acknowledgments
β β βββ backmatter/ # References and resources
β β βββ parts/ # Book parts and sections
β βββ _extensions/ # Quarto extensions
β βββ data/ # Cross-reference and metadata files
β βββ _quarto-html.yml # Website build configuration
β βββ _quarto-pdf.yml # PDF build configuration
β βββ _quarto.yml # Active config (symlink)
β βββ index.qmd # Main entry point
β βββ assets/ # Images, styles, media
βββ build/ # Build artifacts (git-ignored)
β βββ html/ # HTML website output
β βββ pdf/ # PDF book output
β βββ dist/ # Distribution files
βββ scripts/ # Root-level development scripts
β βββ content/ # Content management tools
β βββ cross_refs/ # Cross-reference management
β βββ genai/ # AI-assisted content tools
β βββ maintenance/ # Maintenance scripts
β βββ testing/ # Test scripts
β βββ utilities/ # General utilities
βββ tools/ # Development automation
β βββ scripts/ # Organized development scripts
β β βββ build/ # Build and development tools
β β βββ content/ # Content management tools
β β βββ maintenance/ # System maintenance scripts
β β βββ testing/ # Test and validation scripts
β β βββ utilities/ # General utility scripts
β β βββ docs/ # Script documentation
β βββ dependencies/ # Package requirements
β βββ setup/ # Setup and configuration
βββ config/ # Build configuration
β βββ dev/ # Development configurations
β βββ linting/ # Code quality configurations
β βββ quarto/ # Quarto publishing settings
β βββ lua/ # Lua filters and scripts
β βββ tex/ # LaTeX templates
βββ locals/ # Local development files
βββ assets/ # Global assets (covers, icons)
βββ docs/ # Documentation
β βββ BINDER.md # Binder CLI guide
β βββ DEVELOPMENT.md # Development guide
β βββ MAINTENANCE_GUIDE.md # Daily workflow guide
β βββ BUILD.md # Build instructions
β βββ contribute.md # Contribution guidelines
βββ CHANGELOG.md # Project changelog
βββ CITATION.bib # Citation information
βββ Makefile # Traditional development commands
- β‘ Binder CLI Guide β Fast development with the Book Binder
- π Development Guide β Comprehensive setup and workflow
- π οΈ Maintenance Guide β Daily tasks and troubleshooting
- π¨ Build Instructions β Detailed build process
- π€ Contribution Guidelines β How to contribute effectively
# Command-line trigger (recommended)
./binder publish "Description" COMMIT_HASH
# Interactive wizard
./binder publish
# Manual steps
./binder build - html && ./binder build - pdf
# Then copy PDF to assets and push to main
Publishing Options:
./binder publish
β Unified command with interactive and command-line modes- Web Interface β Manual trigger via GitHub Actions UI
# Welcome and overview
./binder hello
# First time setup
./binder setup
# Quick preview
./binder preview intro
@inproceedings{reddi2024mlsysbook,
title = {MLSysBook.AI: Principles and Practices of Machine Learning Systems Engineering},
author = {Reddi, Vijay Janapa},
booktitle = {2024 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ ISSS)},
pages = {41--42},
year = {2024},
organization = {IEEE},
url = {https://mlsysbook.org}
}
This work is licensed under Creative Commons AttributionβNonCommercialβShareAlike 4.0 International (CC BY-NC-SA 4.0). You may share and adapt the material for non-commercial purposes with appropriate credit.
Made with β€οΈ for AI learners worldwide
Our goal is to educate 1 million AI systems engineers for the future at the edge of AI.