I build ML systems that move from model training to real product experiences. This project demonstrates production-style AI engineering: data pipeline, model training, API serving, and user-facing integration.
Helps users discover relevant movies faster by ranking items based on historical user behavior.
- Designed a MovieLens 100K data pipeline for ratings and item metadata
- Implemented a Neural Collaborative Filtering model in PyTorch
- Built the full training + evaluation workflow with ranking metrics
- Implemented a FastAPI inference backend (
/health,/recommend) - Integrated recommendations into a frontend experience (with this repo also containing a Streamlit demo app)
- Python
- PyTorch
- FastAPI
- Next.js
- Training pipeline: data preprocessing, negative sampling, model training, evaluation
- API layer: production-style inference endpoints
- UI layer: interactive recommender demo
User → API → Model → Recommendations
- User submits
user_id - FastAPI receives request at
/recommend - Trained NCF model scores candidate items
- Top recommendations are returned
- Render Backend API: Deploying — Add Render URL
- Frontend UI (Vercel): Deploying — Add Vercel URL
- HR@10 ~ 0.54
- NDCG@10 ~ 0.31
- Production-style API for inference
- Artifact persistence for serving (
ncf.pt,user2idx.json,item2idx.json,items.csv)
- ML systems design
- PyTorch training pipeline development
- FastAPI backend engineering
- End-to-end deployment workflow
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 -m src.train
uvicorn src.service.api:app --reload
streamlit run app/app.py