HomeHands-on verification

Projects

Choose a project, work through its stages, and keep the evidence. Every available project includes starter code, a reference solution, and checks you can run on CPU.

Starting a new repository? Set up your folders, experiment records and CLI.

Running experiments? Build a reproducible JAX/Flax experiment, compare runs and write a research notebook.

Ready to build

Start with JAX / CPU · 4 stages

Build a regression training audit

Extract the ZIP into a fresh folder. That folder contains requirements-cpu.txt and projects/regression-audit. Use the extracted top folder as your working directory; a full course checkout is optional for this project. Open projects/regression-audit/starter/model.py in your editor, implement the stage functions directly inside that file, and verify each stage with python3 projects/regression-audit/tests/check.py --stage 1 (through --stage 4).

Implement matching prediction/target shapes and scalar loss. Explain finite-difference tolerance and precision.

Where to put your code: Edit projects/regression-audit/starter/model.py directly.

Verify each stage: projects/regression-audit/tests/check.py

Your stages

  1. Prediction and objective
  2. Gradient evidence
  3. Compiled training
  4. Training audit

Train neural networks / CPU · 3 stages

Build a reproducible classifier audit

Extract the ZIP into a fresh folder. That folder contains requirements-cpu.txt and projects/mlp-classifier. Use the extracted top folder as your working directory; a full course checkout is optional for this project. Copy the starter scaffold projects/mlp-classifier/starter/model.py to projects/mlp-classifier/my_model.py, implement the stage functions in projects/mlp-classifier/my_model.py, and verify each stage with python3 projects/mlp-classifier/tests/check.py --implementation projects/mlp-classifier/my_model.py --stage 1 (through --stage 3).

Explain the nonlinearity and parameter shapes. Verify a stable scalar objective independently.

Where to put your code: Copy projects/mlp-classifier/starter/model.py to projects/mlp-classifier/my_model.py and edit projects/mlp-classifier/my_model.py.

Verify each stage: projects/mlp-classifier/tests/check.py

Your stages

  1. Model and shape contract
  2. Objective and derivative evidence
  3. Training audit

Before you start

Simulate and discover / CPU float64; no accelerator qualification · 3 stages

Audit a differentiable scientific inverse problem

Extract the project ZIP into a fresh folder, install its requirements-cpu.txt in your course environment, and run commands from the extracted top folder. CPU float64 is enabled by the scaffold. Copy the starter scaffold projects/scientific-inverse/starter/model.py to projects/scientific-inverse/my_model.py, implement the stage functions in projects/scientific-inverse/my_model.py, and verify each stage with python3 projects/scientific-inverse/tests/check.py --implementation projects/scientific-inverse/my_model.py --stage 1 (through --stage 3).

Separate discrete algorithm correctness from continuous approximation error. Verify batch/time axes, singleton batches and malformed-input rejection.

Where to put your code: Copy projects/scientific-inverse/starter/model.py to projects/scientific-inverse/my_model.py and edit projects/scientific-inverse/my_model.py.

Verify each stage: projects/scientific-inverse/tests/check.py

Your stages

  1. Simulation and numerical references
  2. Objective and solver sensitivity
  3. Parameter recovery and an inference report

Before you start

Learn by interacting / CPU · 4 stages

Train and audit a policy from interaction

Extract the project ZIP and work from its top folder, which contains requirements-cpu.txt and projects/policy-evaluation. A full checkout is optional. Copy the starter scaffold projects/policy-evaluation/starter/model.py to projects/policy-evaluation/my_model.py, implement the stage functions in projects/policy-evaluation/my_model.py, and verify each stage with python3 projects/policy-evaluation/tests/check.py --implementation projects/policy-evaluation/my_model.py --stage 1 (through --stage 4).

Enumerate transition and episode-ending contracts independently. Keep reset and final observations explicit.

Where to put your code: Copy projects/policy-evaluation/starter/model.py to projects/policy-evaluation/my_model.py and edit projects/policy-evaluation/my_model.py.

Verify each stage: projects/policy-evaluation/tests/check.py

Your stages

  1. Functional environment
  2. Batched trajectories
  3. Policy objectives
  4. Training and held-out evaluation

Before you start

Model uncertainty / CPU · 3 stages

Audit a Bayesian regression model

Extract the ZIP into a fresh folder. Its top folder contains requirements-cpu.txt and projects/bayesian-regression; run commands from that top folder in the activated environment. Copy the starter scaffold projects/bayesian-regression/starter/model.py to projects/bayesian-regression/my_model.py, implement the stage functions in projects/bayesian-regression/my_model.py, and verify each stage with python3 projects/bayesian-regression/tests/check.py --implementation projects/bayesian-regression/my_model.py --stage 1 (through --stage 3).

State a prior, likelihood and known-noise assumption. Derive the conjugate posterior and verify independent numerical references.

Where to put your code: Copy projects/bayesian-regression/starter/model.py to projects/bayesian-regression/my_model.py and edit projects/bayesian-regression/my_model.py.

Verify each stage: projects/bayesian-regression/tests/check.py

Your stages

  1. Exact posterior and density
  2. Sampler and diagnostic audit
  3. Predictive uncertainty and mismatch

Before you start

Understand JAX itself / CPU float64 · 3 stages

Audit derivatives and compile a tiny transformation

Extract the ZIP, install requirements-cpu.txt in your course environment, and run commands from the extracted top folder. The scaffold enables CPU float64 examples; no compiler or accelerator installation is required. Copy the starter scaffold projects/derivative-audit/starter/model.py to projects/derivative-audit/my_model.py, implement the stage functions in projects/derivative-audit/my_model.py, and verify each stage with python3 projects/derivative-audit/tests/check.py --implementation projects/derivative-audit/my_model.py --stage 1 (through --stage 3).

Explain input directions and output cotangents using independent Jacobians. Verify an exact Hessian-vector product rather than substituting Gauss–Newton.

Where to put your code: Copy projects/derivative-audit/starter/model.py to projects/derivative-audit/my_model.py and edit projects/derivative-audit/my_model.py.

Verify each stage: projects/derivative-audit/tests/check.py

Your stages

  1. Directional products and exact curvature
  2. Exact custom derivative contracts
  3. A compiled primitive-level transformation

Before you start

Ship and adapt JAX workloads / CPU; device and network validation remain separate · 3 stages

Release a trained computation with a deployment audit

Use the top folder of the extracted ZIP as the working directory. It contains requirements-cpu.txt and projects/deployment-audit. This project exercises an in-process CPU request boundary; real network and target-device measurements require separate runs. Copy the starter scaffold projects/deployment-audit/starter/model.py to projects/deployment-audit/my_model.py, implement the stage functions in projects/deployment-audit/my_model.py, and verify each stage with python3 projects/deployment-audit/tests/check.py --implementation projects/deployment-audit/my_model.py --stage 1 (through --stage 3).

Identify the trained base and adaptation data using recorded hashes. Compare a stable objective and gradient with an independent reference.

Where to put your code: Copy projects/deployment-audit/starter/model.py to projects/deployment-audit/my_model.py and edit projects/deployment-audit/my_model.py.

Verify each stage: projects/deployment-audit/tests/check.py

Your stages

  1. Trained artifact and adaptation provenance
  2. Export and precision contract
  3. Request timing and capacity evidence

Operate JAX workloads / CPU; optional target runtime requires separate validation · 5 stages

Operate and recover a local JAX workload

Work from the extracted top folder containing requirements-cpu.txt and projects/workload-operations. The checks use bounded local subprocesses and temporary directories; no cloud allocation occurs. Copy the starter scaffold projects/workload-operations/starter/model.py to projects/workload-operations/my_model.py, implement the stage functions in projects/workload-operations/my_model.py, and verify each stage with python3 projects/workload-operations/tests/check.py --implementation projects/workload-operations/my_model.py --stage 1 (through --stage 5).

Observe actual worker exit and reap timed-out processes. Derive useful metrics from synchronized work with explicit units.

Where to put your code: Copy projects/workload-operations/starter/model.py to projects/workload-operations/my_model.py and edit projects/workload-operations/my_model.py.

Verify each stage: projects/workload-operations/tests/check.py

Your stages

  1. Real process lifecycle
  2. Workload observability
  3. Complete-state recovery
  4. Artifact selection and rollback
  5. Capacity and cost

Before you start

Ship and adapt JAX workloads / CPU; target-edge validation is a separate extension · 4 stages

Build an audio waveform-to-inference harness

Run from the extracted ZIP top folder containing requirements-cpu.txt and projects/audio-harness. The README links executed plots, a connected reference runner and bundled synthesis/reviewer tasks. The fixture classifies synthetic sounds, not speech. Copy the starter scaffold projects/audio-harness/starter/model.py to projects/audio-harness/my_model.py, implement the stage functions in projects/audio-harness/my_model.py, and verify each stage with python3 projects/audio-harness/tests/check.py --implementation projects/audio-harness/my_model.py --stage 1 (through --stage 4).

Explain sample-rate, waveform, crop and STFT contracts with independent calculations. Preserve recording identities, groups, licenses and split provenance.

Where to put your code: Copy projects/audio-harness/starter/model.py to projects/audio-harness/my_model.py and edit projects/audio-harness/my_model.py.

Verify each stage: projects/audio-harness/tests/check.py

Your stages

  1. Waveform and spectral contract
  2. Training, recovery and held-out errors
  3. Precision and complete exported artifacts
  4. Measured inference and boundary drills

Train neural networks / CPU synthetic image/text fixture; target runtime unverified · 5 stages

Build and audit image–text retrieval

Extract the ZIP and install its requirements-cpu.txt; run commands from the extracted top folder. Reference figures are measured on a synthetic CPU fixture. Copy the starter scaffold projects/cross-modal-harness/starter/model.py to projects/cross-modal-harness/my_model.py, implement the stage functions in projects/cross-modal-harness/my_model.py, and verify each stage with python3 projects/cross-modal-harness/tests/check.py --implementation projects/cross-modal-harness/my_model.py --stage 1 (through --stage 5).

Validate paired semantic inputs and split by source identity. Derive and independently check a multi-positive objective.

Where to put your code: Copy projects/cross-modal-harness/starter/model.py to projects/cross-modal-harness/my_model.py and edit projects/cross-modal-harness/my_model.py.

Verify each stage: projects/cross-modal-harness/tests/check.py

Your stages

  1. Pair and preprocessing contracts
  2. Symmetric contrastive objective
  3. Training and complete recovery
  4. Precision and exported branches
  5. Inference, measured release and rollback

Make it fast. Make it scale. / CPU interpretation/simulation available; real TPU runner requires separately validated TPU hardware · 3 stages

Audit a Pallas kernel and its target evidence

CPU stages use requirements-cpu.txt with actual Pallas interpretation and TPU-memory simulation. Run from the extracted top folder. The separate target_tpu.py command requires a configured real TPU environment and refuses CPU fallback; no TPU qualification is implied by CPU stage passes. Copy the starter scaffold projects/kernel-audit/starter/model.py to projects/kernel-audit/my_model.py, implement the stage functions in projects/kernel-audit/my_model.py, and verify each stage with python3 projects/kernel-audit/tests/check.py --implementation projects/kernel-audit/my_model.py --stage 1 (through --stage 3).

Verify every output against an independent represented-input oracle across tails and dtypes. Explain grid coordinates, input windows and unique output ownership.

Where to put your code: Copy projects/kernel-audit/starter/model.py to projects/kernel-audit/my_model.py and edit projects/kernel-audit/my_model.py.

Verify each stage: projects/kernel-audit/tests/check.py

Your stages

  1. Grid and precision contract
  2. Fused target-oriented kernel
  3. Pipeline semantics and measurement protocol

Train neural networks / CPU; target-device extension requires separate validation · 8 stages

Build a recoverable image classifier through exported inference

Use the extracted top-level folder containing requirements-cpu.txt and projects/image-harness. The synthetic image fixture needs no download; an optional manifest loads existing local image files. Export and restore checks launch bounded fresh CPU interpreters. Copy the starter scaffold projects/image-harness/starter/model.py to projects/image-harness/my_model.py, implement the stage functions in projects/image-harness/my_model.py, and verify each stage with python3 projects/image-harness/tests/check.py --implementation projects/image-harness/my_model.py --stage 1 (through --stage 8).

Validate raw image channels/layout/range and external-file provenance without split leakage. Verify convolution/pooling/head independently and check a parameter derivative.

Where to put your code: Copy projects/image-harness/starter/model.py to projects/image-harness/my_model.py and edit projects/image-harness/my_model.py.

Verify each stage: projects/image-harness/tests/check.py

Your stages

  1. Image data and preprocessing
  2. Transparent CNN baseline
  3. Actual augmented training
  4. Full-state recovery
  5. Frozen evaluation and errors
  6. Calibrated precision
  7. Serialized inference artifact
  8. Measured serving adapter

Start with JAX / CPU; synthetic array/state contracts · 4 stages

Connect arrays, transformations and explicit state

Run from the extracted bundle’s top folder with requirements-cpu.txt installed. Four stages connect the first four phases before the regression capstone. Copy the starter scaffold projects/foundation-toolkit/starter/toolkit.py to projects/foundation-toolkit/my_toolkit.py, implement the stage functions in projects/foundation-toolkit/my_toolkit.py, and verify each stage with python3 projects/foundation-toolkit/tests/check.py --implementation projects/foundation-toolkit/my_toolkit.py --stage 1 (through --stage 4).

Describe the environment of a completed result. Preserve observation/feature axes and exclude invalid observations.

Where to put your code: Copy projects/foundation-toolkit/starter/toolkit.py to projects/foundation-toolkit/my_toolkit.py and edit projects/foundation-toolkit/my_toolkit.py.

Verify each stage: projects/foundation-toolkit/tests/check.py

Your stages

  1. Report the completed environment
  2. Process observations with a mask
  3. Compile a batch of gradients
  4. Replay a batched simulation

Make it fast. Make it scale. / One CPU process with four actual logical JAX devices; multi-host/accelerator execution unverified · 4 stages

Resume and profile a sharded training run

Use requirements-cpu.txt and a fresh Python interpreter. The checker configures four logical CPU devices before initializing JAX and executes a real small profile. The optional multi-host lesson extension remains separately unverified. Copy the starter scaffold projects/sharded-training/starter/model.py to projects/sharded-training/my_model.py, implement the stage functions in projects/sharded-training/my_model.py, and verify each stage with python3 projects/sharded-training/tests/check.py --implementation projects/sharded-training/my_model.py --stage 1 (through --stage 4).

Carry complete momentum, random, permutation, cursor and step state through pure transitions. Preserve every example with padded valid masks and reject unsupported input contracts.

Where to put your code: Copy projects/sharded-training/starter/model.py to projects/sharded-training/my_model.py and edit projects/sharded-training/my_model.py.

Verify each stage: projects/sharded-training/tests/check.py

Your stages

  1. State and input ownership
  2. Count-weighted sharded updates
  3. Fresh-process complete recovery
  4. Trace-backed performance evidence

Learn TPUs and Google Cloud / CPU reference; physical TPU and multi-controller qualification remain separate · 4 stages

Build a causal Transformer training and inference harness

Use the extracted ZIP top folder containing requirements-cpu.txt and projects/text-harness. The README explains the full connected runner and actual plots/profile artifacts. Linked TPU/distributed phase commands require the full course workspace and an existing supported target environment. Copy the starter scaffold projects/text-harness/starter/model.py to projects/text-harness/my_model.py, implement the stage functions in projects/text-harness/my_model.py, and verify each stage with python3 projects/text-harness/tests/check.py --implementation projects/text-harness/my_model.py --stage 1 (through --stage 4).

Explain UTF-8 tokens, causal/padding masks and valid-token loss normalization. Train a real tiny Transformer and compare fixed held-out token evidence with a declared baseline.

Where to put your code: Copy projects/text-harness/starter/model.py to projects/text-harness/my_model.py and edit projects/text-harness/my_model.py.

Verify each stage: projects/text-harness/tests/check.py

Your stages

  1. Tokens, causal computation and loss
  2. Actual training and full recovery
  3. Real KV-cache precision
  4. Exported inference and profiler evidence

Start with JAX / CPU; original synthetic numerical experiments · 5 stages

Audit conditioning, gradient noise and optimizer decisions

Run from the extracted bundle’s top folder with requirements-cpu.txt installed. Complete the initial regression audit before this deeper five-stage optimization audit. Copy the starter scaffold projects/optimizer-audit/starter/optimization.py to projects/optimizer-audit/my_optimization.py, implement the stage functions in projects/optimizer-audit/my_optimization.py, and verify each stage with python3 projects/optimizer-audit/tests/check.py --implementation projects/optimizer-audit/my_optimization.py --stage 1 (through --stage 5).

Derive loss, gradient and Hessian independently of autodiff. Explain a coordinate change through prediction and curvature evidence.

Where to put your code: Copy projects/optimizer-audit/starter/optimization.py to projects/optimizer-audit/my_optimization.py and edit projects/optimizer-audit/my_optimization.py.

Verify each stage: projects/optimizer-audit/tests/check.py

Your stages

  1. Derive and check the local geometry
  2. Change coordinates without changing predictions
  3. Measure noise by enumerating the sampler
  4. Audit optimizer state and update order
  5. Separate prediction and coefficient stability

Before you start

Operate JAX workloads / CPU; optional real local Docker qualification · 4 stages

Ship a tracked and containerized model release

Install the course requirements including MLflow 3.16.1. The four-stage reference runs locally without Docker or cloud credentials. Run container_check.py separately with a local Docker engine. The generated service is a teaching fixture, not a production web stack. Copy the starter scaffold projects/engineering-release/starter/engineering.py to projects/engineering-release/my_engineering.py, implement the stage functions in projects/engineering-release/my_engineering.py, and verify each stage with python3 projects/engineering-release/tests/check.py --implementation projects/engineering-release/my_engineering.py --stage 1 (through --stage 4).

Keep exact data, code, environment, model and evaluation identities. Reject hidden slice failures and missing evidence.

Where to put your code: Copy projects/engineering-release/starter/engineering.py to projects/engineering-release/my_engineering.py and edit projects/engineering-release/my_engineering.py.

Verify each stage: projects/engineering-release/tests/check.py

Your stages

  1. Data identity and slice gates
  2. LLM application evaluation
  3. Model ownership and release transitions
  4. Tracked training to inference

Train neural networks / CPU; original synthetic fixtures and public reference checks · 8 stages

Audit pretraining and post-training objectives

Run from the course workspace root after installing requirements-cpu.txt in your Python environment. CPU fixtures require no external datasets, credentials or cloud services. Checks are cumulative public practice, not independent learner review. Copy the starter scaffold projects/training-methods/starter/methods.py to projects/training-methods/my_methods.py, implement the stage functions in projects/training-methods/my_methods.py, and verify each stage with python3 projects/training-methods/tests/check.py --implementation projects/training-methods/my_methods.py --stage 1 (through --stage 8).

Masked-target reduction, input corruption, uniform baseline and changed mask. Rectangular multichannel patch order, visible-only features and hidden-patch reduction.

Where to put your code: Copy projects/training-methods/starter/methods.py to projects/training-methods/my_methods.py and edit projects/training-methods/my_methods.py.

Verify each stage: projects/training-methods/tests/check.py

Your stages

  1. Masked language modeling
  2. Masked image reconstruction
  3. Paired contrastive learning
  4. Response-only SFT
  5. Frozen-base LoRA
  6. Preference reward model
  7. Learned-reward PPO
  8. Direct preference optimization

Ship and adapt JAX workloads / CPU; original synthetic fixtures and public reference checks · 3 stages

Convert PyTorch weights and audit Flax architecture parity

Run from the course workspace root after installing requirements-cpu.txt in your Python environment. CPU fixtures require no external datasets, credentials or cloud services. Checks are cumulative public practice, not independent learner review. Copy the starter scaffold projects/weight-conversion/starter/bridge.py to projects/weight-conversion/my_bridge.py, implement the stage functions in projects/weight-conversion/my_bridge.py, and verify each stage with python3 projects/weight-conversion/tests/check.py --implementation projects/weight-conversion/my_bridge.py --stage 1 (through --stage 3).

Multiple seeds, asymmetric layers, input gradients and rejected malformed tensors. Independent absolute/relative errors, near-zero tolerances and injected epsilon failure.

Where to put your code: Copy projects/weight-conversion/starter/bridge.py to projects/weight-conversion/my_bridge.py and edit projects/weight-conversion/my_bridge.py.

Verify each stage: projects/weight-conversion/tests/check.py

Your stages

  1. Map and compare real frameworks
  2. Locate numerical disagreement
  3. Reload converted weights independently

Start with JAX / CPU · 4 stages

Check the CPU environment and a saved matrix arithmetic identity

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/welcome-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Confirm CPU backend, device inventory, and the Gram matrix for the saved 2x2 input.. Change the input and predict how each Gram entry changes..

Where to put your code: Edit projects/welcome-audit/starter/model.py directly.

Verify each stage: projects/welcome-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Before you start

Start with JAX / CPU · 4 stages

Audit masked batch moments and padding-sensitive denominators

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/arrays-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Match independently calculated mean, variance, and valid-row count.. Change the mask to include an extreme row; diagnose empty masks and shape mismatches..

Where to put your code: Edit projects/arrays-audit/starter/model.py directly.

Verify each stage: projects/arrays-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Before you start

Start with JAX / CPU · 4 stages

Compare scalar, vmap, autodiff, and changed-shape JIT behavior

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/transforms-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Compare scalar and vectorized values and analytic derivatives.. Change values and batch shape; verify output and observe one trace per shape..

Where to put your code: Edit projects/transforms-audit/starter/model.py directly.

Verify each stage: projects/transforms-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Before you start

Ship and adapt JAX workloads / CPU · 4 stages

Resume optimizer and PRNG state across an interrupted training update

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/recovery-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Run one update and inspect weight, momentum, cursor, and key changes.. Compare uninterrupted training with a checkpointed resume at the next update..

Where to put your code: Edit projects/recovery-audit/starter/model.py directly.

Verify each stage: projects/recovery-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Make it fast. Make it scale. / CPU · 4 stages

Measure CPU JIT latency and changed-shape traces with retained JAXPR evidence

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/performance-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Check output against an independent NumPy result and synchronize every timing.. Call the compiled function at two shapes and verify two Python trace events..

Where to put your code: Edit projects/performance-audit/starter/model.py directly.

Verify each stage: projects/performance-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Before you start

Train neural networks / CPU · 4 stages

Audit response-token SFT masking and preference-pair loss

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/posttraining-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Match a hand-computed response-only token loss and DPO margin.. Swap chosen and rejected scores and diagnose an empty response mask..

Where to put your code: Edit projects/posttraining-audit/starter/model.py directly.

Verify each stage: projects/posttraining-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Learn TPUs and Google Cloud / CPU · 4 stages

Inspect CPU device inventory, BF16 storage, and collective participant arithmetic

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/tpu-runtime-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Check actual CPU devices and compare BF16-stored weights converted to FP32 operands.. Omit one participant in the explicitly simulated sum and detect the missing contribution..

Where to put your code: Edit projects/tpu-runtime-audit/starter/model.py directly.

Verify each stage: projects/tpu-runtime-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Learn TPUs and Google Cloud / CPU · 4 stages

Gate simulated multi-worker checkpoint publication on complete receipts

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/tpu-workflow-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Detect a missing worker receipt and publish only a complete same-step set.. Reject duplicate worker IDs and negative or non-integer checkpoint steps..

Where to put your code: Edit projects/tpu-workflow-audit/starter/model.py directly.

Verify each stage: projects/tpu-workflow-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Learn TPUs and Google Cloud / CPU · 4 stages

Estimate optimizer-state bytes and calculate supplied-rate scaling efficiency

Run stages 1 through 4 using the commands shown. Stage 3 writes persistent evidence under runs/tpu-systems-audit/ when using its documented --evidence-dir; without that option, evidence stays in a temporary directory. The untouched starter deliberately fails.

Reconcile parameter, master-weight, and optimizer-moment byte totals.. Change parameter count and supplied rates; reject nonpositive values..

Where to put your code: Edit projects/tpu-systems-audit/starter/model.py directly.

Verify each stage: projects/tpu-systems-audit/tests/check.py

Your stages

  1. Contract and independent calculation
  2. Changed condition and diagnosis
  3. Retained evidence
  4. Integrated project check

Train neural networks / CPU reference; optional local trackers; GPU/TPU qualification separate · 4 stages

Reproducible JAX/Flax experiments workshop

Install this project’s minimal requirements.txt in an isolated Python environment. Work through four stages using the supplied Flax NNX model and CLI. CSV needs no account; TensorBoard, offline W&B and SQLite MLflow are optional implemented adapters. The generated research notebook is Markdown. GPU/TPU and multi-host measurements require separate target execution.

Freeze source, data, seeds, backend and the declared experimental question before execution. Log traceable post-update observations to CSV and verify optional tracker histories.

Where to put your code: Copy projects/reproducible-experiments/starter/workflow.py to projects/reproducible-experiments/my_workflow.py and edit projects/reproducible-experiments/my_workflow.py.

Verify each stage: projects/reproducible-experiments/tests/check.py

Your stages

  1. Freeze the experimental question and configuration
  2. Log complete post-update observations
  3. Compare complete paired seed results
  4. Execute, diagnose and write the research notebook

Train neural networks / CPU only; tiny Flax Linen model; accelerator behavior is untested · 4 stages

Trace a tiny bidirectional encoder from pretraining to retrieval

Run from the course workspace root with the repository CPU Python environment. The corpus and hand-authored judgments are frozen locally; there is no runtime data download, cloud service, credential, or upload. The checker defaults to the learner starter. Pass --implementation solution explicitly to run the answer key. Execute stages in order using the same output directory.

All four objective implementations pass independent NumPy checks.. No query or judged passage crosses a source-group split..

Where to put your code: Copy projects/embedding-lineage/starter/model.py to projects/embedding-lineage/my_model.py and edit projects/embedding-lineage/my_model.py.

Verify each stage: projects/embedding-lineage/tests/check.py

Your stages

  1. Masked-token pretraining
  2. Contrastive continuation
  3. Supervised query-positive adaptation
  4. Held-out retrieval and export

Passing the public checks is practice evidence. It is not an independently reviewed qualification.

Connect the lessons

Choose the system you want to build.

Follow training, recovery, evaluation and deployment in one project. Each guide identifies its runnable harness, available preparation and remaining target-runtime work.

01 / Runnable harness

Image: from pixels to a deployed classifier

Build an image classification system whose preprocessing, errors and runtime behavior you can inspect.

Explore the image guide

02 / Runnable harness

Text: from tokens to reproducible generation

Build a small causal language-model system with trustworthy masking, recovery and decoding.

Explore the text guide

03 / Runnable harness

Audio: from waveforms to an edge sound classifier

Build a sound-event system that preserves timing, handles silence and measures the full signal-processing path.

Explore the audio guide

04 / Runnable harness

Cross-modal: connect images and text

Build a retrieval system that checks alignment between modalities before optimizing similarity search.

Explore the cross-modal guide

Next: complete model lifecycles

Planned capstones connect text, image, audio and multimodal training to evaluation and release. Read their staged specifications; runnable workspaces and measured results are still to come.