Local-first ML training visualization and tracking dashboard.
Project description
🚀 Overview
Gradia is a high-performance, asynchronous monitoring solution designed for local machine learning workflows. Unlike cloud-native behemoths, Gradia focuses on zero-latency, privacy-first tracking that runs directly alongside your training loop.
Built on FastAPI, WebSockets (simulated via high-frequency polling), and Reactive UI, Gradia provides granular visibility into your model's training dynamics, system resource consumption, and feature importance without the overhead of external servers.
⚡ Key Capabilities
| Feature | Description |
|---|---|
| Real-Time Telemetry | Nanosecond-precision tracking of Loss, Accuracy, and custom metrics via async event dispatching. |
| Intelligent Auto-Discovery | Heuristic analysis of tabular datasets to automatically infer task types (Regression vs Classification) and suggest optimal architectures (CNNs, RFCs). |
| System Profiling | Integrated psutil hooks for monitoring CPU/GPU* and RAM saturation during training epochs. |
| Artifact Management | Automated checkpointing (best-ckpt) and structured logging (events.jsonl) with thread-safe IO. |
| Comprehensive Reporting | One-click generation of audit-ready PDF/JSON reports containing full training history and confusion matrices. |
| Interactive Evaluation | Post-training validation suite featuring dynamic Heatmap visualization for Confusion Matrices. |
🛠️ Architecture
Gradia employs a Producer-Consumer architecture:
- Trainer Thread (Producer): Executes the Scikit-Learn training loop, emitting atomic events to a thread-locked
EventLogger. - System Thread: Asynchronously samples hardware metrics.
- Visualization Server (Consumer): A lightweight FastAPI instance that aggregates logs and serves a reactive Single Page Application (SPA).
This decoupling ensures that monitoring never bottlenecks your training throughput.
📦 Installation
pip install gradia --upgrade
💻 Usage
Quick Start
Initialize the environment and start the observer in one command. Gradia will auto-detect any CSV files in the directory.
gradia run .
Advanced CLI
Override default heuristics and bind to specific interfaces.
gradia run . \
--target "churn_label" \
--port 8080 \
--workers 4
📊 Dashboard
Access the dashboard at http://localhost:8000.
- Configure: Select your model (Random Forest, MLP, etc.) and hyperparameters.
- Observe: Watch metrics stream in real-time.
- Analyze: Use the built-in Feature Importance charts to debug model bias.
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for details on submitting logical PRs.
📄 License
Distributed under the MIT License. See LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gradia-1.0.0.tar.gz.
File metadata
- Download URL: gradia-1.0.0.tar.gz
- Upload date:
- Size: 2.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb5658797d11c56ad47e60915b8ff2327e2cb5f8abff20707efce166ba902404
|
|
| MD5 |
dc6512b349da1770223dead4694fc844
|
|
| BLAKE2b-256 |
540ea9b848e061117c8f197700b30c6ccb543a9a92bf9aa7e9aac6e24fbd3ade
|
File details
Details for the file gradia-1.0.0-py3-none-any.whl.
File metadata
- Download URL: gradia-1.0.0-py3-none-any.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
373a45c32137a924daccb6634b3542070c1219c3513dd5a908729da2f428b021
|
|
| MD5 |
e7be70d206fb586943826637b374f197
|
|
| BLAKE2b-256 |
c42102fd0d0f3fcc663ed1064036c2a8ecfead0008f16f4a190cce165d8be754
|