Skip to content
AI360Xpert
Beta

MLflow Vision Experiment Log

Local-first experiment records plus a model registry, so params, metrics and files stay bundled per vision run.

MLflow files three runs where 0.85 promotes to the registry
MLflow files three runs where 0.85 promotes to the registry

Why Does This Exist?

A trained vision model is more than weights: the params, code version, data slice and metrics that produced it decide whether it can ship. Folders of checkpoints lose that bundle. MLflow keeps it: tracking records params, metrics and artifacts per run, and the registry promotes one bundle through stages. Dataset preparation inputs and classification outputs stay attached to the file that ships toward serving.

This page covers the record contract, one best-pick fixture, and appropriate use. Release 3.15.1 was the current patch verified in-session.

Think of It Like This

A museum catalog with storage rooms

Each artifact gets a card: origin, measurements, photos, room number. The best pieces move to the exhibition hall with their cards attached, never as loose objects.

MLflow runs are the cards, the registry is the exhibition hall. The analogy stops at dust: museum cards never execute, while registry models must still run in a fresh environment.

How It Actually Works

Input is a run with logged params, metrics and artifact files. Output is a searchable run table plus staged model versions. Purpose is reproducible handoff from experiment to deployment. Appropriate use is team training with promotion gates and artifact review. Log the data slice id with every run, because identical code on different slices is a different experiment.

Best-pick fixture

Take run scores [0.7,0.85,0.8][0.7, 0.85, 0.8]. The max is 0.850.85 at index 1. The registry promotes that run's bundle, not the bare number. The diagram files all three and stars the middle one.

Code

Best-pick in plain Python:

def best(xs: list[float]) -> tuple[int, float]:    idx: int = 0    for i in range(1, len(xs)):        if xs[i] > xs[idx]:            idx = i    return idx, xs[idx]  # winner position and score

print(best([0.7, 0.85, 0.8]))  # -> (1, 0.85)

Index 1 wins at 0.85 and its bundle promotes.

Watch Out For

Promoting weights without the logging environment

A registry model without its dependency and preprocessing record loads somewhere and predicts noise. The symptom is a staged model that passes review and fails in serving. Fix it by logging the environment and preprocessing beside the weights, and testing promotion in a clean container.

The Quick Version

  • MLflow maps each run to params, metrics and artifacts, then stages winners.
  • Scores 0.7, 0.85, 0.8 promote index 1 at 0.85.
  • Log the data slice id with every run.
  • Use it for team handoff from experiment to deployment.
  • Ship the environment record with the weights.