Parallel icon
Request icon
Script icon
Process icon
If icon
SlackIncomingWebhook icon
Pause icon
Schedule icon

Evaluate CPU Models and Approve MLflow Champion Promotion

Evaluate MLflow classifiers on one CPU dataset, compare quality and resource limits, and verify a champion alias promotion after human approval.

Categories
AI

How it works

  1. Resolve candidate/champion aliases and pin READY version/source identities.
  2. Load both trusted classification models in fresh, sequential CPU processes on one worker. Evaluate one held-out CSV, warm up, measure p95 prediction latency and Linux process peak RSS, and log new MLflow runs plus raw samples.
  3. Compare dataset/runtime/hardware contracts, quality floors and resource regressions; save JSON and Markdown gate reports.
  4. With promotion enabled, Pause for approval (default reject) and the exact report SHA256. Recheck report age, aliases, evaluation evidence and artifact hashes; update champion once and verify its artifact and predictions. Rejection or failed gates do not promote.

What you get

  • Metrics, provenance, six gate results, report SHA256 and a promotion receipt.
  • BLOCKED, ELIGIBLE_FOR_REVIEW, APPROVAL_REJECTED or verified PROMOTED outcomes. Check execution state too: a failed write/verification can leave an unknown alias outcome.
  • A single execution slot, including while paused, and failure alerts.

Who it's for

MLOps teams releasing CPU tabular classifiers through MLflow aliases.

Why orchestrate this with Kestra

Tie evaluation, stored evidence, approval and verification to one execution, with native retries, branching and concurrency control.

Prerequisites

Linux Process worker with Python 3.12, MLflow 3.17.1, scikit-learn 1.9.1, NumPy and pandas; Python/Slack plugins; reachable registry/artifacts. Both trusted scikit-learn pyfunc models must return one deterministic label per row. Create the evaluation experiment. Supply a held-out CSV (target plus features, no missing values); use an idle dedicated CPU worker for meaningful comparisons. Peak RSS includes imports/model loading.

Promotion is off by default. Before enabling it, exclude ALL other alias/artifact writers for the full execution and set exclusive_registry_access=true. MLflow alias updates have no compare-and-swap; flow concurrency does not lock other clients. Restrict Kestra resume permissions to release approvers. No serving rollout or automatic rollback occurs.

Secrets

  • MLFLOW_TRACKING_URI: registry base URL.
  • MLFLOW_TOKEN: bearer credential for reads and evaluation logging; alias-write permission only when promoting.
  • SLACK_WEBHOOK_URL: incoming webhook for release notices.

Quick start

  1. Register two trusted versions, set distinct aliases, create the experiment, and configure secrets/dependencies.
  2. Upload the held-out CSV as evaluation_data; run with promotion disabled and choose limits appropriate to the worker.
  3. Test a blocked candidate. Then opt into exclusive promotion and review assess/report.md. Resume with approved=true, its report_sha256 and a reason; inspect promotion.json and the live alias.
  4. Keep the schedule disabled until its required dataset input is configured.

How to extend

Adapt evaluation for regression/detection, add deployment/canary verification after registry promotion, or archive receipts externally.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.