Back to Cs249r Book

Machine Learning Systems

book/README.md

latest38.9 KB
Original Source

Machine Learning Systems

Principles and Practices of Engineering Artificially Intelligent Systems

Read Online | Volume I | Volume II | PDF


What This Is

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.


What You Will Learn

<table> <thead> <tr> <th width="50%">ML Concepts</th> <th width="50%">Systems Engineering</th> </tr> </thead> <tbody> <tr> <td>Neural networks and deep learning</td> <td>Memory hierarchies and caching</td> </tr> <tr> <td>Model architectures (CNNs, Transformers)</td> <td>Hardware accelerators (GPUs, TPUs, NPUs)</td> </tr> <tr> <td>Training and optimization</td> <td>Distributed systems and parallelism</td> </tr> <tr> <td>Inference and deployment</td> <td>Power and thermal management</td> </tr> <tr> <td>Compression and quantization</td> <td>Latency, throughput, and efficiency</td> </tr> </tbody> </table>

The ML ↔ Systems Bridge

<table> <thead> <tr> <th width="50%">You know...</th> <th width="50%">You will learn...</th> </tr> </thead> <tbody> <tr> <td>How to train a model</td> <td>How training scales across GPU clusters</td> </tr> <tr> <td>That quantization shrinks models</td> <td>How INT8 math maps to silicon</td> </tr> <tr> <td>What a transformer is</td> <td>Why KV-cache dominates memory</td> </tr> <tr> <td>Models run on GPUs</td> <td>How schedulers balance latency vs throughput</td> </tr> <tr> <td>Edge devices have limits</td> <td>How to co-design models and hardware</td> </tr> </tbody> </table>

Book Structure

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>

Volume I: Build, Optimize, Deploy

<table> <thead> <tr> <th width="20%">Part</th> <th width="25%">Focus</th> <th width="55%">Chapters</th> </tr> </thead> <tbody> <tr> <td><b>Foundations</b></td> <td>Core concepts</td> <td>Introduction, ML Systems, DL Primer, Architectures</td> </tr> <tr> <td><b>Development</b></td> <td>Building blocks</td> <td>Workflow, Data Engineering, Frameworks, Training</td> </tr> <tr> <td><b>Optimization</b></td> <td>Making it fast</td> <td>Efficient AI, Optimizations, HW Acceleration, Benchmarking</td> </tr> <tr> <td><b>Deployment</b></td> <td>Making it work</td> <td>Serving, MLOps, Responsible Engineering</td> </tr> </tbody> </table>

Volume II: Scale, Distribute, Govern

<table> <thead> <tr> <th width="25%">Part</th> <th width="20%">Focus</th> <th width="55%">Chapters</th> </tr> </thead> <tbody> <tr> <td><b>Foundations of Scale</b></td> <td>Infrastructure</td> <td>Infrastructure, Storage, Communication</td> </tr> <tr> <td><b>Distributed Systems</b></td> <td>Coordination</td> <td>Distributed Training, Fault Tolerance, Inference, Edge Intelligence</td> </tr> <tr> <td><b>Production Challenges</b></td> <td>Operations</td> <td>On-device Learning, Privacy & Security, Robust AI, Ops at Scale</td> </tr> <tr> <td><b>Responsible Deployment</b></td> <td>Trust</td> <td>Responsible AI, Sustainable AI, AI for Good, Frontiers</td> </tr> </tbody> </table>

What Makes This Book Different

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.


Quick Start

For Readers

bash
# 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

For Contributors

bash
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

Directory Structure

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

Documentation

<table> <thead> <tr> <th width="20%">Audience</th> <th width="80%">Resources</th> </tr> </thead> <tbody> <tr> <td><b>Readers</b></td> <td><a href="https://mlsysbook.ai/book/">Online Book</a> ・ <a href="https://mlsysbook.ai/vol1/">Volume I</a> ・ <a href="https://mlsysbook.ai/vol2/">Volume II</a> ・ <a href="https://mlsysbook.ai/book/assets/downloads/Machine-Learning-Systems.pdf">PDF</a></td> </tr> <tr> <td><b>Contributors</b></td> <td><a href="docs/CONTRIBUTING.md">CONTRIBUTING.md</a> ・ <a href="docs/BUILD.md">BUILD.md</a></td> </tr> <tr> <td><b>Developers</b></td> <td><a href="docs/DEVELOPMENT.md">DEVELOPMENT.md</a> ・ <a href="docs/BINDER.md">BINDER.md</a></td> </tr> </tbody> </table>

Binder is the public automation API for book build/validate/maintenance workflows. Use Binder subcommands in editor integrations and CI where possible.


Contributing

We welcome contributions! See docs/CONTRIBUTING.md for guidelines.

  1. Fork and clone the repository
  2. Set up your environment: ./binder setup
  3. Find an issue or propose a change
  4. Make your changes in the quarto/contents/ directory
  5. Preview your changes: ./binder preview <chapter>
  6. Submit a PR with a clear description

<table> <thead> <tr> <th width="30%">Component</th> <th width="70%">Description</th> </tr> </thead> <tbody> <tr> <td><b><a href="../README.md">Main README</a></b></td> <td>Project overview and ecosystem</td> </tr> <tr> <td><b><a href="../tinytorch/">TinyTorch</a></b></td> <td>Build ML frameworks from scratch</td> </tr> <tr> <td><b><a href="../kits/">Hardware Kits</a></b></td> <td>Deploy to Arduino, Raspberry Pi, edge devices</td> </tr> <tr> <td><b><a href="https://mlsysbook.ai/book/">Website</a></b></td> <td>Read the book online</td> </tr> </tbody> </table>

Contributors

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

License

Book content is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

See LICENSE.md for details.