You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove research-questions callouts, fix ml_ops cascade figure, standardize figure font
Builds on the PR #1957 merge (Zeljko's Vol1 layout), otherwise byte-for-byte his version:
- Remove the end-of-chapter research-questions callouts from all chapters.
- ml_ops correction-cascade figure: keep Zeljko's Model A-D chain TikZ drawing,
and rewrite the caption, alt-text, and lead-in to describe the chain (they
carried a stale 'timeline' description that no longer matched the figure),
plus an operations-impact line.
- Standardize the matplotlib figure font on a bundled TeX Gyre Heros (a free,
redistributable Helvetica-metric clone) registered at runtime in
book/tools/figures/style.py, so figures render with a real bold identically
on macOS, Linux, and CI instead of falling back to DejaVu Sans or an
unreachable macOS .ttc bold face.
Copy file name to clipboardExpand all lines: book/quarto/contents/vol1/hw_acceleration/hw_acceleration.qmd
-9Lines changed: 0 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -5928,14 +5928,5 @@ We have now optimized the full D·A·M stack: data selection minimized training
5928
5928
5929
5929
An accelerator is easy to mistake for a faster computer. It is better understood as a machine built to move less data per useful operation, because the cost it fights is fixed by physics; moving a byte takes far more time and energy than computing on it. Every technique in this chapter (tiling, kernel fusion, the memory hierarchy, the systolic array) exists to raise arithmetic intensity, the ratio of computation to data movement, and the roofline is the bookkeeping of that single fact. None of them repeals the cost; they only relocate the bottleneck between bandwidth and compute. This is the machine constraint made concrete: the accelerator cannot make a byte cheaper to move, only ensure that fewer bytes must move for each result worth keeping.
5930
5930
5931
-
::: {.callout-research-questions title="For further inquiry"}
5932
-
5933
-
* How should roofline analysis decide whether to optimize bandwidth, compute, or software overhead?
5934
-
* When does specialized hardware fail to outperform a general-purpose alternative?
5935
-
* How do tiling, dataflow, and fusion relocate memory-movement cost rather than eliminate it?
5936
-
* What evidence should guide accelerator selection across throughput, bandwidth, capacity, energy, cost, and portability?
@@ -512,11 +512,137 @@ The primary defense against boundary erosion is architectural: modularity and en
512
512
513
513
If boundary erosion describes *how* ML systems lose their structural integrity, correction cascades describe *what* happens when teams attempt repairs. A correction cascade\index{Correction Cascade!sequential dependencies} occurs when fixing one component introduces problems elsewhere, requiring additional fixes that themselves cause further problems. In ML systems, these cascades are particularly severe because changes propagate through statistical dependencies rather than explicit code paths. Retraining a model to fix one failure mode may degrade performance on previously working cases. Adjusting thresholds to reduce false positives may increase false negatives. Adding features to address edge cases may introduce correlations that destabilize the entire system. Each correction triggers the need for more corrections, creating a cascade that can consume engineering resources far exceeding the original fix.
514
514
515
-
@Fig-correction-cascades-flowchart makes the cascade structure visible as a chain of dependent models. Each model is trained to correct the errors of the one before it: model B compensates for model A's residual mistakes, model C compensates for model B's, and so on down the chain. The arrangement holds until an upstream model changes. When model A is retrained to fix one failure mode, every downstream model that was tuned to its previous behavior is invalidated at once, and each must be re-corrected. The red arcs trace this propagation, showing how a repair that looked local reaches across the entire chain.
515
+
@Fig-correction-cascades-flowchart makes the cascade structure visible as a chain of dependent models. Each model is trained to correct the errors of the one before it: model B compensates for model A's residual mistakes, model C compensates for model B's, and so on down the chain. The arrangement holds until an upstream model changes. When model A is retrained to fix one failure mode, every downstream model that was tuned to its previous behavior is invalidated at once, and each must be re-corrected. The red arcs trace this propagation, showing how a repair that looked local reaches across the entire chain. A change near the top forces the most rework, while one near the bottom is nearly free. For an operations team, one change request can trigger a coordinated retraining of the chain.
516
516
517
-
::: {#fig-correction-cascades-flowchart fig-env="figure" fig-pos="htb" fig-cap="**Correction Cascades**: Each model is trained to correct the errors of the model before it, forming a chain of dependencies. Changing an upstream model invalidates every downstream correction at once, turning one local fix into cascading rework across the chain." fig-alt="Four model boxes in a left-to-right chain labeled Model A through Model D, each trained to correct the previous one. A red change badge on Model A and red dashed arcs reaching Model B, C, and D show an upstream change propagating downstream, with must re-correct labels beneath the downstream models."}
517
+
::: {#fig-correction-cascades-flowchart fig-env="figure" fig-pos="htb" fig-cap="**Correction Cascades**: Each model is trained to correct the errors of the model before it, forming a chain of dependencies. Changing an upstream model invalidates every downstream correction at once, turning one local fix into cascading rework across the chain, with each downstream fix demanding its own retraining cycle." fig-alt="Four model boxes in a left-to-right chain labeled Model A through Model D, each trained to correct the previous one. A red change badge on Model A and red dashed arcs reaching Model B, C, and D show an upstream change propagating downstream, with must re-correct labels beneath the downstream models."}
Copy file name to clipboardExpand all lines: book/quarto/contents/vol1/ml_workflow/ml_workflow.qmd
-9Lines changed: 0 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -2258,14 +2258,5 @@ The workflow framework established here provides the organizing structure for ev
2258
2258
2259
2259
Seen as a checklist, the lifecycle is a sequence of stages to clear in order. Seen correctly, it is a loop. A constraint discovered at deployment does not stay there; it propagates backward into model selection and forward into data collection, its cost compounding at every stage it survived undetected. A workflow is therefore a coupled system rather than a pipeline, the same coupling the D·A·M taxonomy describes in *space*, now unfolding in *time*. Optimizing one stage in isolation moves the failure instead of removing it, which is why the discipline is to see the whole map before touching any single part of it.
2260
2260
2261
-
::: {.callout-research-questions title="For further inquiry"}
2262
-
2263
-
* How should problem definition force deployment constraints backward into data, model, and validation decisions?
2264
-
* Which stage interface contracts most reduce late rework in a specific ML application?
2265
-
* When can faster iteration with a smaller model outperform slower iteration with a larger model?
2266
-
* How should validation progress from offline tests to shadow mode, canary rollout, and A/B testing as deployment risk grows?
0 commit comments