MACHINE LEARNING / MLOPS

House price prediction, built beyond the notebook.

A production-style machine learning system designed to demonstrate how a model moves from training and validation through automated deployment and API-based inference.

THE PROJECT

From model to system.

The goal is not simply to produce an accurate prediction. The project demonstrates the engineering required to make the model reproducible, testable and deployable.

01 / PROBLEM

House price prediction

Train a machine learning model capable of estimating house prices from property characteristics.

02 / DATA

Structured features

Property data is transformed into model-ready features before being passed through the training pipeline.

03 / ENGINEERING

Automated workflow

Training, validation, registration and deployment are connected through an automated CI/CD workflow.

04 / INFERENCE

API predictions

The trained model is packaged with BentoML and exposed through an inference API used by the prediction interface.

SYSTEM ARCHITECTURE

From source code to inference.

The system separates model development from deployment while keeping both workflows automated and reproducible.

SOURCE
01 / SOURCE CONTROL GitHub Application code, model code and CI/CD workflow definitions
CONTINUOUS INTEGRATION
02 / AUTOMATION GitHub Actions Triggered by changes to the development branch
03 / TRAINING Model Training Features are retrieved and a new model candidate is trained
04 / VALIDATION Deepchecks Automated validation determines whether the candidate can progress
MODEL LIFECYCLE
05 / TRACKING MLflow Experiments, metrics and model artifacts
06 / REGISTRY Model Registry Versioned model selected for downstream deployment
CONTINUOUS DELIVERY
07 / PACKAGING BentoML Registered model packaged as an inference service
08 / CONTAINER Docker Reproducible container image for deployment
09 / REGISTRY AWS ECR Versioned container images stored in AWS
INFERENCE
10 / SERVING Prediction API The deployed BentoML service receives property features and returns a house-price prediction

MLOPS WORKFLOW

What happens when code changes?

01

Code is pushed to GitHub

Changes to the development branch trigger the continuous integration workflow.

02

The model is trained

The CI workflow executes the training pipeline, producing a new model candidate from the available feature data.

03

The candidate is validated

Automated validation checks are executed before the model is allowed to progress through the pipeline.

04

The model is registered

A validated model is registered so that the deployed artifact can be associated with a specific model version.

05

CD packages the service

The deployment workflow packages the model-serving application and builds its container image.

06

The image is pushed to ECR

The container image is published to Amazon ECR, providing a versioned deployment artifact.

07

The model becomes an API

BentoML exposes the packaged model as an inference service that can receive property data and return predictions.

TECHNOLOGY

Tools used across the lifecycle.

Python Training and application code
MLflow Experiment tracking and model management
Feast Feature store workflow
Deepchecks Data and model validation
BentoML Model serving and packaging
Docker Containerized deployment
GitHub Actions Continuous integration and delivery
AWS ECR Container image registry

IMPLEMENTATION STATUS

What is actually running?

The portfolio distinguishes implemented components from infrastructure that is still being developed.

COMPONENT STATUS
Model training Implemented
Feature store Implemented
Model validation Implemented
MLflow experiment tracking In development
Model registry Implemented
Continuous integration Implemented
Continuous delivery Implemented
BentoML serving Implemented
Docker containerization Implemented
AWS ECR Implemented
Prediction API Implemented
Production monitoring Planned

LIVE INTERFACE

Test the model.

Use the prediction interface to send property features to the model-serving API and inspect the returned prediction.

Open prediction interface ↗