Install deterministic OOM forensics.
Get the recorder, CLI, failure capsules, bounded recovery policy, and isolated trial runner—without installing the notebook extension or web UI.
pip install watcherml
WatcherML is the reliability and recovery layer for ML training. It captures evidence, diagnoses failures, proposes bounded interventions, reruns controlled trials, and proves which change actually worked.
Sealed source capsule and contract.
Probed batch 16 in a fresh process.
Confirmed the candidate twice.
WatcherML assists ML engineers when training is expensive, failures recur, multiple engineers are involved, and successful retries must be trusted later. Trackers show you what failed. WatcherML investigates why.
THE BOTTOM LINEManual retries can make one ML run pass. WatcherML finds what failed, proposes recovery steps, and executes verified trials.
Designed to work with the stack you already use
WatcherML is a local-first reliability layer for ML training. V1 starts with tackling OOM errors that can be captured, changed, rerun, and verified without guesswork.
Persist a versioned capsule with the traceback, configuration, last logged step, recent metrics, sampled resources, environment fingerprint, Git state, dataset fingerprint, and optional CUDA allocator bytes.
capsule.schema.version = "1.0"capsule.failure.class = "cuda_out_of_memory"capsule.evidence.training_state.last_logged_step = 417capsule.capture = { score: 8, maximum: 10 }The recorder works in scripts, Jupyter, and Google Colab. Recovery uses an importable training entrypoint so every probe, full trial, and confirmation can start in a fresh supervised process.
import watcherml as watcher
with watcher.init(
project="mistral-lora",
config=config,
) as run:
for step, batch in enumerate(loader):
loss = train_step(model, batch)
run.log_metric("loss", float(loss), step=step)
# On failure, the original exception still propagates.
# WatcherML has already persisted the deterministic capsule.
pip install watcherml
# Local terminal—or prefix commands with ! in Colab
watcher init
watcher runs --project mistral-lora
watcher failures --project mistral-lora
watcher inspect RUN_ID
watcher compare FAILED_RUN SUCCESSFUL_RUN
watcher export RUN_ID --out failure-capsule.zip
# Optional local interface; not required in Colab
pip install 'watcherml[ui]'
watcher ui --port 7331
WatcherML v1 cannot rewrite training code, install dependencies, alter datasets, or silently keep searching. It materializes a typed, contract-approved intervention in a fresh process and records exactly what happened.
See the recovery contract →Have new ideas and want to contribute? Open a new pull request on Github!