https://github.com/fortyfive-labs/ml-dash
Scalable Training Telemetry and Metrics Visualization
https://github.com/fortyfive-labs/ml-dash
machine-learning ml-systems physical-ai rlhf robot-learning visualization
Last synced: 5 months ago
JSON representation
Scalable Training Telemetry and Metrics Visualization
- Host: GitHub
- URL: https://github.com/fortyfive-labs/ml-dash
- Owner: fortyfive-labs
- License: mit
- Created: 2025-10-28T06:13:00.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-01-18T10:37:11.000Z (5 months ago)
- Last Synced: 2026-01-18T15:49:23.917Z (5 months ago)
- Topics: machine-learning, ml-systems, physical-ai, rlhf, robot-learning, visualization
- Language: Python
- Homepage: https://docs.dash.ml
- Size: 12 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ML-Dash
A simple and flexible SDK for ML experiment tracking and data storage.
## Features
- **Three Usage Styles**: Pre-configured singleton (dxp), context manager, or direct instantiation
- **Dual Operation Modes**: Remote (API server) or local (filesystem)
- **OAuth2 Authentication**: Secure device flow authentication for CLI and SDK
- **Auto-creation**: Automatically creates namespace, project, and folder hierarchy
- **Upsert Behavior**: Updates existing experiments or creates new ones
- **Experiment Lifecycle**: Automatic status tracking (RUNNING, COMPLETED, FAILED, CANCELLED)
- **Organized File Storage**: Prefix-based file organization with unique snowflake IDs
- **Rich Metadata**: Tags, bindrs, descriptions, and custom metadata support
- **Simple API**: Minimal configuration, maximum flexibility
## Installation
Using uv (recommended)
Using pip
```bash
uv add ml-dash==0.6.2rc1
```
```bash
pip install ml-dash==0.6.2rc1
```
## Quick Start
### 1. Authenticate (Required for Remote Mode)
```bash
ml-dash login
```
This opens your browser for secure OAuth2 authentication. Your credentials are stored securely in your system keychain.
### 2. Start Tracking Experiments
#### Option A: Use the Pre-configured Singleton (Easiest)
```python
from ml_dash.auto_start import dxp
# Start experiment (uploads to https://api.dash.ml by default)
with dxp.run:
dxp.log("Training started", level="info")
dxp.params.set(learning_rate=0.001, batch_size=32)
for epoch in range(10):
loss = train_one_epoch()
dxp.metrics("train").log(loss=loss, epoch=epoch)
```
#### Option B: Create Your Own Experiment
```python
from ml_dash import Experiment
with Experiment(
prefix="alice/my-project/my-experiment",
dash_url="https://api.dash.ml", # token auto-loaded
).run as experiment:
experiment.log("Hello!", level="info")
experiment.params.set(lr=0.001)
```
#### Option C: Local Mode (No Authentication Required)
```python
from ml_dash import Experiment
with Experiment(
project="my-project", prefix="my-experiment", dash_root=".dash"
).run as experiment:
experiment.log("Running locally", level="info")
```
See [docs/getting-started.md](docs/getting-started.md) for more examples.
## Development Setup
### Installing Dev Dependencies
To contribute to ML-Dash or run tests, install the development dependencies:
Using uv (recommended)
Using pip
```bash
uv sync --extra dev
```
```bash
pip install -e ".[dev]"
```
This installs:
- `pytest>=8.0.0` - Testing framework
- `pytest-asyncio>=0.23.0` - Async test support
- `sphinx>=7.2.0` - Documentation builder
- `sphinx-rtd-theme>=2.0.0` - Read the Docs theme
- `sphinx-autobuild>=2024.0.0` - Live preview for documentation
- `myst-parser>=2.0.0` - Markdown support for Sphinx
- `ruff>=0.3.0` - Linter and formatter
- `mypy>=1.9.0` - Type checker
### Running Tests
Using uv
Using pytest directly
```bash
uv run pytest
```
```bash
pytest
```
### Building Documentation
Documentation is built using Sphinx with Read the Docs theme.
Build docs
Live preview
Clean build
```bash
uv run python -m sphinx -b html docs docs/_build/html
```
```bash
uv run sphinx-autobuild docs docs/_build/html
```
```bash
rm -rf docs/_build
```
The live preview command starts a local server and automatically rebuilds when files change.
Alternatively, you can use the Makefile from within the docs directory:
```bash
cd docs
make html # Build HTML documentation
make clean # Clean build files
```
For maintainers, to build and publish a new release: `uv build && uv publish`