Files
cs249r_book/_quarto.yml
Vijay Janapa Reddi b9debb8cb2 Adds TinyTorch release link to announcement
Adds a link to the latest TinyTorch release in the book's website announcement, providing users with direct access to the project.
2025-07-15 23:14:14 -04:00

513 lines
17 KiB
YAML

project:
type: book
output-dir: _book
preview:
browser: true
navigate: true
website:
announcement:
icon: book
dismissable: true
position: below-navbar
content: |
<div id="banner">
🎉 <b>Just Announced:</b> <i>Introduction to Machine Learning Systems</i> will be published by <b>MIT Press</b> in 2026!<br>
💻 Fully open source at <a href="https://mlsysbook.ai">mlsysbook.ai</a><br>
🗒️ <a href="contents/frontmatter/changelog/changelog.html">View the full changelog</a><br>
🔥 Latest release: <a href="https://mlsysbook.github.io/tinytorch">TinyTorch</a><br>
⭐ Help grow the project: <a href="https://github.com/harvard-edge/cs249r_book">Star on GitHub</a>
</div>
book:
google-analytics:
tracking-id: "G-M21L0CBCVN"
anonymize-ip: true
version: 4
comments:
hypothesis:
theme: clean
openSidebar: true
search:
keyboard-shortcut: ["~", "/"]
location: sidebar
navbar:
banner:
text: "Welcome to My Website!"
href: "https://example.com" # Optional link for the banner text
background-color: "#FF5733" # Optional background color
text-color: "#FFFFFF" # Optional text color
pinned: false
collapse: true
back-to-top-navigation: true
favicon: favicon.png
cover-image: cover-hardcover-book.png
cover-image-alt: "Cover image."
bread-crumbs: true
sidebar:
collapse-level: 1
border: true
pinned: false
search: true
page-navigation: true
title: "Machine Learning Systems"
subtitle: "Principles and Practices of Engineering Artificially Intelligent Systems"
date: today
date-format: long
author:
name: Vijay Janapa Reddi
email: vj@eecs.harvard.edu
url: https://www.google.com/search?q=Vijay+Janapa+Reddi
affiliations: Harvard University
corresponding: true
roles: "Author, editor and curator."
abstract: |
Machine Learning Systems presents a comprehensive approach to understanding and engineering machine learning (ML). While many resources focus on ML algorithms and model architectures, this book serves as a bridge between theoretical foundations and practical engineering. It emphasizes the systems context that engineers need to master when building AI solutions in the real world. The text progresses from foundational concepts to advanced system design, integrating topics such as data engineering, model optimization, hardware-aware training approaches, and inference acceleration strategies. Throughout the book, readers develop a principled understanding of ML systems engineering, learning to reason about system architectures and address critical challenges in areas including security, privacy, and reliability. While ML applications and tools evolve rapidly, the engineering principles for building ML systems remain largely consistent. This book distills these enduring concepts, making it a resource for anyone seeking to build flexible, efficient, and robust ML systems.
----
🎙 Listen to the **AI Podcast**,
created using Google's Notebook LM and inspired by insights drawn from our
[IEEE education viewpoint paper](https://web.eng.fiu.edu/gaquan/Papers/ESWEEK24Papers/CPS-Proceedings/pdfs/CODES-ISSS/563900a043/563900a043.pdf).
This podcast provides an accessible overview of what this book is all about.
&nbsp;
<audio controls>
<source src="contents/frontmatter/media/notebooklm_podcast_mlsysbookai.mp3" type="audio/mpeg">
</audio>
----
repo-url: https://github.com/harvard-edge/cs249r_book
repo-branch: widget_quiz
repo-actions: [edit, issue, source]
downloads: [pdf, epub]
sharing: [twitter, facebook]
reader-mode: true
page-footer:
left: |
Written, edited and curated by Prof. Vijay Janapa Reddi (Harvard University)
right: |
This book was built with <a href="https://quarto.org/">Quarto</a>.
chapters:
- text: "---"
- index.qmd
- contents/frontmatter/foreword.qmd
- contents/frontmatter/about/about.qmd
- contents/frontmatter/changelog/changelog.qmd
- contents/frontmatter/acknowledgements/acknowledgements.qmd
- text: "---"
- contents/frontmatter/socratiq/socratiq.qmd
- text: "---"
- part: contents/parts/foundations.qmd
- contents/core/introduction/introduction.qmd
- contents/core/ml_systems/ml_systems.qmd
- contents/core/dl_primer/dl_primer.qmd
- contents/core/dnn_architectures/dnn_architectures.qmd
- part: contents/parts/design_principles.qmd
- contents/core/workflow/workflow.qmd
- contents/core/data_engineering/data_engineering.qmd
- contents/core/frameworks/frameworks.qmd
- contents/core/training/training.qmd
- contents/core/efficient_ai/efficient_ai.qmd
- contents/core/optimizations/optimizations.qmd
- contents/core/hw_acceleration/hw_acceleration.qmd
- contents/core/benchmarking/benchmarking.qmd
- part: contents/parts/best_practices.qmd
- contents/core/ops/ops.qmd
- contents/core/ondevice_learning/ondevice_learning.qmd
- contents/core/privacy_security/privacy_security.qmd
- contents/core/responsible_ai/responsible_ai.qmd
- contents/core/sustainable_ai/sustainable_ai.qmd
- contents/core/robust_ai/robust_ai.qmd
- part: contents/parts/impact_outlook.qmd
- contents/core/ai_for_good/ai_for_good.qmd
- contents/core/conclusion/conclusion.qmd
- text: "---"
- contents/labs/overview.qmd
- contents/labs/getting_started.qmd
# - part:
- contents/labs/arduino/nicla_vision/nicla_vision.qmd
# chapters:
- contents/labs/arduino/nicla_vision/setup/setup.qmd
- contents/labs/arduino/nicla_vision/image_classification/image_classification.qmd
- contents/labs/arduino/nicla_vision/object_detection/object_detection.qmd
- contents/labs/arduino/nicla_vision/kws/kws.qmd
- contents/labs/arduino/nicla_vision/motion_classification/motion_classification.qmd
# - part:
- contents/labs/seeed/xiao_esp32s3/xiao_esp32s3.qmd
# chapters:
- contents/labs/seeed/xiao_esp32s3/setup/setup.qmd
- contents/labs/seeed/xiao_esp32s3/image_classification/image_classification.qmd
- contents/labs/seeed/xiao_esp32s3/object_detection/object_detection.qmd
- contents/labs/seeed/xiao_esp32s3/kws/kws.qmd
- contents/labs/seeed/xiao_esp32s3/motion_classification/motion_classification.qmd
# - part:
- contents/labs/seeed/grove_vision_ai_v2/grove_vision_ai_v2.qmd
# chapters:
- contents/labs/seeed/grove_vision_ai_v2/setup_and_no_code_apps/setup_and_no_code_apps.qmd
- contents/labs/seeed/grove_vision_ai_v2/image_classification/image_classification.qmd
- contents/labs/seeed/grove_vision_ai_v2/object_detection/object_detection.qmd
# - part:
- contents/labs/raspi/raspi.qmd
# chapters:
- contents/labs/raspi/setup/setup.qmd
- contents/labs/raspi/image_classification/image_classification.qmd
- contents/labs/raspi/object_detection/object_detection.qmd
- contents/labs/raspi/llm/llm.qmd
- contents/labs/raspi/vlm/vlm.qmd
# - part:
- contents/labs/shared/shared.qmd
# chapters:
- contents/labs/shared/kws_feature_eng/kws_feature_eng.qmd
- contents/labs/shared/dsp_spectral_features_block/dsp_spectral_features_block.qmd
# - text: "---"
# - part: "RESOURCES"
# chapters:
- contents/backmatter/resources/phd_survival_guide.qmd
- text: "---"
- contents/backmatter/references.qmd
# Quiz configuration for the inject_quizzes.lua filter
quiz-config:
# Pattern for quiz file discovery in PDF builds
file-pattern: "*_quizzes.json"
# Directory to scan for quiz files
scan-directory: "contents/core"
# Whether to enable auto-discovery in PDF builds
auto-discover-pdf: true
bibliography:
- contents/core/introduction/introduction.bib
- contents/core/ai_for_good/ai_for_good.bib
- contents/core/benchmarking/benchmarking.bib
- contents/core/data_engineering/data_engineering.bib
- contents/core/dl_primer/dl_primer.bib
- contents/core/dnn_architectures/dnn_architectures.bib
- contents/core/efficient_ai/efficient_ai.bib
- contents/core/ml_systems/ml_systems.bib
- contents/core/frameworks/frameworks.bib
- contents/core/hw_acceleration/hw_acceleration.bib
- contents/core/ondevice_learning/ondevice_learning.bib
- contents/core/ops/ops.bib
- contents/core/optimizations/optimizations.bib
- contents/core/privacy_security/privacy_security.bib
- contents/core/responsible_ai/responsible_ai.bib
- contents/core/robust_ai/robust_ai.bib
- contents/core/sustainable_ai/sustainable_ai.bib
- contents/core/training/training.bib
- contents/core/workflow/workflow.bib
- contents/core/conclusion/conclusion.bib
comments:
giscus:
repo: harvard-edge/cs249r_book
crossref:
appendix-title: "Appendix"
appendix-delim: ":"
custom:
- kind: float
key: vid
latex-env: vid
reference-prefix: Video
citation: true
license: CC-BY-NC-SA
filters:
- lua/sidenote.lua
- lua/inject-partsummary.lua
- lua/inject_quizzes.lua
- diagram
- custom-numbered-blocks
- lua/margin-connections.lua
diagram:
engine:
dot: true
mermaid: false
asymptote: false
tikz:
execpath: lualatex
header-includes:
- '\usepackage{tikz}'
- '\usepackage{pgfplots}'
- '\usepackage{pgf-pie}'
- '\usepackage{amsmath}'
- '\usepackage{amssymb}'
- '\usepackage{xcolor}'
- '\pgfplotsset{compat=1.9}'
- '\usepgfplotslibrary{fillbetween}'
- '\usetikzlibrary{angles}'
- '\usetikzlibrary{arrows.meta}'
- '\usetikzlibrary{arrows}'
- '\usetikzlibrary{backgrounds}'
- '\usetikzlibrary{bending}'
- '\usetikzlibrary{calc}'
- '\usetikzlibrary{fit}'
- '\usetikzlibrary{intersections}'
- '\usetikzlibrary{positioning}'
- '\usetikzlibrary{shapes.geometric}'
- '\usetikzlibrary{shapes}'
- '\usetikzlibrary{quotes}'
- '\usetikzlibrary{decorations.pathmorphing}'
- '\usetikzlibrary{matrix}'
- '\definecolor{Brown}{rgb}{0.65, 0.16, 0.16}'
- '\definecolor{BrownL}{rgb}{0.6, 0.4, 0.2}'
- '\definecolor{BrownLine}{rgb}{0.5, 0.3, 0.1}'
- '\definecolor{BackColor}{RGB}{255,255,229}'
- '\definecolor{BackLine}{RGB}{181,181,72}'
- '\definecolor{BlueD}{RGB}{62,100,125}'
- '\definecolor{BlueL}{RGB}{209,243,255}'
- '\definecolor{BlueLine}{RGB}{34,148,189}'
- '\definecolor{BrownL}{RGB}{233,222,220}'
- '\definecolor{BrownLine}{RGB}{143,120,116}'
- '\definecolor{Green}{rgb}{0.0, 0.5, 0.0}'
- '\definecolor{GreenD}{RGB}{40,117,40}'
- '\definecolor{GreenL}{RGB}{219,253,166}'
- '\definecolor{GreenLine}{RGB}{73,89,56}'
- '\definecolor{OliveL}{RGB}{230,227,191}'
- '\definecolor{OliveLine}{RGB}{173,166,10}'
- '\definecolor{OrangeL}{RGB}{250,212,175}'
- '\definecolor{OrangeLine}{RGB}{255,127,76}'
- '\definecolor{RedL}{RGB}{253,226,240}'
- '\definecolor{RedLine}{RGB}{201,20,110}'
- '\definecolor{Sepia}{rgb}{0.44, 0.26, 0.08}'
- '\definecolor{TextColor}{RGB}{224,224,224}'
- '\definecolor{VioletL}{RGB}{247,180,247}'
- '\definecolor{VioletL2}{RGB}{243,243,255}'
- '\definecolor{VioletLine}{RGB}{128,0,128}'
- '\definecolor{VioletLine2}{RGB}{169,136,229}'
editor:
render-on-save: true
format:
html:
lightbox: true
mermaid:
theme: default
theme:
light:
- Litera
- style.scss
- style-light.scss
dark:
- darkly
- style.scss
- style-dark.scss
code-block-bg: true
#code-block-border-left: "#A51C30"
table:
classes: [table-striped, table-hover]
language:
title-block-author-single: "Author, Editor & Curator"
title-block-published: "Last Updated"
reference-location: margin
citation-location: margin
sidenote: true #Enable sidenotes for Tufte style
linkcolor: "#A51C30"
urlcolor: "#A51C30"
highlight-style: github
code-link: true
link-external-icon: false
link-external-newwindow: true
anchor-sections: true
smooth-scroll: false
citations-hover: false
footnotes-hover: false
fig-width: 7
fig-height: 5
number-depth: 3
toc: true
toc-depth: 4
include-in-header:
text: |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-M21L0CBCVN"></script>
<script type="module" src="/scripts/ai_menu/dist/bundle.js" defer></script>
<script type="module" src="/scripts/ai_menu/dist/sqlite3-opfs-async-proxy-B_ImRJXp.js"></script>
<script type="module" src="/scripts/ai_menu/dist/sqlite3-worker1-bundler-friendly-CbDNa4by.js"></script>
<script type="module" src="/scripts/ai_menu/dist/worker-voUF5YDa.js"></script>
citeproc: true
epub:
toc: true
number-sections: true
epub-cover-image: cover-image-transparent.png
footnotes-placement: end-of-chapter
titlepage-pdf:
pdf-engine: lualatex
use-rsvg-convert: true
documentclass: scrbook
classoption: [abstract,titlepage]
coverpage: true
coverpage-title: "Machine Learning Systems"
coverpage-bg-image: "cover-image-transparent.png"
coverpage-author: ["Vijay", "Janapa Reddi"]
coverpage-footer: "Introduction to"
coverpage-theme:
page-text-align: "center"
bg-image-left: "0.225\\paperwidth"
bg-image-bottom: 7
bg-image-rotate: 0
bg-image-opacity: 1.0
author-style: "plain"
author-sep: "newline"
author-fontsize: 20
author-align: "right"
author-bottom: "0.132\\paperwidth" #0.15
author-left: 7in
author-width: 6in
header-style: "none"
date-style: "none"
title-fontsize: 57
title-left: "0.075\\paperwidth"
title-bottom: "0.31\\paperwidth" #0.35
title-width: "0.9\\paperwidth"
footer-fontsize: 25
footer-left: "0.075\\paperwidth"
footer-bottom: "0.38\\paperwidth" #0.42
footer-width: "0.9\\paperwidth"
footer-align: "left"
titlepage: true
titlepage-theme:
elements: [ "\\titleblock",
"Prof. Vijay Janapa Reddi",
"School of Engineering and Applied Sciences",
"Harvard University",
"\\vspace{80mm}",
"With heartfelt gratitude to the community for their invaluable contributions and steadfast support.",
"\\vfill",
"{{< meta date >}}",
"\\vfill"]
date: "today"
date-format: long
page-align: "left"
title-style: "plain"
title-fontstyle: ["huge", "bfseries"]
title-space-after: "4\\baselineskip"
title-subtitle-space-between: "0.05\\textheight"
subtitle-fontstyle: ["large", "textit"]
author-style: "superscript-with-and"
author-fontstyle: "large"
affiliation-style: "numbered-list-with-correspondence"
affiliation-fontstyle: "large"
affiliation-space-after: "0pt"
footer-style: "plain"
footer-fontstyle: "large"
logo-size: "0.15\\textheight"
logo-space-after: "1\\baselineskip"
vrule-width: "2pt"
vrule-align: "left"
vrule-color: "black"
toc: true
lof: false
lot: false
top-level-division: chapter
number-sections: true
toc-depth: 4
number-depth: 3
keep-tex: true
citation-package: natbib
link-citations: true
biblio-title: "References"
cite-method: citeproc
title-block-style: none
indent: 0px
fontsize: 9pt
colorlinks: true
reference-location: document
citation-location: block
fig-caption: true
#cap-location: margin
fig-cap-location: margin
tbl-cap-location: margin
tbl-colwidths: auto
hyperrefoptions:
- linktoc=all
- pdfwindowui
- pdfpagemode=FullScreen
- pdfpagelayout=TwoPageRight
include-in-header:
- file: "tex/header-includes.tex"
custom-numbered-blocks:
groups:
quiz-question:
colors: ["E1F3F8", "119EC7"]
collapse: false
quiz-answer:
colors: ["FAEAF1", "980e5a"]
collapse: true
resource-slides:
colors: ["E9F3E3", "55984D"]
collapse: false
numbered: false
resource-videos:
colors: ["f9f5f0", "8b5e3c"]
collapse: false
numbered: false
resource-exercises:
colors: ["f7f0fa", "815AA4"]
collapse: false
numbered: false
chapter-connection:
colors: ["FDF2F7", "ED3237"]
boxstyle: foldbox.simple
collapse: false
numbered: false
classes:
callout-quiz-question:
label: "Self-Check: Question"
group: quiz-question
callout-quiz-answer:
label: "Self-Check: Answer"
group: quiz-answer
callout-resource-slides:
label: "Slides"
group: resource-slides
callout-resource-videos:
label: "Videos"
group: resource-videos
callout-resource-exercises:
label: "Exercises"
group: resource-exercises
callout-chapter-connection:
label: "Chapter connection"
group: chapter-connection
resources:
- CNAME