AI student at UAB · Barcelona
I'm building a portfolio of machine learning projects from scratch — from classical regression to transformers with LoRA and CNNs from the original paper. Each project is a complete pipeline: data, training, evaluation, prediction, tests, and (where it makes sense) a live web demo you can try right now.
Projects
Fine-tunes DistilBERT for binary sentiment classification using LoRA — only 0.3% of parameters are updated, producing a ~1 MB adapter that matches full fine-tuning accuracy. Three-way comparison: zero-shot baseline vs LoRA vs full fine-tune. Served via FastAPI with a web interface.
Predicts bike availability at Barcelona Bicing stations 15 minutes ahead. Time-series regression with proper temporal train/test split, lag features, rolling means, and a persistence baseline to beat. RandomForest and LightGBM compared. REST API + web demo.
A from-scratch reimplementation of ResNet-20 from the original He et al. 2016 paper. Nothing imported from torchvision.models — BasicBlock, residual connections, batch norm, He initialisation, all written by hand. Trained on CIFAR-10. Drag-and-drop web demo.
Fine-tunes SmolLM2-360M with LoRA to act as a machine learning tutor. Trained on 40 curated Q&A pairs with chat templates. Uses HuggingFace Trainer with gradient accumulation and cosine LR scheduling. Includes automated evaluation comparing base vs fine-tuned outputs.
Predicts a student's final grade from study habits, sleep, attendance, and previous grades. Compares Linear Regression, Ridge, Lasso, Decision Tree, Random Forest, and SVR. Proper train/test split with StandardScaler fitted only on training data.
K-Nearest Neighbours implemented from zero — Euclidean distance, majority voting, no scikit-learn. Classifies tree species from physical measurements. Built to understand the algorithm at the lowest level before using library implementations.