Projects
List of my projects from the most recent to the oldest.

FlashAttention-2
Built FlashAttention-2 in Triton, including forward and backward pass for self-attention. Supports sliding window, causal and global attention.

Mini-PaliGemma 2
Minimalist implementation of PaliGemma 2 and PaliGemma VLM from scratch. Weights can be loaded for inference, and detections are displayed on input images.

Conditional WGAN-GP
Conditional WGAN-GP for graph generation based on descriptions for a Kaggle competition.

Word2Vec
Word2vec and a convolutional classifier using its embeddings to predict the sentiment of movie reviews. Implemented from scratch using Pytorch.

Mini-Hourglass
Minimalist implementation of Hourglass, a character-level Hierarchical Transformer from scratch. Built the entire pre-training, fine-tuning and inference process for English haikus generation.

Mini-BERT & Emotion classification
Minimalist implementation of BERT from scratch. And fine-tuned a pre-trained BERT model for emotion classification. Deployed it using Streamlit.

VolleyJudge
Deployed a volleyball referee hand signal detection and classification model with Streamlit, using OpenCV, MediaPipe, Pytorch, LSTMs/CNNs and a custom made dataset.

Iterative Conditional Estimator
Implementation and application of the ICE (Iterative Conditional Estimator) algorithm to a Gaussian mixture generated by iid sources, then to Gaussians conditionally generated by a Hidden Markov Model.

Video Game Match Prediction
Machine Learning prediction model for forecasting the outcomes of League of Legends matches after 10 minutes of gameplay. Deployed it using Flask.

Portfolio Website
Personal portfolio website built using an Astro template. Hosted on GitHub Pages.