Step 1: Register
Immutable model registry
Point dstk at your trained artifact. It gets versioned and stored immutably. No more "which pickle file was that?"
model = registry.register( name="churn-predictor", artifact="./model.pkl" )
dstk is a data science toolkit for model registries, deployment, and monitoring. Infrastructure as Code for your ML models, in a way that mostly doesn't suck.
pipinstallgit+https://github.com/dstk-labs/pydstk.gitfrom pydstk import ModelRegistry, Deployer
# Register your model
registry = ModelRegistry()
model = registry.register(
name="fraud-detector",
artifact="./model.pkl",
version="1.2.0"
)
# Deploy with one call
Deployer().deploy(model)
✓ Registered fraud-detector v1.2.0
✓ Deployed to https://models.acme.io/fraud-detector
✓ Inference API live (200 OK)Plays nice with
How it works
Three concepts, minimal configuration, and you pick the interface: Python, CLI, or Web UI.
Step 1: Register
Point dstk at your trained artifact. It gets versioned and stored immutably. No more "which pickle file was that?"
model = registry.register( name="churn-predictor", artifact="./model.pkl" )
Step 2: Deploy
dstk wraps your model in a container with a standard inference API. No Dockerfiles, no Kubernetes YAML, no tears.
Deployer().deploy(model) # That's literally it
Step 3: Monitor
Every deployment is tracked. See what's running, when it shipped, which version, and roll back if something goes wrong.
# From Python registry.deployments("churn-predictor") [ { version: "1.2.0", status: "live" }, { version: "1.1.0", status: "retired" } ]
# Or from the CLI $ pydstk deployments list churn-predictor VERSION STATUS DEPLOYED 1.2.0 live 2 hours ago 1.1.0 retired 3 days ago 1.0.0 retired 2 weeks ago
Comparisons
Existing tools are either too bloated, too proprietary, or too painful. Here's how dstk stacks up.
| Capability | dstk | MLflow | SageMaker | Azure ML |
|---|---|---|---|---|
| Open source | Yes | Yes | No | No |
| Immutable model registry | Yes | Partial | Yes | Yes |
| One command deploy | Yes | No | Partial | Partial |
| Hardware agnostic | Yes | Yes | No | No |
| Minimal configuration | Yes | No | No | No |
| Standard inference API | Yes | Partial | Yes | Yes |
| No vendor lock in | Yes | Yes | No | No |
| Doesn't suck | Yes | Partial | Partial | Partial |
3
Lines to deploy a model
0
Dockerfiles to write
0
YAML files to maintain
100%
Open source, forever