An end-to-end MLOps pipeline showcasing model training, versioning with MLFlow, CI/CD deployment to Google Cloud Run, and interactive 3D visualization of CNN activations.
Instructions: Draw a digit and click "Predict!" to query the deployed model endpoint. The API returns predictions and layer activations, visualized in real-time 3D (drag to rotate, scroll to zoom, right-click or Shift and drag to pan, double-click to recenter).
MLOps in practice:
A CNN trained in TensorFlow/Keras logs its hyperparameters, metrics and the model
artifact itself to the same shared MLflow server used by my other projects. The API
never ships a bundled model file. It pulls whatever version is currently aliased
champion in the Model Registry at startup.
FastAPI service on Cloud Run. Each request goes through staged error handling
(decode, preprocess, predict, extract activations), so a failure in one stage (say,
activation extraction) degrades gracefully instead of losing the prediction. A
/health endpoint reports whether the model actually loaded.
GitHub Actions builds a Docker image on every push to main, pushes it to Artifact Registry, and deploys straight to Cloud Run, with no manual deploy step between committing code and it being live.
MLOps Pipeline Overview:
This project demonstrates a complete MLOps workflow: the model is trained on MNIST data, versioned in MLFlow Model Registry, and deployed to Google Cloud Run as a containerized FastAPI service. When you draw a digit, the request flows through the interactive canvas to the production endpoint, which returns predictions and internal layer activations for real-time 3D visualization.