Engineers Clinic
ExpertSoftware trackFP-AI-08

Model registry, drift monitoring and an automatic retraining trigger

Take an existing demand model into production properly: tracked experiments, a model registry, drift and performance monitoring, and a retraining trigger with a promotion gate.

AI, Data & AnalyticsMLOps
6 Guided Steps48h Internship TierSubmit: GitHub repo with Docker Compose stack + replay script and logs over 120 days + monitoring dashboard screenshots + docs/runbook.mdVerified CertificateAI Rubric Graded
Program Overview

Industry project · for Kestrel Mobility, an e-scooter and bike-share operator running 9,000 vehicles in 6 cities

Kestrel predicts hourly rental demand for each of its 420 docking zones, so night crews know where to move scooters. The model was trained once, eight months ago, by a data scientist who has since left. Nobody knows which data or code produced the file in production. Since a new city opened and a competitor arrived, the operations team says the predictions "feel off", but nobody can prove it, because no one compares predictions with actual rentals.

The head of data wants the model treated like software. Every training run is logged. Every production model can be traced to its data, code and metrics. Drift is checked daily. When performance drops past a set limit, retraining starts automatically, but the new model only replaces the old one if it is better on a recent holdout.

You will use the public UCI Bike Sharing dataset (hourly rentals with weather and calendar fields) as Kestrel's history, and replay it day by day to simulate production, including a deliberate shift you introduce, such as a new-city effect or a weather pattern change.

You will build: - experiment tracking and a model registry with MLflow; - a batch prediction job; - data-drift checks (PSI on key features) and performance monitoring (MAE against actuals with a 48-hour delay); - a retraining pipeline triggered when 7-day MAE rises more than 20% above the registered model's validation MAE; - a promotion gate and one-command rollback.

Done looks like a repo that runs the whole loop locally with Docker Compose, a replay over 120 simulated days showing at least one drift alert and one automatic retrain, and a runbook the on-call engineer can follow.

Experiment trackingModel registry and versioningData drift detectionPerformance monitoringPipeline orchestrationWriting runbooks
What you submit

GitHub repo with Docker Compose stack + replay script and logs over 120 days + monitoring dashboard screenshots + docs/runbook.md

Stack: Python, MLflow, Docker Compose, scikit-learn or LightGBM, pandas, pytest

How it is graded
  • Lineage and registry20

    Every registered model links to its data version, git commit, parameters and validation metrics, and stages are used correctly.

  • Monitoring that catches the shift25

    PSI and delayed MAE are computed daily in the replay, and the injected shift raises an alert within 7 simulated days.

  • Safe retraining25

    Retraining triggers on the stated rule, the promotion gate compares challenger and champion on the same recent holdout, and a worse challenger is rejected at least once.

  • Operable system15

    docker compose up runs the stack, and rollback to the previous version takes one command.

  • Runbook15

    The runbook tells an on-call engineer what each alert means, what to check and how to roll back.

Pass 60% · Merit 75% · Distinction 90%

Learning Outcomes
Track experiments and register models with lineage
run batch inference reproducibly
detect data drift and performance decay with chosen thresholds
trigger retraining with a promotion gate
write an operational runbook with rollback
Target Audience

Engineering Students

Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.

Aspiring Developers

Developers who want to build proof-of-work capstone projects for tech resumes.

Job Seekers

Graduates looking for AI-evaluated code review & verified industry credentials.