mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-07-21 00:23:30 -05:00
🎓 Deploy Instructors instructors-v0.1.1 - 3283c8aa20 3283c8aa20
This commit is contained in:
@@ -738,7 +738,7 @@ ul.task-list li input[type="checkbox"] {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/instructors/#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1739,7 +1739,9 @@ body.quarto-dark .j404-nav a:hover { color: #ff6b80 !important; }
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -769,7 +769,7 @@ window.Quarto = {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -2060,7 +2060,9 @@ window.Quarto = {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
+28
-26
@@ -769,7 +769,7 @@ window.Quarto = {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1073,113 +1073,113 @@ window.Quarto = {
|
||||
<td style="text-align: left;">1</td>
|
||||
<td style="text-align: left;">I</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/introduction/introduction.html">Introduction</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/01_tensor_ABOUT.html">Module 01: Tensor</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_00_introduction.html">Lab 00</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/01_tensor.html">Module 01: Tensor</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_00_introduction/">Lab 00</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">2</td>
|
||||
<td style="text-align: left;">I</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/ml_systems/ml_systems.html">ML Systems</a></td>
|
||||
<td style="text-align: left;">Module 01 (cont.)</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_01_ml_intro.html">Lab 01</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/">Lab 01</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">3</td>
|
||||
<td style="text-align: left;">I</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/ml_workflow/ml_workflow.html">ML Workflow</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/02_activations_ABOUT.html">Module 02: Activations</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_02_ml_systems.html">Lab 02</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/02_activations.html">Module 02: Activations</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_02_ml_systems/">Lab 02</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">4</td>
|
||||
<td style="text-align: left;">I</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/data_engineering/data_engineering.html">Data Engineering</a></td>
|
||||
<td style="text-align: left;">Module 02 (cont.)</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_03_ml_workflow.html">Lab 03</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_03_ml_workflow/">Lab 03</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">5</td>
|
||||
<td style="text-align: left;">II</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/nn_computation/nn_computation.html">Neural Computation</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/03_layers_ABOUT.html">Module 03: Layers</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_04_data_engr.html">Lab 04</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/03_layers.html">Module 03: Layers</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_04_data_engr/">Lab 04</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">6</td>
|
||||
<td style="text-align: left;">II</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/nn_architectures/nn_architectures.html">NN Architectures</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/04_losses_ABOUT.html">Module 04: Losses</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_05_nn_compute.html">Lab 05</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/04_losses.html">Module 04: Losses</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_05_nn_compute/">Lab 05</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">7</td>
|
||||
<td style="text-align: left;">II</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/frameworks/frameworks.html">ML Frameworks</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/05_dataloader_ABOUT.html">Module 05: DataLoader</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_06_nn_arch.html">Lab 06</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/05_dataloader.html">Module 05: DataLoader</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_06_nn_arch/">Lab 06</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">8</td>
|
||||
<td style="text-align: left;">II</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/training/training.html">Training</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/06_autograd_ABOUT.html">Module 06: Autograd</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_07_ml_frameworks.html">Lab 07</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/06_autograd.html">Module 06: Autograd</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_07_ml_frameworks/">Lab 07</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">9</td>
|
||||
<td style="text-align: left;">III</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/data_selection/data_selection.html">Data Selection</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/07_optimizers_ABOUT.html">Module 07: Optimizers</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_08_model_train.html">Lab 08</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/07_optimizers.html">Module 07: Optimizers</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_08_model_train/">Lab 08</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">10</td>
|
||||
<td style="text-align: left;">III</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/optimizations/model_compression.html">Model Compression</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/08_training_ABOUT.html">Module 08: Training</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_09_data_selection.html">Lab 09</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/08_training.html">Module 08: Training</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_09_data_selection/">Lab 09</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">11</td>
|
||||
<td style="text-align: left;">III</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/hw_acceleration/hw_acceleration.html">HW Acceleration</a></td>
|
||||
<td style="text-align: left;">Module 08 (cont.)</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_10_model_compress.html">Lab 10</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_10_model_compress/">Lab 10</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">12</td>
|
||||
<td style="text-align: left;">III</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/benchmarking/benchmarking.html">Benchmarking</a></td>
|
||||
<td style="text-align: left;"><em>Catch-up</em></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_11_hw_accel.html">Lab 11</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_11_hw_accel/">Lab 11</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">13</td>
|
||||
<td style="text-align: left;">IV</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/model_serving/model_serving.html">Model Serving</a></td>
|
||||
<td style="text-align: left;"><em>Capstone prep</em></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_12_perf_bench.html">Lab 12</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_12_perf_bench/">Lab 12</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">14</td>
|
||||
<td style="text-align: left;">IV</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/ml_ops/ml_ops.html">ML Operations</a></td>
|
||||
<td style="text-align: left;"><em>Capstone prep</em></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_13_model_serving.html">Lab 13</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_13_model_serving/">Lab 13</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;">15</td>
|
||||
<td style="text-align: left;">IV</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/responsible_engr/responsible_engr.html">Responsible Engr.</a></td>
|
||||
<td style="text-align: left;"><em>Capstone work</em></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_14_ml_ops.html">Lab 14</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_14_ml_ops/">Lab 14</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;">16</td>
|
||||
<td style="text-align: left;">IV</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/vol1/conclusion/conclusion.html">Conclusion</a></td>
|
||||
<td style="text-align: left;"><em>AI Olympics</em></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_15_responsible_engr.html">Lab 15</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_15_responsible_engr/">Lab 15</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -2033,7 +2033,9 @@ window.Quarto = {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -740,7 +740,7 @@ ul.task-list li input[type="checkbox"] {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1894,7 +1894,9 @@ ul.task-list li input[type="checkbox"] {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -739,7 +739,7 @@ ul.task-list li input[type="checkbox"] {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1678,7 +1678,9 @@ Please do. Post it in <a href="https://github.com/harvard-edge/cs249r_book/discu
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -769,7 +769,7 @@ window.Quarto = {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1109,11 +1109,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_00_introduction.html">Lab 00</a>: The Architect’s Portal (orientation)</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_00_introduction/">Lab 00</a>: The Architect’s Portal (orientation)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/01_tensor_ABOUT.html">TinyTorch Module 01: Tensor</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/01_tensor.html">TinyTorch Module 01: Tensor</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1152,11 +1152,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_01_ml_intro.html">Lab 01</a>: The Magnitude Gap</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_01_ml_intro/">Lab 01</a>: The Magnitude Gap</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/01_tensor_ABOUT.html">TinyTorch Module 01</a>: Tensor (continued)</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/01_tensor.html">TinyTorch Module 01</a>: Tensor (continued)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1182,11 +1182,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_02_ml_systems.html">Lab 02</a>: The Workflow Pipeline</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_02_ml_systems/">Lab 02</a>: The Workflow Pipeline</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/02_activations_ABOUT.html">TinyTorch Module 02: Activations</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/02_activations.html">TinyTorch Module 02: Activations</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1212,11 +1212,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_03_ml_workflow.html">Lab 03</a>: The Data Pipeline</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_03_ml_workflow/">Lab 03</a>: The Data Pipeline</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/02_activations_ABOUT.html">TinyTorch Module 02</a>: Activations (continued)</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/02_activations.html">TinyTorch Module 02</a>: Activations (continued)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1247,11 +1247,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_04_data_engr.html">Lab 04</a>: The Computation Graph</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_04_data_engr/">Lab 04</a>: The Computation Graph</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/03_layers_ABOUT.html">TinyTorch Module 03: Layers</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/03_layers.html">TinyTorch Module 03: Layers</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1277,11 +1277,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_05_nn_compute.html">Lab 05</a>: Architecture Tradeoffs</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_05_nn_compute/">Lab 05</a>: Architecture Tradeoffs</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/04_losses_ABOUT.html">TinyTorch Module 04: Losses</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/04_losses.html">TinyTorch Module 04: Losses</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1307,11 +1307,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_06_nn_arch.html">Lab 06</a>: The Dispatch Tax</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_06_nn_arch/">Lab 06</a>: The Dispatch Tax</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/05_dataloader_ABOUT.html">TinyTorch Module 05: DataLoader</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/05_dataloader.html">TinyTorch Module 05: DataLoader</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1350,11 +1350,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_07_ml_frameworks.html">Lab 07</a>: The Training Loop</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_07_ml_frameworks/">Lab 07</a>: The Training Loop</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/06_autograd_ABOUT.html">TinyTorch Module 06: Autograd</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/06_autograd.html">TinyTorch Module 06: Autograd</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1398,11 +1398,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_08_model_train.html">Lab 08</a>: Data Quality</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_08_model_train/">Lab 08</a>: Data Quality</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/07_optimizers_ABOUT.html">TinyTorch Module 07: Optimizers</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/07_optimizers.html">TinyTorch Module 07: Optimizers</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1428,11 +1428,11 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_09_data_selection.html">Lab 09</a>: The Data Selection Paradox</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_09_data_selection/">Lab 09</a>: The Data Selection Paradox</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/08_training_ABOUT.html">TinyTorch Module 08: Training</a></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/tinytorch/modules/08_training.html">TinyTorch Module 08: Training</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Due</strong></td>
|
||||
@@ -1471,7 +1471,7 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_10_model_compress.html">Lab 10</a>: The Compression Paradox</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_10_model_compress/">Lab 10</a>: The Compression Paradox</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
@@ -1501,7 +1501,7 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_11_hw_accel.html">Lab 11</a>: The Hardware Roofline</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_11_hw_accel/">Lab 11</a>: The Hardware Roofline</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
@@ -1536,7 +1536,7 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_12_perf_bench.html">Lab 12</a>: The Benchmarking Trap</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_12_perf_bench/">Lab 12</a>: The Benchmarking Trap</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
@@ -1566,7 +1566,7 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_13_model_serving.html">Lab 13</a>: The Tail Latency Trap</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_13_model_serving/">Lab 13</a>: The Tail Latency Trap</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
@@ -1596,7 +1596,7 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_14_ml_ops.html">Lab 14</a>: The Silent Degradation Problem</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_14_ml_ops/">Lab 14</a>: The Silent Degradation Problem</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Build</strong></td>
|
||||
@@ -1626,7 +1626,7 @@ window.Quarto = {
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td style="text-align: left;"><strong>Lab</strong></td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_15_responsible_engr.html">Lab 15</a>: No Free Fairness</td>
|
||||
<td style="text-align: left;"><a href="https://mlsysbook.ai/labs/vol1/lab_15_responsible_engr/">Lab 15</a>: No Free Fairness</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td style="text-align: left;"><strong>Capstone</strong></td>
|
||||
@@ -2353,7 +2353,9 @@ window.Quarto = {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -804,7 +804,7 @@ window.Quarto = {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1170,7 +1170,7 @@ window.Quarto = {
|
||||
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="bu">cd</span> cs249r_book/tinytorch</span></code></pre></div><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></div>
|
||||
<ul>
|
||||
<li>Students work in <code>src/</code> — one folder per module (e.g., <code>src/01_tensor/</code>)</li>
|
||||
<li>Each module has a companion <a href="https://mlsysbook.ai/tinytorch/modules/01_tensor_ABOUT.html">ABOUT page</a> with learning objectives, audio overview, and a Binder link for browser-based execution</li>
|
||||
<li>Each module has a companion <a href="https://mlsysbook.ai/tinytorch/modules/01_tensor.html">module page</a> with learning objectives, implementation guidance, and tests</li>
|
||||
<li>Auto-grading runs via <code>pytest</code> or <code>nbgrader</code></li>
|
||||
<li>See the <a href="https://mlsysbook.ai/tinytorch/">TinyTorch Instructor Guide</a> for nbgrader configuration</li>
|
||||
</ul>
|
||||
@@ -1184,7 +1184,7 @@ window.Quarto = {
|
||||
</div>
|
||||
</div>
|
||||
<div class="callout-body-container callout-body">
|
||||
<p>Each module is a Python file with scaffolded cells. Students implement core functions (<code>forward()</code>, <code>backward()</code>, etc.) while the test suite validates correctness. For example, in <a href="https://mlsysbook.ai/tinytorch/modules/06_autograd_ABOUT.html">Module 06: Autograd</a>, students build reverse-mode automatic differentiation from scratch — implementing the computation graph, topological sort, and gradient accumulation that powers every modern framework. Browse any module’s ABOUT page on the <a href="https://mlsysbook.ai/tinytorch/">TinyTorch site</a> to see the full structure.</p>
|
||||
<p>Each module is a Python file with scaffolded cells. Students implement core functions (<code>forward()</code>, <code>backward()</code>, etc.) while the test suite validates correctness. For example, in <a href="https://mlsysbook.ai/tinytorch/modules/06_autograd.html">Module 06: Autograd</a>, students build reverse-mode automatic differentiation from scratch — implementing the computation graph, topological sort, and gradient accumulation that powers every modern framework. Browse any module page on the <a href="https://mlsysbook.ai/tinytorch/">TinyTorch site</a> to see the full structure.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1266,8 +1266,8 @@ window.Quarto = {
|
||||
<p>Here is exactly what to assign on Day 1:</p>
|
||||
<ol type="1">
|
||||
<li><strong>Reading</strong>: <a href="https://mlsysbook.ai/vol1/introduction/introduction.html">Vol I, Introduction</a> (45 min)</li>
|
||||
<li><strong>Lab</strong>: <a href="https://mlsysbook.ai/labs/vol1/lab_00_introduction.html">Lab 00</a> — The Architect’s Portal (30 min)</li>
|
||||
<li><strong>TinyTorch</strong>: <a href="https://mlsysbook.ai/tinytorch/modules/01_tensor_ABOUT.html">Module 01: Tensor</a> — due end of Week 1 (4–6 hrs)</li>
|
||||
<li><strong>Lab</strong>: <a href="https://mlsysbook.ai/labs/vol1/lab_00_introduction/">Lab 00</a> — The Architect’s Portal (30 min)</li>
|
||||
<li><strong>TinyTorch</strong>: <a href="https://mlsysbook.ai/tinytorch/modules/01_tensor.html">Module 01: Tensor</a> — due end of Week 1 (4–6 hrs)</li>
|
||||
<li><strong>Prediction Lock</strong>: “A GPU is how many times faster than a CPU for a <span class="math inline">\(1024{\times}1024\)</span> matrix multiply?” (students commit a number before Lab 01)</li>
|
||||
</ol>
|
||||
<div class="callout callout-style-default callout-tip callout-titled">
|
||||
@@ -1869,7 +1869,9 @@ window.Quarto = {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
+27
-3
@@ -739,7 +739,7 @@ ul.task-list li input[type="checkbox"] {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1629,9 +1629,31 @@ ul.task-list li input[type="checkbox"] {
|
||||
<div class="col-6 col-md-3"><div class="p-3 border rounded h-100 ecosystem-link" data-site="kits"><h5 class="anchored"><a href="https://mlsysbook.ai/kits/">Hardware Kits</a></h5><p class="small text-muted mb-0">Hands-on embedded ML deployment on real devices.</p></div></div>
|
||||
<div class="col-6 col-md-3"><div class="p-3 border rounded h-100 ecosystem-link" data-site="instructors"><h5 class="anchored"><a href="https://mlsysbook.ai/instructors/">Instructor Hub</a></h5><p class="small text-muted mb-0">Course maps, syllabi, and adoption resources for teaching.</p></div></div>
|
||||
<div class="col-6 col-md-3"><div class="p-3 border rounded h-100 ecosystem-link" data-site="tinytorch"><h5 class="anchored"><a href="https://mlsysbook.ai/tinytorch/">TinyTorch</a></h5><p class="small text-muted mb-0">Build your own ML framework from scratch, module by module.</p></div></div>
|
||||
<div class="col-6 col-md-3"><div class="p-3 border rounded h-100 ecosystem-link" data-site="mlsysim"><h5 class="anchored"><a href="https://mlsysbook.ai/mlsysim/">MLSysIM</a></h5><p class="small text-muted mb-0">The physics engine behind every quantitative figure in the book.</p></div></div>
|
||||
<div class="col-6 col-md-3"><div class="p-3 border rounded h-100 ecosystem-link" data-site="mlsysim"><h5 class="anchored"><a href="https://mlsysbook.ai/mlsysim/">MLSys·im</a></h5><p class="small text-muted mb-0">The analytical modeling engine behind the book's quantitative figures.</p></div></div>
|
||||
</div>
|
||||
<style>
|
||||
#part-of-the-mlsysbook-ecosystem {
|
||||
max-width: 1080px;
|
||||
margin: 3rem auto 0;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
.ecosystem-grid {
|
||||
display: grid !important;
|
||||
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
||||
gap: 1rem !important;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
.ecosystem-grid > [class*="col-"] {
|
||||
width: auto !important;
|
||||
max-width: none !important;
|
||||
padding: 0 !important;
|
||||
flex: none !important;
|
||||
}
|
||||
.ecosystem-grid .ecosystem-link,
|
||||
.ecosystem-grid .ecosystem-current {
|
||||
display: block;
|
||||
height: 100%;
|
||||
}
|
||||
.ecosystem-grid .ecosystem-link h5 a { text-decoration: none; }
|
||||
.ecosystem-grid .ecosystem-link:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
|
||||
.ecosystem-grid .ecosystem-current { background: var(--bs-light, #f8f9fa); }
|
||||
@@ -2220,7 +2242,9 @@ ul.task-list li input[type="checkbox"] {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -769,7 +769,7 @@ window.Quarto = {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1776,7 +1776,9 @@ window.Quarto = {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"buildDate": "2026-06-22T19:09:16Z",
|
||||
"buildDate": "2026-07-15T09:14:08Z",
|
||||
"project": "instructors",
|
||||
"releaseHash": "2a20e6d17118f68e76c43ce544a2311e140fd9b6131e59ab28be006b9022bb4a",
|
||||
"releaseId": "0.1.0",
|
||||
"releaseHash": "4270d466cfa75168e3c3752a2ddc11fc12d8057878496975da9060c59dfe9c9d",
|
||||
"releaseId": "0.1.1",
|
||||
"schemaVersion": "1",
|
||||
"tier": "B"
|
||||
}
|
||||
|
||||
@@ -740,7 +740,7 @@ ul.task-list li input[type="checkbox"] {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -2211,7 +2211,9 @@ ul.task-list li input[type="checkbox"] {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
"href": "index.html#part-of-the-mlsysbook-ecosystem",
|
||||
"title": "The AI Engineering Blueprint",
|
||||
"section": "Part of the MLSysBook Ecosystem",
|
||||
"text": "Part of the MLSysBook Ecosystem\n\n TextbookComprehensive theory across the full ML systems stack.\n Lecture SlidesBeamer decks and teaching materials for every chapter.\n LabsInteractive Marimo notebooks that measure the book's claims.\n Hardware KitsHands-on embedded ML deployment on real devices.\n Instructor HubCourse maps, syllabi, and adoption resources for teaching.\n TinyTorchBuild your own ML framework from scratch, module by module.\n MLSysIMThe physics engine behind every quantitative figure in the book.",
|
||||
"text": "Part of the MLSysBook Ecosystem\n\n TextbookComprehensive theory across the full ML systems stack.\n Lecture SlidesBeamer decks and teaching materials for every chapter.\n LabsInteractive Marimo notebooks that measure the book's claims.\n Hardware KitsHands-on embedded ML deployment on real devices.\n Instructor HubCourse maps, syllabi, and adoption resources for teaching.\n TinyTorchBuild your own ML framework from scratch, module by module.\n MLSys·imThe analytical modeling engine behind the book's quantitative figures.",
|
||||
"crumbs": [
|
||||
"Subscribe",
|
||||
"Start Here",
|
||||
@@ -688,7 +688,7 @@
|
||||
"href": "getting-started.html#step-3-set-up-infrastructure",
|
||||
"title": "Getting Started",
|
||||
"section": "Step 3: Set Up Infrastructure",
|
||||
"text": "Step 3: Set Up Infrastructure\n\nTinyTorch (Required for Foundations)\ngit clone https://github.com/harvard-edge/cs249r_book.git\ncd cs249r_book/tinytorch\n\nStudents work in src/ — one folder per module (e.g., src/01_tensor/)\nEach module has a companion ABOUT page with learning objectives, audio overview, and a Binder link for browser-based execution\nAuto-grading runs via pytest or nbgrader\nSee the TinyTorch Instructor Guide for nbgrader configuration\n\n\n\n\n\n\n\nTipWhat Does a TinyTorch Module Look Like?\n\n\n\nEach module is a Python file with scaffolded cells. Students implement core functions (forward(), backward(), etc.) while the test suite validates correctness. For example, in Module 06: Autograd, students build reverse-mode automatic differentiation from scratch — implementing the computation graph, topological sort, and gradient accumulation that powers every modern framework. Browse any module’s ABOUT page on the TinyTorch site to see the full structure.\n\n\n\n\nInteractive Labs (Both Semesters)\npip install marimo mlsysim\nmarimo edit labs/vol1/lab_05_nn_compute.py\n\nLabs run in the browser — no GPU required\nThe mlsysim simulator provides hardware-accurate physics (models real hardware specs for H100, A100, Jetson, XIAO, and more)\nZero infrastructure beyond Python 3.10+\n\n\n\nHardware Kits (Optional)\n\nBudget: ~$50–100 per student station\nOrder 4+ weeks before semester start\nSee Hardware Kits site for bill of materials",
|
||||
"text": "Step 3: Set Up Infrastructure\n\nTinyTorch (Required for Foundations)\ngit clone https://github.com/harvard-edge/cs249r_book.git\ncd cs249r_book/tinytorch\n\nStudents work in src/ — one folder per module (e.g., src/01_tensor/)\nEach module has a companion module page with learning objectives, implementation guidance, and tests\nAuto-grading runs via pytest or nbgrader\nSee the TinyTorch Instructor Guide for nbgrader configuration\n\n\n\n\n\n\n\nTipWhat Does a TinyTorch Module Look Like?\n\n\n\nEach module is a Python file with scaffolded cells. Students implement core functions (forward(), backward(), etc.) while the test suite validates correctness. For example, in Module 06: Autograd, students build reverse-mode automatic differentiation from scratch — implementing the computation graph, topological sort, and gradient accumulation that powers every modern framework. Browse any module page on the TinyTorch site to see the full structure.\n\n\n\n\nInteractive Labs (Both Semesters)\npip install marimo mlsysim\nmarimo edit labs/vol1/lab_05_nn_compute.py\n\nLabs run in the browser — no GPU required\nThe mlsysim simulator provides hardware-accurate physics (models real hardware specs for H100, A100, Jetson, XIAO, and more)\nZero infrastructure beyond Python 3.10+\n\n\n\nHardware Kits (Optional)\n\nBudget: ~$50–100 per student station\nOrder 4+ weeks before semester start\nSee Hardware Kits site for bill of materials",
|
||||
"crumbs": [
|
||||
"Subscribe",
|
||||
"Start Here",
|
||||
|
||||
+11
-11
@@ -2,46 +2,46 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/scale-syllabus.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.764Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/index.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.764Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/foundations-syllabus.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.764Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/assessment.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.751Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.380Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/tinyml-syllabus.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.764Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.394Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/customization.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.763Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/faq.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.763Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/getting-started.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.764Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/course-map.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.763Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/pedagogy.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.764Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mlsysbook.ai/instructors/ta-guide.html</loc>
|
||||
<lastmod>2026-06-22T19:08:52.764Z</lastmod>
|
||||
<lastmod>2026-07-15T09:13:43.393Z</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
|
||||
@@ -769,7 +769,7 @@ window.Quarto = {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -1914,7 +1914,9 @@ window.Quarto = {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
@@ -740,7 +740,7 @@ ul.task-list li input[type="checkbox"] {
|
||||
</ul>
|
||||
<ul class="navbar-nav navbar-nav-scroll ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="./#subscribe"> <i class="bi bi-envelope" role="img">
|
||||
<a class="nav-link" href="https://mlsysbook.ai/newsletter/"> <i class="bi bi-envelope" role="img">
|
||||
</i>
|
||||
<span class="menu-text">Subscribe</span></a>
|
||||
</li>
|
||||
@@ -2165,7 +2165,9 @@ ul.task-list li input[type="checkbox"] {
|
||||
' · hash ' + shortHash;
|
||||
|
||||
pills.forEach(function (el) {
|
||||
var linkHref = el.getAttribute('data-link') || '#release';
|
||||
var rawLink = el.getAttribute('data-link') || '#release';
|
||||
// XSS hardening: allow only anchor, relative, or http(s) links; reject javascript:/data: URLs.
|
||||
var linkHref = /^(?:#|\/|\.{1,2}\/|https?:\/\/)/i.test(rawLink) ? rawLink : '#release';
|
||||
var a = document.createElement('a');
|
||||
a.href = linkHref;
|
||||
a.title = title;
|
||||
|
||||
Reference in New Issue
Block a user