fix(epub): configure footnotes to display at document bottom

- Set footnotes-hover to false to disable click-to-reveal behavior
- Set reference-location to document to show footnotes at bottom of sections
- Disable link-external-newwindow for better EPUB compatibility
- Ensures footnotes are visible by default rather than hidden behind clicks
This commit is contained in:
Vijay Janapa Reddi
2025-08-16 16:03:29 -04:00
parent 735f0a6a5f
commit d745765da7

View File

@@ -33,32 +33,46 @@ book:
date-format: long
author:
name: "Prof. Vijay Janapa Reddi (Harvard University)"
name: "Prof. Vijay Janapa Reddi"
email: vj@eecs.harvard.edu
url: https://www.google.com/search?q=Vijay+Janapa+Reddi
affiliations: Harvard University
affiliations:
- name: "Harvard University"
department: "School of Engineering and Applied Sciences"
city: "Cambridge"
state: "MA"
country: "USA"
corresponding: true
roles: "Author, editor and curator."
orcid: "0000-0002-5259-7721"
# Additional publication metadata (when available)
# publisher: "Harvard University"
# publisher-place: "Cambridge, MA"
# isbn: "978-0-XXX-XXXXX-X"
# doi: "10.XXXX/mlsysbook"
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.
----
:::: {.content-visible when-format="html"}
🎙 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.
 
<audio controls>
<source src="assets/media/notebooklm_podcast_mlsysbookai.mp3" type="audio/mpeg">
<audio controls="controls">
<source src="assets/media/notebooklm_podcast_mlsysbookai.mp3" type="audio/mpeg" />
Your reader does not support audio.
</audio>
::::
----
repo-url: https://github.com/harvard-edge/cs249r_book
repo-branch: widget_quiz
page-footer:
left: |
@@ -68,130 +82,111 @@ book:
chapters:
- index.qmd
# ==================================================
# Frontmatter
# ==================================================
# Frontmatter
- contents/frontmatter/foreword.qmd
- contents/frontmatter/about/about.qmd
- contents/frontmatter/changelog/changelog.qmd
- contents/frontmatter/acknowledgements/acknowledgements.qmd
- contents/frontmatter/socratiq/socratiq.qmd
# ==================================================
# Division: Mainmatter — Part I: Systems Foundations
# ==================================================
- 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
# ==================================================
# Division: Mainmatter — Part II: Design Principles
# ==================================================
# Part I: Foundations
- part: contents/parts/foundations.qmd
chapters:
- 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
- contents/core/workflow/workflow.qmd
- contents/core/data_engineering/data_engineering.qmd
- contents/core/frameworks/frameworks.qmd
- contents/core/training/training.qmd
# ==================================================
# Division: Mainmatter — Part III: Performance Engineering
# ==================================================
# # Part II: Design Principles
# - part: contents/parts/design_principles.qmd
# chapters:
# - 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
# ==================================================
# Division: Mainmatter — Part IV: Robust Deployment
# ==================================================
# # Part III: Performance Engineering
# - part: "Performance Engineering"
# chapters:
# - contents/core/efficient_ai/efficient_ai.qmd
# - contents/core/optimizations/optimizations.qmd
# - contents/core/hw_acceleration/hw_acceleration.qmd
# - contents/core/benchmarking/benchmarking.qmd
- contents/core/ops/ops.qmd
- contents/core/ondevice_learning/ondevice_learning.qmd
- contents/core/robust_ai/robust_ai.qmd
- contents/core/privacy_security/privacy_security.qmd
# ==================================================
# Division: Mainmatter — Part V: Trustworthy Systems
# ==================================================
# # Part IV: Robust Deployment
# - part: "Robust Deployment"
# chapters:
# - contents/core/ops/ops.qmd
# - contents/core/ondevice_learning/ondevice_learning.qmd
# - contents/core/robust_ai/robust_ai.qmd
# - contents/core/privacy_security/privacy_security.qmd
- contents/core/responsible_ai/responsible_ai.qmd
- contents/core/sustainable_ai/sustainable_ai.qmd
- contents/core/ai_for_good/ai_for_good.qmd
# ==================================================
# Division: Mainmatter — Part VI: Frontiers
# ==================================================
#- contents/core/frontiers/frontiers.qmd
- contents/core/conclusion/conclusion.qmd
# ==================================================
# Division: Mainmatter — Part VII: Laboratory Exercises
# ==================================================
# # Part V: Trustworthy Systems
# - part: contents/parts/best_practices.qmd
# chapters:
# - contents/core/responsible_ai/responsible_ai.qmd
# - contents/core/sustainable_ai/sustainable_ai.qmd
# - contents/core/ai_for_good/ai_for_good.qmd
- contents/labs/labs.qmd
- contents/labs/kits.qmd
- contents/labs/ide_setup.qmd
# ==================================================
# Division: Mainmatter — Part VIII: Arduino Labs
# ==================================================
# # Part VI: Frontiers
# - part: "Frontiers"
# chapters:
# - contents/core/conclusion/conclusion.qmd
- contents/labs/arduino/nicla_vision/nicla_vision.qmd
- 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
# ==================================================
# Division: Mainmatter — Part IX: Seeed XIAO ESP32S3 Labs
# ==================================================
# # Part VII: Laboratory Exercises
# - part: "Hands-on Labs"
# chapters:
# - contents/labs/labs.qmd
# - contents/labs/kits.qmd
# - contents/labs/ide_setup.qmd
- contents/labs/seeed/xiao_esp32s3/xiao_esp32s3.qmd
- 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
# ==================================================
# Division: Mainmatter — Part X: Grove Vision Labs
# ==================================================
# # Part VIII: Arduino Labs
# - part: "Arduino Labs"
# chapters:
# - contents/labs/arduino/nicla_vision/nicla_vision.qmd
# - 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
- contents/labs/seeed/grove_vision_ai_v2/grove_vision_ai_v2.qmd
- 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
# ==================================================
# Division: Mainmatter — Part XI: Raspberry Pi Labs
# ==================================================
# # Part IX: Seeed XIAO ESP32S3 Labs
# - part: "Seeed XIAO ESP32S3 Labs"
# chapters:
# - contents/labs/seeed/xiao_esp32s3/xiao_esp32s3.qmd
# - 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
- contents/labs/raspi/raspi.qmd
- 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
# ==================================================
# Division: Mainmatter — Part XII: Shared Labs
# ==================================================
# # Part X: Grove Vision Labs
# - part: "Grove Vision AI V2 Labs"
# chapters:
# - contents/labs/seeed/grove_vision_ai_v2/grove_vision_ai_v2.qmd
# - 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 XI: Raspberry Pi Labs
# - part: "Raspberry Pi Labs"
# chapters:
# - contents/labs/raspi/raspi.qmd
# - 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 XII: Shared Labs
# - part: "Shared Labs"
# chapters:
# - contents/labs/shared/shared.qmd
# - contents/labs/shared/kws_feature_eng/kws_feature_eng.qmd
# - contents/labs/shared/dsp_spectral_features_block/dsp_spectral_features_block.qmd
- contents/labs/shared/shared.qmd
- contents/labs/shared/kws_feature_eng/kws_feature_eng.qmd
- contents/labs/shared/dsp_spectral_features_block/dsp_spectral_features_block.qmd
# ==================================================
# Backmatter
# ==================================================
- contents/backmatter/references.qmd
bibliography:
@@ -218,7 +213,7 @@ bibliography:
filters:
#- filters/sidenote.lua
- filters/inject_parts.lua
#- filters/inject_parts.lua
#- filters/inject_quizzes.lua
- pandoc-ext/diagram
#- filters/inject_crossrefs.lua # This must come before custom-numbered-blocks (relies on \ref{...})
@@ -314,16 +309,21 @@ editor:
format:
epub:
# --- ePub Metadata (Dublin Core) ---
title: "Machine Learning Systems"
subtitle: "Principles and Practices of Engineering Artificially Intelligent Systems"
# --- EPUB-Specific Settings ---
language: "en-US"
date: today
# --- Dublin Core Metadata ---
# --- Dublin Core Metadata (EPUB-specific) ---
identifier: "https://mlsysbook.ai/epub"
creator: "Prof. Vijay Janapa Reddi (Harvard University)"
subject: "Machine Learning, Computer Science, Engineering"
contributor: "Harvard University, School of Engineering and Applied Sciences"
subject: "Machine Learning, Computer Science, Engineering, Artificial Intelligence, Systems Design"
description: "A textbook on machine learning systems engineering, covering principles and practices for building AI solutions in real-world environments."
# --- Additional EPUB Metadata ---
type: "Text"
format: "application/epub+zip"
source: "https://mlsysbook.ai"
relation: "https://mlsysbook.ai"
coverage: "Global"
# --- Table of Contents & Navigation ---
toc: true
@@ -332,7 +332,7 @@ format:
# --- Content Structure & Layout ---
epub-chapter-level: 1
epub-cover-image: "assets/images/covers/cover-image-transparent.png"
epub-cover-image: "assets/images/covers/cover_image_title.png"
epub-title-page: true
# --- Styling and Formatting ---
@@ -342,12 +342,17 @@ format:
code-line-numbers: true
# --- Section Numbering ---
number-sections: true
number-sections: false
number-depth: 3
# --- Figures & Tables ---
fig-align: center
fig-caption: true
# --- Footnotes ---
footnotes-hover: false
link-external-newwindow: false
reference-location: document
resources:
- CNAME