Skip to main content

Training with Confidence: Catching Silent DL Training Bugs with Automated Proactive Checks

Project description

TrainCheck logo

TrainCheck: Invariant Checking & Observability for AI Training

Chat on Discord Ask DeepWiki

Stop flying blind. TrainCheck gives you deep visibility into your training dynamics, continuously validating correctness and stability where standard metrics fail.


Why TrainCheck?

Continuous Invariant Checking TrainCheck validates the "physics" of your training process in real-time. It ensures your model adheres to learned invariants—such as gradient norms, tensor shapes, and update magnitudes—effectively catching silent corruption before it wastes GPU hours.

🚀 Holistic Observability Traditional tools only show you if your model crashed. TrainCheck shows you why it's degrading, analyzing internal state dynamics that loss curves miss.

🧠 Zero-Config Validation No manual tests required. TrainCheck automatically learns the invariants of your specific model from healthy runs and flags deviations instantly.

Universal Compatibility Drop-in support for PyTorch, Hugging Face, and industry-class workloads using DeepSpeed/Megatron and more.


Installation

Install TrainCheck in the Python environment where you will run your training script:

pip3 install traincheck

For detailed setup (CUDA configuration, UV, conda environments), see the Installation Guide.

How It Works

  1. Instrument: We wrap your training loop with lightweight probes—no code changes needed.
  2. Learn: We analyze correct runs to infer invariants (mathematical rules of healthy training).
  3. Check: We monitor new runs in real-time, verifying every step against learned invariants to catch silent logic bugs and hardware faults.

Workflow

🔥 Try TrainCheck

Work through 5‑Minute Experience with TrainCheck. You’ll learn how to:

  • Instrument a training script and collect a trace
  • Automatically infer invariants
  • Uncover silent bugs in the training script

Documentation

Status

TrainCheck is under active development. Please join our 💬 Discord server or file a GitHub issue for support. You can also reach the team at traincheck@umich.edu. We welcome feedback and contributions from early adopters.

Contributing

We welcome and value any contributions and collaborations. Please check out Contributing to TrainCheck for how to get involved.

License

TrainCheck is licensed under the Apache License 2.0.

Citation

If TrainCheck is relevant to your work, please cite our paper:

@inproceedings{TrainCheckOSDI2025,
  author = {Jiang, Yuxuan and Zhou, Ziming and Xu, Boyu and Liu, Beijie and Xu, Runhui and Huang, Peng},
  title = {Training with Confidence: Catching Silent Errors in Deep Learning Training with Automated Proactive Checks},
  booktitle = {Proceedings of the 19th USENIX Symposium on Operating Systems Design and Implementation},
  series = {OSDI '25},
  month = {July},
  year = {2025},
  address = {Boston, MA, USA},
  publisher = {USENIX Association},
}

Artifact Evaluation

🕵️‍♀️ OSDI AE members, please see TrainCheck AE Guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

traincheck-0.1.2.tar.gz (228.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

traincheck-0.1.2-py3-none-any.whl (256.3 kB view details)

Uploaded Python 3

File details

Details for the file traincheck-0.1.2.tar.gz.

File metadata

  • Download URL: traincheck-0.1.2.tar.gz
  • Upload date:
  • Size: 228.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.16

File hashes

Hashes for traincheck-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e4b2f7a5690dfdd3b9117ad4f2d91a5f5a8b2d41df650733e366d064f82b6f9a
MD5 fac1d7d4016e8ccc79a01a5953c8bd2c
BLAKE2b-256 186d21e8ce90cb24afc1fd8ef99438cfdcdd0c87f25860b3a2af41fac6a321b5

See more details on using hashes here.

File details

Details for the file traincheck-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: traincheck-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 256.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.16

File hashes

Hashes for traincheck-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 12b08c6d296c48bf67484ae56708bece5a178400cc8ed4c09b9aaa768da1c7ff
MD5 bd08245b599664ecc302e66715660b6b
BLAKE2b-256 0da08a490077c01f3c28c173bb3027ad17beeb328375f6f3673ec06d58c4ba3a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page