version: 2
article_bundle: content/curriculum/003-checkpoint-resume-equivalence
article: index.md
visuals:
- path: cover.svg
  type: cover_svg
  asset_type: cover_svg
  purpose: Establish the recurring split-timeline object and show that a successful
    load can still branch on the next update.
  alt_text: Two training timelines coincide only when the checkpoint carries every
    input needed by the next transition.
  caption: A checkpoint is tested by the future transition it reproduces, not by whether
    deserialization succeeds.
  provenance_or_license: Original local SVG generated for this article; no third-party
    visual content; copyright Anshuman Sahoo.
  generation_method: Generated by code/generate_visuals.py from the experiment schema
    and editorial contract.
  source_data_path: data/checkpoint-schema.json
  article_section: Opening
  units: optimizer-step position and qualitative branch path
  assumptions:
  - The uninterrupted path is the reference computation.
  - Branch distance is illustrative and does not encode loss or parameter-error magnitude.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
- path: figures/terminal-01-fixture.svg
  type: terminal_transcript_svg
  asset_type: runtime_and_model_terminal_snapshot
  purpose: Show the actual model, parameter shapes, runtime, deterministic settings,
    training configuration, and checkpoint payload keys before interpretation begins.
  alt_text: Actual terminal transcript showing Python and PyTorch versions, the TinyDropoutClassifier
    architecture, parameter shapes and counts, optimizer and scheduler settings, and
    boundary versus mid-accumulation checkpoint keys.
  caption: The inspect command exposes the exact fixture used by every intervention
    rather than asking the reader to infer it from prose.
  provenance_or_license: Original local SVG rendered from an actual retained command
    transcript generated in the packaged environment; no third-party visual content;
    copyright Anshuman Sahoo.
  generation_method: Command output captured in data/terminal-01-fixture.txt and rendered
    without content changes by code/generate_terminal_snapshots.py.
  source_data_path: data/terminal-01-fixture.txt
  article_section: Build the fixture before naming the state
  units: runtime versions, tensor shapes, parameter counts, configuration values,
    checkpoint key names
  assumptions:
  - The transcript reflects the packaged CPU environment at revision time.
  - SVG styling changes presentation only; transcript text is retained verbatim.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
- path: figures/terminal-02-seed-11-matrix.svg
  type: terminal_transcript_svg
  asset_type: single_seed_intervention_terminal_snapshot
  purpose: Walk through all seven interventions on one representative seed before
    presenting aggregate results.
  alt_text: Actual terminal table for seed 11 showing whether each scenario resumed
    exactly, its first divergent optimizer step, whether the next batch matched, learning-rate
    error, and final maximum parameter error.
  caption: Seed 11 exposes two exact controls and five incomplete checkpoint signatures
    in one terminal run.
  provenance_or_license: Original local SVG rendered from an actual retained command
    transcript generated by the packaged harness; no third-party visual content; copyright
    Anshuman Sahoo.
  generation_method: Command output captured in data/terminal-02-seed-11-matrix.txt
    and rendered without content changes by code/generate_terminal_snapshots.py.
  source_data_path: data/terminal-02-seed-11-matrix.txt
  article_section: Run the control, then remove one field at a time
  units: exactness flag, optimizer step, batch identity, learning-rate error, maximum
    absolute parameter error
  assumptions:
  - Seed 11 is used for walkthrough clarity, while aggregate claims use all five seeds.
  - The table reports final error and first model divergence as produced by the harness.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
- path: figures/terminal-04-tests.svg
  type: terminal_transcript_svg
  asset_type: pytest_terminal_snapshot
  purpose: Show the direct correctness, equivalence, counterexample, and walkthrough-interface
    tests executing successfully.
  alt_text: Actual terminal transcript showing twenty-one Pytest checks passing for
    the checkpoint equivalence harness.
  caption: The tests cover complete recovery, planted omissions, delayed scheduler
    divergence, data-versus-RNG diagnosis, and the inspection commands shown in the
    article.
  provenance_or_license: Original local SVG rendered from an actual retained Pytest
    transcript generated in the packaged environment; no third-party visual content;
    copyright Anshuman Sahoo.
  generation_method: Pytest output captured in data/terminal-04-tests.txt and rendered
    without content changes by code/generate_terminal_snapshots.py.
  source_data_path: data/terminal-04-tests.txt
  article_section: Run the control, then remove one field at a time
  units: test progress and pass count
  assumptions:
  - The transcript corresponds to the packaged test file and code revision.
  - A passing suite supports only the claims encoded by those tests.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
- path: figures/terminal-03-scheduler-trace.svg
  type: terminal_transcript_svg
  asset_type: scheduler_differential_trace_terminal_snapshot
  purpose: Show the delayed causal sequence in which the scheduler learning rate differs
    one step before model parameters diverge.
  alt_text: Actual terminal trace for seed 11 with scheduler state omitted. Control
    and resumed learning rates differ at optimizer step 8 while model parameters still
    match; parameters first differ at step 9.
  caption: The scheduler trace demonstrates why a healthy checkpoint load and first
    resumed update are insufficient tests.
  provenance_or_license: Original local SVG rendered from an actual retained command
    transcript generated by the packaged harness; no third-party visual content; copyright
    Anshuman Sahoo.
  generation_method: Command output captured in data/terminal-03-scheduler-trace.txt
    and rendered without content changes by code/generate_terminal_snapshots.py.
  source_data_path: data/terminal-03-scheduler-trace.txt
  article_section: Follow the first branch, not the successful load
  units: optimizer step, learning rate, learning-rate error, batch comparison, model
    comparison, maximum absolute parameter error
  assumptions:
  - The trace is for seed 11 and the omit_scheduler intervention.
  - Scheduler stepping occurs after optimizer stepping in the packaged loop.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
- path: figures/figure-02-intervention-traces.svg
  type: explanatory_svg
  asset_type: failure_trace_diagram
  purpose: Show the first optimizer step at which each omission changed the representative
    resumed run.
  alt_text: Representative seed 11 paths show RNG and data omissions branching at
    step 6, scheduler omission at step 9, and complete recovery overlapping the control.
  caption: Different omissions can produce different branch timing, which turns the
    trace into a diagnostic rather than a binary pass or fail.
  provenance_or_license: Original local SVG generated for this article; no third-party
    visual content; copyright Anshuman Sahoo.
  generation_method: Generated by code/generate_visuals.py from data/step-traces.json.
  source_data_path: data/step-traces.json
  article_section: Follow the first branch, not the successful load
  units: optimizer step; vertical distance is categorical branch visibility
  assumptions:
  - Seed 11 is representative of branch timing across all five seeds.
  - Vertical displacement does not encode numerical error magnitude.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
- path: figures/figure-03-results.svg
  type: explanatory_svg
  asset_type: results_chart
  purpose: Summarize exact-run counts and median final parameter error across all
    35 scenario-seed runs.
  alt_text: Complete boundary and mid-accumulation payloads match in five of five
    seeds; every planted omission matches in zero of five seeds.
  caption: Complete payloads reproduced the control in this deterministic fixture;
    every selectively incomplete payload failed.
  provenance_or_license: Original local SVG generated for this article; no third-party
    visual content; copyright Anshuman Sahoo.
  generation_method: Generated by code/generate_visuals.py from data/results.csv and
    data/run-summary.json.
  source_data_path: data/results.csv
  article_section: Follow the first branch, not the successful load
  units: exact runs out of five; median maximum absolute parameter error on a log
    scale
  assumptions:
  - Exact means all compared model, optimizer, scheduler, stream, RNG, gradient, and
    next-batch checks pass.
  - Error magnitudes are fixture-specific and are not estimates of production convergence
    impact.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
- path: figures/figure-01-state-surface.svg
  type: explanatory_svg
  asset_type: state_surface_diagram
  purpose: Locate the update, stochastic, data, and partial-step components that the
    fixture selectively saves or omits.
  alt_text: Four panels list update state, stochastic state, data state, and partial-step
    state that may cross an interruption boundary.
  caption: Boundary checkpoints and mid-accumulation checkpoints have different payload
    requirements because only the latter contains unfinished gradient work.
  provenance_or_license: Original local SVG generated for this article; no third-party
    visual content; copyright Anshuman Sahoo.
  generation_method: Generated by code/generate_visuals.py from data/checkpoint-schema.json.
  source_data_path: data/checkpoint-schema.json
  article_section: Explain the failures from the checkpoint payload
  units: named state components
  assumptions:
  - The component list is specific to the packaged CPU fixture.
  - Distributed and mixed-precision systems may own additional state.
  accessibility:
    title_and_desc_present: true
    color_not_only_carrier: true
