major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
93 lines (70 loc) • 3.35 kB
Markdown
---
name: mlflow
description: "Track machine-learning experiments, parameters, metrics, artifacts, and model-registry changes with MLflow."
category: scientific
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["mlflow", "experiment-tracking", "model-registry", "mlops", "python", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
---
# MLflow Experiment Tracking AI Skill Guide
## Overview & Engine Architecture
MLflow records experiments as runs with parameters, metrics, tags, and artifacts. A tracking server (or local `mlruns/`) stores metadata; the Model Registry promotes versions through stages/aliases. Agents log enough to reproduce a run (code version, data URI, params), avoid silent metric overwrites, and register only evaluated candidates.
```
Training code
-> mlflow.start_run
-> log_param / log_metric / log_artifact
-> log_model -> Registry (aliases/stages)
```
## When to use this skill
- Comparing hyperparameters and model families
- Attaching plots, confusion matrices, and conda/pip envs to runs
- Promoting models for batch/online inference with audit trail
## Operational directives
1. Set `experiment_name` explicitly; do not dump everything into `Default`.
2. Log data version / query / path as params or tags.
3. Use nested runs for sweeps when parent/child clarity helps.
4. Prefer `log_model` with signature/input example for serving readiness.
5. Gate registry promotion on held-out metrics, not training loss alone.
## Tracking example
```python
import mlflow
import mlflow.sklearn
from mlflow.models import infer_signature
mlflow.set_tracking_uri("http://127.0.0.1:5000")
mlflow.set_experiment("churn-models")
with mlflow.start_run(run_name="hgb-v3") as run:
mlflow.log_params({"max_depth": 6, "learning_rate": 0.08})
# ... train sklearn pipeline `clf` ...
mlflow.log_metrics({"roc_auc": 0.91, "f1": 0.74})
sig = infer_signature(X_train, clf.predict(X_train))
mlflow.sklearn.log_model(clf, artifact_path="model", signature=sig)
mlflow.set_tags({"data": "s3://bucket/churn_v4.parquet", "git_sha": "abc123"})
```
## CLI
```bash
mlflow ui --backend-store-uri sqlite:///mlflow.db --port 5000
mlflow runs list --experiment-name churn-models
```
## Common failures
| Symptom | Cause | Fix |
| --- | --- | --- |
| Empty UI | wrong tracking URI | align train + UI URIs |
| Cannot compare | inconsistent metric names | standardize naming |
| Huge artifacts | logging full datasets | log hashes/paths instead |
| Registry clutter | auto-register every run | register only candidates |
## Best practices
- One primary metric per experiment for sorting.
- Log environment (`mlflow.sklearn.autolog` carefully - still review).
- Immutable training data snapshots or lake table versions.
- Pair with `@scikit-learn` / `@pytorch` / `@huggingface-transformers`.
## Limitations
- Auth, multi-tenant servers, and artifact stores need ops setup.
- Autolog can miss custom loops - log manually when needed.
- Model serving deployment is separate from tracking.
## Related skills
- `@scikit-learn` / `@pytorch` - training frameworks
- `@airflow` / `@prefect` - schedule training jobs that log to MLflow
- `@jupyter` - exploratory runs still should log when kept