Guides

Models & serving

Track experiments, register model versions, and serve them as endpoints, with an MLflow-compatible API and a drop-in Python SDK. Artifacts upload to your own S3 via presigned URLs.

Track experiments

Already use MLflow? Change one import. polnor.mlflow mirrors the tracking API and logs to your workspace.

from polnor import mlflow

with mlflow.start_run(experiment="churn-v3"):
    mlflow.log_param("lr", 3e-4)
    for step, loss in train():
        mlflow.log_metric("loss", loss, step=step)
    mlflow.log_artifact("model.pt")

Supported: start_run, log_metric(s), log_param, log_artifact, set_tag, autolog, get_metric_history. Metrics are stored both as the latest value and as a full step/value/timestamp history.

The tracking API

EndpointPurpose
POST …/runs/{run}/metricsLog one metric (with optional step)
POST …/runs/{run}/metrics/batchLog many metrics at once
POST …/runs/{run}/paramsLog parameters
GET …/runs/{run}/metrics/{key}Full metric history
POST …/artifacts/presigned-urlUpload/download to your S3

Serve a model

Promote a model version to a serving endpoint. Endpoints are listed back per model version in the console's Serving tab.

polnor models serve churn-v3 --version 7 --name churn-prod
GET /api/v1/models/{id}/endpoints

Artifacts never pass through the control plane, uploads and downloads go straight to your own bucket via presigned URLs.