mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-04-30 09:38:38 -05:00
- Simplify navbar to textbook-focused design: Labs, Kits, PDF + GitHub tools - Move 'Edit this page', 'Report issue' from buried TOC to accessible GitHub dropdown - Add CSS styling for navbar active states with crimson highlighting - Implement JavaScript active state detection handling .qmd→.html URL conversion - Fix URL matching for localhost development environment - Ensure proper visual feedback when navigating between Labs/Kits sections - Maintain clean, academic navbar design appropriate for textbook format
549 lines
20 KiB
YAML
549 lines
20 KiB
YAML
# =============================================================================
|
|
# HTML WEBSITE CONFIGURATION
|
|
# =============================================================================
|
|
# This configuration is optimized for the interactive website build.
|
|
#
|
|
# Key Features:
|
|
# - Modern website navigation with organized sidebar sections
|
|
# - TikZ diagrams automatically converted to SVG for web browsers
|
|
# - Clean page layout without citation boxes or license footers
|
|
# - Interactive quizzes and cross-reference connections
|
|
# - Streamlined filters (no PDF-specific features like sidenotes)
|
|
# - No chapter numbering for cleaner web presentation
|
|
#
|
|
# Usage:
|
|
# make build # Uses this config automatically
|
|
# make preview # Uses this config for development
|
|
#
|
|
# Part of the dual-configuration system:
|
|
# _quarto-html.yml # This file (website optimized)
|
|
# _quarto-pdf.yml # Academic PDF optimized
|
|
# =============================================================================
|
|
|
|
project:
|
|
type: website
|
|
output-dir: ../build/html
|
|
preview:
|
|
browser: true
|
|
navigate: true
|
|
|
|
website:
|
|
# High-level navigation enhancements
|
|
page-navigation: true
|
|
reader-mode: false
|
|
back-to-top-navigation: true
|
|
bread-crumbs: true
|
|
|
|
# Announcement bar configuration
|
|
announcement:
|
|
icon: megaphone
|
|
dismissable: true
|
|
type: primary
|
|
position: below-navbar
|
|
content: |
|
|
🎉 **Just Announced:** *Machine Learning Systems* will be published by **MIT Press**. [See the news →](https://www.linkedin.com/posts/vijay-janapa-reddi-63a6a173_tinyml-tikz-ai-activity-7338324711145136128-6WU-?utm_source=share&utm_medium=member_desktop&rcm=ACoAAA-V7E4BcYtyZgLSeGhXC2t9jRSlmazfp-I)<br>
|
|
|
|
🚀 **Sneak Peek:** [Tiny🔥Torch](https://mlsysbook.github.io/TinyTorch/intro.html). Build your own machine learning framework from scratch!<br>
|
|
|
|
🧠 **Self-checks:** Added lightweight [quizzes](/contents/core/introduction/introduction.qmd#quiz-question-sec-introduction-ai-ml-basics-041a) to each chapter for self-assessment.<br>
|
|
|
|
📦 **New Hardware:** [Seeed TinyML Kit](/contents/labs/kits.qmd). Latest hands-on learning platform.
|
|
|
|
google-analytics:
|
|
tracking-id: "G-M21L0CBCVN"
|
|
anonymize-ip: true
|
|
version: 4
|
|
|
|
comments:
|
|
hypothesis:
|
|
theme: clean
|
|
openSidebar: false
|
|
|
|
navbar:
|
|
background: light
|
|
logo: "assets/images/icons/favicon.png"
|
|
search: true
|
|
pinned: true
|
|
collapse: true
|
|
collapse-below: "md"
|
|
title: "Machine Learning Systems"
|
|
right:
|
|
- icon: code
|
|
text: "Labs"
|
|
href: contents/labs/labs.qmd
|
|
- icon: box
|
|
text: "Kits"
|
|
href: contents/labs/kits.qmd
|
|
- icon: download
|
|
text: "PDF"
|
|
href: https://mlsysbook.ai/pdf
|
|
target: _blank
|
|
tools:
|
|
- icon: star
|
|
href: https://github.com/harvard-edge/cs249r_book
|
|
aria-label: "Star on GitHub"
|
|
- icon: heart
|
|
href: https://opencollective.com/mlsysbook
|
|
aria-label: "Donate & Support"
|
|
- icon: github
|
|
menu:
|
|
- text: "✏️ Edit this page"
|
|
href: https://github.com/harvard-edge/cs249r_book
|
|
- text: "🐛 Report an issue"
|
|
href: https://github.com/harvard-edge/cs249r_book/issues/new
|
|
- text: "💬 Discussions"
|
|
href: https://github.com/harvard-edge/cs249r_book/discussions
|
|
- text: "🔍 View source"
|
|
href: https://github.com/harvard-edge/cs249r_book
|
|
|
|
favicon: assets/images/icons/favicon.png
|
|
|
|
sidebar:
|
|
- id: main-content
|
|
title: "Main Content"
|
|
style: "floating"
|
|
background: light
|
|
collapse-level: 3
|
|
contents:
|
|
# <!------------------------------------------------->
|
|
# <!-- Frontmatter -->
|
|
# <!------------------------------------------------->
|
|
|
|
- text: "Homepage"
|
|
href: index.qmd
|
|
- text: "Foreword"
|
|
href: contents/frontmatter/foreword.qmd
|
|
- href: contents/frontmatter/about/about.qmd
|
|
- href: contents/frontmatter/changelog/changelog.qmd
|
|
- href: contents/frontmatter/acknowledgements/acknowledgements.qmd
|
|
- href: contents/frontmatter/socratiq/socratiq.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part I: Systems Foundations -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Systems Foundations"
|
|
id: foundations
|
|
contents:
|
|
- href: contents/core/introduction/introduction.qmd
|
|
- href: contents/core/ml_systems/ml_systems.qmd
|
|
- href: contents/core/dl_primer/dl_primer.qmd
|
|
- href: contents/core/dnn_architectures/dnn_architectures.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part II: Design Principles -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Design Principles"
|
|
id: design
|
|
contents:
|
|
- href: contents/core/workflow/workflow.qmd
|
|
- href: contents/core/data_engineering/data_engineering.qmd
|
|
- href: contents/core/frameworks/frameworks.qmd
|
|
- href: contents/core/training/training.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part III: Performance Engineering -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Performance Engineering"
|
|
id: performance
|
|
contents:
|
|
- href: contents/core/efficient_ai/efficient_ai.qmd
|
|
- href: contents/core/optimizations/optimizations.qmd
|
|
- href: contents/core/hw_acceleration/hw_acceleration.qmd
|
|
- href: contents/core/benchmarking/benchmarking.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part IV: Robust Deployment -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Robust Deployment"
|
|
id: deployment
|
|
contents:
|
|
- href: contents/core/ops/ops.qmd
|
|
- href: contents/core/ondevice_learning/ondevice_learning.qmd
|
|
- href: contents/core/robust_ai/robust_ai.qmd
|
|
- href: contents/core/privacy_security/privacy_security.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part V: Trustworthy Systems -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Trustworthy Systems"
|
|
id: trustworthy
|
|
contents:
|
|
- href: contents/core/responsible_ai/responsible_ai.qmd
|
|
- href: contents/core/sustainable_ai/sustainable_ai.qmd
|
|
- href: contents/core/ai_for_good/ai_for_good.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part VI: Frontiers -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Frontiers of ML Systems"
|
|
id: frontiers
|
|
contents:
|
|
#- href: contents/core/frontiers/frontiers.qmd
|
|
- href: contents/core/conclusion/conclusion.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part VII: Laboratory Exercises Overview -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Hands-on Labs"
|
|
id: labs-overview
|
|
auto-collapse: true
|
|
contents:
|
|
- href: contents/labs/labs.qmd
|
|
- href: contents/labs/kits.qmd
|
|
- href: contents/labs/ide_setup.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part VIII: Arduino Labs -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Arduino"
|
|
id: arduino
|
|
auto-collapse: true
|
|
contents:
|
|
- href: contents/labs/arduino/nicla_vision/nicla_vision.qmd
|
|
- href: contents/labs/arduino/nicla_vision/setup/setup.qmd
|
|
- href: contents/labs/arduino/nicla_vision/image_classification/image_classification.qmd
|
|
- href: contents/labs/arduino/nicla_vision/object_detection/object_detection.qmd
|
|
- href: contents/labs/arduino/nicla_vision/kws/kws.qmd
|
|
- href: contents/labs/arduino/nicla_vision/motion_classification/motion_classification.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part IX: Seeed XIAO ESP32S3 Labs -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Seeed XIAO ESP32S3"
|
|
id: seeed-xiao
|
|
auto-collapse: true
|
|
contents:
|
|
- href: contents/labs/seeed/xiao_esp32s3/xiao_esp32s3.qmd
|
|
- href: contents/labs/seeed/xiao_esp32s3/setup/setup.qmd
|
|
- href: contents/labs/seeed/xiao_esp32s3/image_classification/image_classification.qmd
|
|
- href: contents/labs/seeed/xiao_esp32s3/object_detection/object_detection.qmd
|
|
- href: contents/labs/seeed/xiao_esp32s3/kws/kws.qmd
|
|
- href: contents/labs/seeed/xiao_esp32s3/motion_classification/motion_classification.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part X: Grove Vision Labs -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Grove Vision"
|
|
id: grove-vision
|
|
auto-collapse: true
|
|
contents:
|
|
- href: contents/labs/seeed/grove_vision_ai_v2/grove_vision_ai_v2.qmd
|
|
- href: contents/labs/seeed/grove_vision_ai_v2/setup_and_no_code_apps/setup_and_no_code_apps.qmd
|
|
- href: contents/labs/seeed/grove_vision_ai_v2/image_classification/image_classification.qmd
|
|
- href: contents/labs/seeed/grove_vision_ai_v2/object_detection/object_detection.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part XI: Raspberry Pi Labs -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Raspberry Pi"
|
|
id: raspberry-pi
|
|
auto-collapse: true
|
|
contents:
|
|
- href: contents/labs/raspi/raspi.qmd
|
|
- href: contents/labs/raspi/setup/setup.qmd
|
|
- href: contents/labs/raspi/image_classification/image_classification.qmd
|
|
- href: contents/labs/raspi/object_detection/object_detection.qmd
|
|
- href: contents/labs/raspi/llm/llm.qmd
|
|
- href: contents/labs/raspi/vlm/vlm.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: Mainmatter — Part XII: Shared Labs -->
|
|
# <!------------------------------------------------->
|
|
|
|
- section: "Shared"
|
|
id: shared-labs
|
|
auto-collapse: true
|
|
contents:
|
|
- href: contents/labs/shared/shared.qmd
|
|
- href: contents/labs/shared/kws_feature_eng/kws_feature_eng.qmd
|
|
- href: contents/labs/shared/dsp_spectral_features_block/dsp_spectral_features_block.qmd
|
|
|
|
- id: resources
|
|
title: "Resources"
|
|
style: "floating"
|
|
background: light
|
|
collapse-level: 1
|
|
contents:
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Backmatter -->
|
|
# <!------------------------------------------------->
|
|
|
|
- text: "---"
|
|
|
|
- section: "Resources"
|
|
id: resources
|
|
auto-collapse: true
|
|
contents:
|
|
- text: "PhD Survival Guide"
|
|
href: contents/backmatter/resources/phd_survival_guide.qmd
|
|
|
|
# <!------------------------------------------------->
|
|
# <!-- Division: ⚠️ References are commented out for now
|
|
# because they already show in the column margins -->
|
|
# <!------------------------------------------------->
|
|
#
|
|
# - section: "References"
|
|
# id: references
|
|
# collapsed: true
|
|
# contents:
|
|
# - text: "Complete Bibliography"
|
|
# href: contents/backmatter/references.qmd
|
|
|
|
repo-url: https://github.com/harvard-edge/cs249r_book
|
|
repo-branch: widget_quiz
|
|
repo-actions: [edit, issue, source]
|
|
|
|
page-footer:
|
|
left: |
|
|
© 2024 Harvard University. Licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC-BY-NC-SA 4.0</a>
|
|
center: |
|
|
Written, edited and curated by Prof. Vijay Janapa Reddi (Harvard University)
|
|
right:
|
|
- icon: github
|
|
href: https://github.com/harvard-edge/cs249r_book
|
|
aria-label: "View source on GitHub"
|
|
- icon: star
|
|
href: https://github.com/harvard-edge/cs249r_book
|
|
aria-label: "Star this repository"
|
|
background: light
|
|
border: 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
|
|
|
|
filters:
|
|
- ../config/lua/sidenote.lua # ⚠️ INFO: In HTML, this should not needed.
|
|
- ../config/lua/inject_parts.lua
|
|
- ../config/lua/inject_quizzes.lua
|
|
- pandoc-ext/diagram
|
|
- ../config/lua/inject_crossrefs.lua # ⚠️ WARNING: This must come before custom-numbered-blocks (relies on \ref{...})
|
|
- custom-numbered-blocks
|
|
- ../config/lua/margin-connections.lua # ⚠️ WARNING: This filter must come after custom-numbered-blocks
|
|
|
|
# Filter configurations and metadata
|
|
filter-metadata:
|
|
# Quiz configuration for inject_quizzes.lua filter
|
|
quiz-config:
|
|
file-pattern: "*_quizzes.json"
|
|
scan-directory: "contents/core"
|
|
auto-discover-pdf: false
|
|
|
|
# Cross-reference injection configuration for inject_crossrefs.lua filter
|
|
cross-references:
|
|
file: "data/cross_refs_final.json"
|
|
enabled: true
|
|
|
|
# Part summaries injection configuration for inject-parts.lua filter
|
|
part-summaries:
|
|
file: "part_summaries.yml"
|
|
enabled: true
|
|
|
|
diagram:
|
|
engine:
|
|
dot: true
|
|
mermaid: true
|
|
asymptote: false
|
|
tikz:
|
|
execpath: lualatex
|
|
output-format: svg
|
|
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}'
|
|
- '\usepgfplotslibrary{dateplot}'
|
|
- '\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}{34,125,189}'
|
|
- '\definecolor{VioletLine2}{RGB}{169,136,229}'
|
|
|
|
editor:
|
|
render-on-save: true
|
|
|
|
format:
|
|
html:
|
|
lightbox: true
|
|
mermaid:
|
|
theme: default
|
|
theme:
|
|
- default
|
|
- assets/styles/style.scss
|
|
|
|
code-block-bg: true
|
|
|
|
language:
|
|
title-block-author-single: "Author, Editor & Curator"
|
|
title-block-published: "Last Updated"
|
|
|
|
reference-location: margin
|
|
citation-location: margin
|
|
sidenote: true
|
|
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
|
|
toc: true
|
|
toc-depth: 4
|
|
toc-expand: true
|
|
toc-title: "On this page"
|
|
number-sections: false
|
|
number-depth: 3
|
|
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="/tools/scripts/ai_menu/dist/bundle.js" defer></script>
|
|
<script type="module" src="/tools/scripts/ai_menu/dist/sqlite3-opfs-async-proxy-B_ImRJXp.js"></script>
|
|
<script type="module" src="/tools/scripts/ai_menu/dist/sqlite3-worker1-bundler-friendly-CbDNa4by.js"></script>
|
|
<script type="module" src="/tools/scripts/ai_menu/dist/worker-voUF5YDa.js"></script>
|
|
<script src="/assets/scripts/sidebar-auto-collapse.js" defer></script>
|
|
|
|
|
|
|
|
citeproc: true
|
|
|
|
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: true
|
|
numbered: false
|
|
chapter-forward:
|
|
colors: ["FDF2F7", "ED3237"]
|
|
boxstyle: foldbox.simple
|
|
collapse: true
|
|
numbered: false
|
|
chapter-recall:
|
|
colors: ["FFF4E6", "E67E22"]
|
|
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 connections"
|
|
group: chapter-connection |