mlvault
Immutable, encrypted snapshots of ML training runs.
mlvault captures your model checkpoints, metrics, and logs after every training run — encrypted and stored in the cloud. Restore any run on any machine with a single command.
pip install mlvault mlvault-mlflow
mlvault init
Quick start
1. Install
pip install mlvault mlvault-mlflow
2. Configure your API key
Get a key at obsideo.io/mlvault-beta, then:
mlvault init
# Paste your mlvault API key: mlv1_...
# Validating key... ok
# You're all set.
3. Run and archive a training job
mlvault run --collect ./outputs python train.py
mlvault runs your script, then encrypts and uploads everything in ./outputs to cloud storage.
Run ID : myproject_20240307_143022_abc123
Collect: /home/user/project/outputs
Command: python train.py
-- Training started --
...
-- Collecting artifacts --
3 artifact(s) -> myproject_20240307_143022_abc123.tar.gz
-- Encrypting --
myproject_20240307_143022_abc123.tar.gz.enc (258.4 KB)
-- Uploading --
Done. Run archived: myproject_20240307_143022_abc123
Remote : myproject_20240307_143022_abc123_bundle.enc
4. Restore a run
mlvault restore myproject_20240307_143022_abc123
Works on any machine where mlvault init has been run with the same API key.
5. List runs
mlvault list
MLflow integration
mlvault integrates with MLflow as a custom artifact store. Artifacts logged via mlf.log_artifact() are staged locally, then pushed to cloud storage with mlvault commit.
Setup
import mlflow
# Set the artifact store once when creating an experiment
mlflow.create_experiment("my-experiment", artifact_location="mlvault://my-project")
mlflow.set_experiment("my-experiment")
Or set it via environment variable before training:
export MLFLOW_ARTIFACT_URI=mlvault://my-project
Training loop
import mlflow
with mlflow.start_run() as run:
mlflow.log_param("lr", 0.001)
mlflow.log_metric("loss", 0.42)
mlflow.log_artifact("checkpoint.pt")
run_id = run.info.run_id
# After training, push artifacts to cloud storage:
# mlvault commit <run_id>
print(f"Run ID: {run_id}")
Commit artifacts
mlvault commit <mlflow_run_id>
Restore MLflow artifacts
mlvault restore <run_id>
Commands
| Command | Description |
|---|---|
mlvault init |
Configure API key |
mlvault run [cmd] |
Run training command and archive artifacts |
mlvault commit <mlflow_run_id> |
Push staged MLflow artifacts to storage |
mlvault restore <run_id> |
Download and decrypt a stored run |
mlvault list |
List locally tracked runs |
mlvault log <run_id> |
Show run details |
Security
Artifacts are encrypted with AES-256-GCM before leaving your machine. Encryption keys are derived from your API key — only you can decrypt your artifacts.
License
MIT
Metadata
Release files for obsideo-cloud 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| obsideo_cloud-0.1.0.tar.gz | 13.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| obsideo_cloud-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.7 kB
Release files / obsideo_cloud-0.1.0.tar.gz
| Download URL | obsideo_cloud-0.1.0.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
41ff7d2f29fe1ed04d71eb5c6473490ef46bbdfb5f0b276b510f813f718c7a99
|
|
BLAKE2b-256 checksum How to use checksums |
bc70ee72e618a3670448aeec1c7f6d85104c5ae4169d4eb09b7a5187ebd1ce4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / obsideo_cloud-0.1.0-py3-none-any.whl
| Download URL | obsideo_cloud-0.1.0-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87a8ab24104e421a6a0df5164338a31df0a270c357b8228b32e07d23d3c5ddd3
|
|
BLAKE2b-256 checksum How to use checksums |
18ac5f0308025e11a91965f1dfe1a889be6089fef6fb0daaf4d2845c79bd99f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Security for obsideo-cloud 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.