FinSentiment MLOps Pipeline
ABOUT THIS PROJECT
End-to-end MLOps pipeline for financial news sentiment classification — trained, versioned, tested, containerised, and deployed to Azure with a full CI/CD pipeline.
Classifies financial headlines as positive, neutral, or negative using scikit-learn (90% accuracy, 0.90 weighted F1). MLflow handles experiment tracking and model versioning. FastAPI serves predictions via REST API with 9 automated pytest tests and a quality gate that blocks bad models from shipping. Containerised with Docker, pushed to Azure Container Registry, and deployed to Azure Container Apps in UK South — auto-scaling 1–3 replicas. CI/CD via GitHub Actions runs in under 4 minutes. Streamlit UI for interactive inference.
WHAT I LEARNED
MLflow experiment tracking changes how you think about model development — every run is logged, every metric is comparable, and you stop guessing which version was best
A quality gate in CI/CD (blocking deployment if F1 drops below threshold) is what separates a pipeline from a toy — the model has to earn its deploy
pytest for ML isn't just unit testing — testing prediction schema, response time, and edge case inputs catches production failures before they happen
Docker makes the 'it works on my machine' problem disappear, but writing a clean multi-stage Dockerfile for a Python ML app takes more thought than expected
Azure Container Apps auto-scaling is deceptively simple to configure and genuinely impressive to watch — zero-to-replica in seconds under load
TECH STACK
LIVE PREVIEW
Having trouble viewing? Open in new tab