Files
cs249r_book/landing/index.html
Vijay Janapa Reddi 09602445de chore: update book content, config, appendices, and tooling
- Vol1: chapter updates across backmatter, benchmarking, data, frameworks, etc.
- Vol2: content updates, new appendices (assumptions, communication, fleet, reliability)
- Quarto: config, styles, formulas, constants
- Add SEMINAL_PAPERS_V2.md, learning_objectives_bolding_parallel.sh
- VSCode extension: package.json, chapterNavigatorProvider
- Landing page and docs updates
2026-02-20 18:55:24 -05:00

723 lines
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI Engineering | Machine Learning Systems</title>
<meta name="description" content="AI Engineering: The discipline of building, optimizing, and deploying intelligent systems. Open educational resources from Harvard University.">
<!-- Open Graph -->
<meta property="og:title" content="AI Engineering | Machine Learning Systems">
<meta property="og:description" content="The discipline of building, optimizing, and deploying intelligent systems.">
<meta property="og:image" content="https://mlsysbook.ai/book/assets/images/covers/cover-hardcover-book.png">
<meta property="og:url" content="https://mlsysbook.ai">
<meta property="og:type" content="website">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="AI Engineering | Machine Learning Systems">
<meta name="twitter:description" content="The discipline of building, optimizing, and deploying intelligent systems.">
<meta name="twitter:image" content="https://mlsysbook.ai/book/assets/images/covers/cover-hardcover-book.png">
<!-- Favicon -->
<link rel="icon" type="image/png" href="logo.png">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500&family=Outfit:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
:root {
--color-bg: #0a0a0f;
--color-bg-elevated: #12121a;
--color-bg-card: #1a1a24;
--color-border: #2a2a3a;
--color-text: #e8e8f0;
--color-text-muted: #9090a0;
--color-accent: #6366f1;
--color-accent-bright: #818cf8;
--color-accent-glow: rgba(99, 102, 241, 0.15);
--color-harvard: #a51c30;
--font-display: 'Instrument Serif', Georgia, serif;
--font-body: 'Outfit', system-ui, sans-serif;
--font-mono: 'JetBrains Mono', monospace;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: var(--font-body);
background: var(--color-bg);
color: var(--color-text);
line-height: 1.6;
min-height: 100vh;
}
/* Background Pattern */
.bg-pattern {
position: fixed;
inset: 0;
background-image:
radial-gradient(ellipse 80% 50% at 50% -20%, var(--color-accent-glow), transparent),
radial-gradient(circle at 20% 80%, rgba(99, 102, 241, 0.08), transparent 40%),
radial-gradient(circle at 80% 20%, rgba(139, 92, 246, 0.06), transparent 40%);
pointer-events: none;
z-index: -1;
}
.grid-overlay {
position: fixed;
inset: 0;
background-image:
linear-gradient(var(--color-border) 1px, transparent 1px),
linear-gradient(90deg, var(--color-border) 1px, transparent 1px);
background-size: 60px 60px;
opacity: 0.03;
pointer-events: none;
z-index: -1;
}
/* Header */
header {
position: fixed;
top: 0;
left: 0;
right: 0;
padding: 1rem 2rem;
display: flex;
justify-content: space-between;
align-items: center;
background: rgba(10, 10, 15, 0.8);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--color-border);
z-index: 100;
}
.logo {
display: flex;
align-items: center;
gap: 0.75rem;
text-decoration: none;
color: var(--color-text);
}
.logo img {
width: 32px;
height: 32px;
}
.logo-text {
font-family: var(--font-mono);
font-size: 0.875rem;
font-weight: 500;
letter-spacing: -0.02em;
}
.header-links {
display: flex;
gap: 1.5rem;
align-items: center;
}
.header-links a {
color: var(--color-text-muted);
text-decoration: none;
font-size: 0.875rem;
font-weight: 400;
transition: color 0.2s;
}
.header-links a:hover {
color: var(--color-text);
}
.header-links .btn-github {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
background: var(--color-bg-card);
border: 1px solid var(--color-border);
border-radius: 6px;
color: var(--color-text);
transition: all 0.2s;
}
.header-links .btn-github:hover {
background: var(--color-bg-elevated);
border-color: var(--color-accent);
}
/* Hero */
.hero {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 8rem 2rem 4rem;
max-width: 900px;
margin: 0 auto;
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
background: var(--color-bg-card);
border: 1px solid var(--color-border);
border-radius: 100px;
font-size: 0.8rem;
color: var(--color-text-muted);
margin-bottom: 2rem;
animation: fade-in 0.6s ease-out;
}
.hero-badge .dot {
width: 6px;
height: 6px;
background: var(--color-accent);
border-radius: 50%;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.hero h1 {
font-family: var(--font-display);
font-size: clamp(3rem, 8vw, 5.5rem);
font-weight: 400;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 1.5rem;
animation: fade-in 0.6s ease-out 0.1s backwards;
}
.hero h1 em {
font-style: italic;
color: var(--color-accent-bright);
}
.hero-subtitle {
font-size: 1.25rem;
color: var(--color-text-muted);
max-width: 600px;
margin-bottom: 3rem;
animation: fade-in 0.6s ease-out 0.2s backwards;
}
.hero-cta {
display: flex;
gap: 1rem;
flex-wrap: wrap;
justify-content: center;
animation: fade-in 0.6s ease-out 0.3s backwards;
}
.btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.875rem 1.5rem;
border-radius: 8px;
font-size: 0.95rem;
font-weight: 500;
text-decoration: none;
transition: all 0.2s;
}
.btn-primary {
background: var(--color-accent);
color: white;
}
.btn-primary:hover {
background: var(--color-accent-bright);
transform: translateY(-2px);
box-shadow: 0 8px 30px var(--color-accent-glow);
}
.btn-secondary {
background: var(--color-bg-card);
border: 1px solid var(--color-border);
color: var(--color-text);
}
.btn-secondary:hover {
background: var(--color-bg-elevated);
border-color: var(--color-text-muted);
}
@keyframes fade-in {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Section Styles */
section {
padding: 6rem 2rem;
max-width: 1200px;
margin: 0 auto;
}
.section-header {
text-align: center;
margin-bottom: 4rem;
}
.section-header h2 {
font-family: var(--font-display);
font-size: 2.5rem;
font-weight: 400;
margin-bottom: 1rem;
}
.section-header p {
color: var(--color-text-muted);
font-size: 1.1rem;
max-width: 600px;
margin: 0 auto;
}
/* What is AI Engineering */
.manifesto {
background: var(--color-bg-elevated);
border: 1px solid var(--color-border);
border-radius: 16px;
padding: 3rem;
margin-bottom: 4rem;
}
.manifesto-content {
display: grid;
gap: 2rem;
}
.manifesto-content p {
font-size: 1.15rem;
line-height: 1.8;
color: var(--color-text-muted);
}
.manifesto-content p:first-child {
font-size: 1.35rem;
color: var(--color-text);
}
.manifesto-content strong {
color: var(--color-text);
font-weight: 500;
}
/* Resources Grid */
.resources-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
.resource-card {
background: var(--color-bg-card);
border: 1px solid var(--color-border);
border-radius: 12px;
padding: 2rem;
text-decoration: none;
color: var(--color-text);
transition: all 0.3s;
position: relative;
overflow: hidden;
}
.resource-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: var(--card-accent, var(--color-accent));
opacity: 0;
transition: opacity 0.3s;
}
.resource-card:hover {
border-color: var(--card-accent, var(--color-accent));
transform: translateY(-4px);
box-shadow: 0 12px 40px rgba(0,0,0,0.3);
}
.resource-card:hover::before {
opacity: 1;
}
.resource-card.primary {
grid-column: span 2;
background: linear-gradient(135deg, var(--color-bg-card), var(--color-bg-elevated));
}
@media (max-width: 640px) {
.resource-card.primary {
grid-column: span 1;
}
}
.resource-icon {
font-size: 2.5rem;
margin-bottom: 1rem;
}
.resource-card h3 {
font-size: 1.25rem;
font-weight: 600;
margin-bottom: 0.5rem;
}
.resource-card .subtitle {
font-size: 0.875rem;
color: var(--color-accent-bright);
margin-bottom: 0.75rem;
}
.resource-card p {
color: var(--color-text-muted);
font-size: 0.95rem;
line-height: 1.6;
}
.resource-card .arrow {
position: absolute;
bottom: 1.5rem;
right: 1.5rem;
opacity: 0;
transform: translateX(-10px);
transition: all 0.3s;
color: var(--card-accent, var(--color-accent));
}
.resource-card:hover .arrow {
opacity: 1;
transform: translateX(0);
}
/* Volume Cards */
.volume-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
margin-top: 2rem;
}
.volume-card {
--card-accent: #22c55e;
}
.volume-card.vol2 {
--card-accent: #f59e0b;
}
.volume-card.full {
--card-accent: var(--color-accent);
}
/* Audience Section */
.audience-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2rem;
}
@media (max-width: 768px) {
.audience-grid {
grid-template-columns: 1fr;
}
}
.audience-card {
text-align: center;
padding: 2rem;
}
.audience-icon {
font-size: 3rem;
margin-bottom: 1rem;
}
.audience-card h3 {
font-size: 1.25rem;
margin-bottom: 0.75rem;
}
.audience-card p {
color: var(--color-text-muted);
font-size: 0.95rem;
}
/* Footer */
footer {
border-top: 1px solid var(--color-border);
padding: 3rem 2rem;
text-align: center;
}
.footer-content {
max-width: 800px;
margin: 0 auto;
}
.footer-logo {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
margin-bottom: 1.5rem;
}
.footer-logo img {
height: 40px;
}
.footer-links {
display: flex;
justify-content: center;
gap: 2rem;
margin-bottom: 1.5rem;
flex-wrap: wrap;
}
.footer-links a {
color: var(--color-text-muted);
text-decoration: none;
font-size: 0.875rem;
transition: color 0.2s;
}
.footer-links a:hover {
color: var(--color-text);
}
.footer-legal {
color: var(--color-text-muted);
font-size: 0.8rem;
}
.footer-legal a {
color: var(--color-text-muted);
text-decoration: underline;
}
/* Mobile */
@media (max-width: 640px) {
header {
padding: 1rem;
}
.header-links {
display: none;
}
.hero {
padding: 6rem 1.5rem 3rem;
}
section {
padding: 4rem 1.5rem;
}
.manifesto {
padding: 2rem 1.5rem;
}
}
</style>
</head>
<body>
<div class="bg-pattern"></div>
<div class="grid-overlay"></div>
<header>
<a href="/" class="logo">
<img src="logo.png" alt="MLSysBook">
<span class="logo-text">mlsysbook.ai</span>
</a>
<nav class="header-links">
<a href="/book/">Textbook</a>
<a href="/tinytorch/">TinyTorch</a>
<a href="/kits/">Hardware Kits</a>
<a href="https://github.com/harvard-edge/cs249r_book" class="btn-github" target="_blank">
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
Star
</a>
</nav>
</header>
<main>
<section class="hero">
<div class="hero-badge">
<span class="dot"></span>
Open Educational Resource
</div>
<h1><em>AI Engineering</em></h1>
<p class="hero-subtitle">
The discipline of building, optimizing, and deploying intelligent systems.
From silicon to software, from training to production.
</p>
<div class="hero-cta">
<a href="/book/" class="btn btn-primary">
Start Learning
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
<a href="https://github.com/harvard-edge/cs249r_book" class="btn btn-secondary" target="_blank">
View on GitHub
</a>
</div>
</section>
<section id="about">
<div class="manifesto">
<div class="manifesto-content">
<p>
AI is no longer just a research field. It's becoming infrastructure.
</p>
<p>
<strong>AI Engineering</strong> is the emerging discipline that bridges the gap between
machine learning research and deployed systems. It encompasses the entire lifecycle:
understanding hardware constraints, optimizing models for efficiency, building robust
training pipelines, deploying to edge devices, and maintaining systems in production.
</p>
<p>
This isn't about knowing the latest model architecture. It's about understanding
<strong>why</strong> certain architectures work on certain hardware, <strong>how</strong>
to make tradeoffs between accuracy and latency, and <strong>when</strong> to choose
different deployment strategies.
</p>
</div>
</div>
</section>
<section id="resources">
<div class="section-header">
<h2>Resources</h2>
<p>A comprehensive ecosystem for learning AI Engineering</p>
</div>
<div class="volume-cards">
<a href="/vol1/" class="resource-card volume-card">
<div class="resource-icon">📘</div>
<h3>Volume I: Foundations</h3>
<p class="subtitle">Introduction to Machine Learning Systems</p>
<p>Hardware fundamentals, ML basics, training pipelines, and optimization techniques. Start here.</p>
<span class="arrow"></span>
</a>
<a href="/vol2/" class="resource-card volume-card vol2">
<div class="resource-icon">📙</div>
<h3>Volume II: At Scale</h3>
<p class="subtitle">Machine Learning Systems at Scale</p>
<p>Distributed training, production deployment, security, responsible AI, and emerging architectures.</p>
<span class="arrow"></span>
</a>
<a href="/book/" class="resource-card volume-card full">
<div class="resource-icon">📚</div>
<h3>Full Textbook</h3>
<p class="subtitle">Both Volumes Combined</p>
<p>The complete Machine Learning Systems textbook with all chapters, references, and supplementary material.</p>
<span class="arrow"></span>
</a>
</div>
<div class="resources-grid" style="margin-top: 1.5rem;">
<a href="/tinytorch/" class="resource-card" style="--card-accent: #ef4444;">
<div class="resource-icon">🔥</div>
<h3>TinyTorch</h3>
<p class="subtitle">Learn by Building</p>
<p>Build a deep learning framework from scratch. Understand every layer, from tensors to transformers.</p>
<span class="arrow"></span>
</a>
<a href="/kits/" class="resource-card" style="--card-accent: #06b6d4;">
<div class="resource-icon">🛠️</div>
<h3>Hardware Kits</h3>
<p class="subtitle">Edge Deployment</p>
<p>Hands-on guides for Arduino, Raspberry Pi, and Seeed devices. Deploy ML to real hardware.</p>
<span class="arrow"></span>
</a>
<a href="/labs/" class="resource-card" style="--card-accent: #a855f7;">
<div class="resource-icon">🧪</div>
<h3>Labs</h3>
<p class="subtitle">Coming 2026</p>
<p>Structured exercises and assignments for classroom use. Perfect for courses and self-study.</p>
<span class="arrow"></span>
</a>
</div>
</section>
<section id="audience">
<div class="section-header">
<h2>Who is this for?</h2>
<p>Whether you're starting out or scaling up</p>
</div>
<div class="audience-grid">
<div class="audience-card">
<div class="audience-icon">🎓</div>
<h3>Students</h3>
<p>Build a solid foundation in ML systems. Understand not just how models work, but how to deploy them efficiently.</p>
</div>
<div class="audience-card">
<div class="audience-icon">💼</div>
<h3>Practitioners</h3>
<p>Level up from model training to production systems. Learn optimization, deployment, and operational best practices.</p>
</div>
<div class="audience-card">
<div class="audience-icon">🔬</div>
<h3>Researchers</h3>
<p>Ground your research in systems reality. Understand the constraints and opportunities of real hardware.</p>
</div>
</div>
</section>
</main>
<footer>
<div class="footer-content">
<div class="footer-logo">
<img src="logo.png" alt="MLSysBook">
</div>
<div class="footer-links">
<a href="/book/">Textbook</a>
<a href="/tinytorch/">TinyTorch</a>
<a href="/kits/">Hardware Kits</a>
<a href="https://github.com/harvard-edge/cs249r_book" target="_blank">GitHub</a>
<a href="https://opencollective.com/mlsysbook" target="_blank">Support</a>
</div>
<p class="footer-legal">
© 20242026 Harvard University. Licensed under
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a>.
</p>
</div>
</footer>
</body>
</html>