Experiments
Experiments are the foundation of ML-Dash. Each experiment represents a single experiment run, containing all your logs, parameters, metrics, and files.
Prefix Format
The prefix is a universal key that identifies your experiment:
- owner: First segment (e.g., your username)
- project: Second segment (e.g., project name)
- path: Remaining segments form the folder structure
- name: Derived from the last segment
Three Usage Styles
Context Manager (recommended for most cases):
Decorator (clean for training functions):
Direct (manual control):
Automatic Path Detection with RUN.entry
Use RUN.entry = __file__ to automatically detect the script path and generate a meaningful experiment prefix:
This is useful when:
- Running multiple scripts in the same project
- You want the prefix to automatically reflect the file structure
- Organizing experiments by script location
Local, Hybrid, and Remote Mode
Where an experiment writes depends on dash_url and dash_root:
| Mode | How to get it | Writes to |
|---|---|---|
| Local (default) | no dash_url | .dash/ on disk. No server, no login |
| Hybrid | dash_url=... | the server and .dash/ |
| Remote | dash_url=..., dash_root=None | the server only |
Any mode that uses the server needs a login first. See
Authentication. Runs recorded in local mode can
be uploaded later with ml-dash upload.
Experiment Metadata
Add a description (readme), tags, and bindrs for organization:
Metadata fields:
readme: Human-readable experiment description (shown as the description on the server). Note that the argument isreadme, notdescription. Unknown keyword arguments are silently ignored.tags: List of tags for categorization (e.g., ["baseline", "production"])bindrs: List of bindrs for resource/team association (e.g., ["gpu-1", "team-ml"])
Experiment Status Lifecycle
Experiments automatically track their status through the lifecycle:
- RUNNING: Automatically set when experiment opens
- COMPLETED: Set when experiment closes normally
- FAILED: Set when exception occurs during experiment
- CANCELLED: Can be set manually
Automatic status management (recommended):
Manual status control:
Note: Status updates only work in remote mode. Local mode doesn't track status.
Resuming Experiments
Experiments use upsert behavior - reopen by using the same prefix:
Available Operations
Once an experiment is open, you can use all ML-Dash features:
Storage Structure
Local mode creates a directory structure:
Files are stored under files/{prefix}/{snowflake_id}/{filename} where:
prefix: Logical path (e.g., "models", "configs")snowflake_id: Unique identifier for the filefilename: Original filename
Remote mode stores data in MongoDB + S3 on your server.
Next: Learn about Logging to track events and progress.