From satellite imagery to pet-feeding fintech games — a reverse-chronological record of what kept me up at night.
202501
CS-552 Modern NLP · EPFL
LLMsDPORAGQuantizationEPFL
—0.631 preference pair accuracy
—47.3k STEM document corpus
—GPTQ W8A8 — 0.50GB quantized model
—Outperforms Vicuna-13B on alignment
EPFL Chat Tutor
Lightweight LLM-based tutoring system for STEM education
Built a lightweight LLM-based tutoring system for STEM education at EPFL. Fine-tuned Qwen3-0.6B-Base using Direct Preference Optimization (DPO) for open-ended questions and Supervised Fine-Tuning (SFT) for multiple-choice tasks. Integrated a RAG module with a 47.3k-document STEM corpus (FAISS + all-MiniLM-L6-v2) to reduce hallucinations. Applied post-training quantization (GPTQ W8A8 + SmoothQuant) to enable deployment on student devices with minimal accuracy loss. Our DPO model achieved 0.631 accuracy — on par with Vicuna-13B and outperforming Qwen3-4B despite being 20× smaller.
202502
EE-568 Reinforcement Learning · EPFL
Reinforcement LearningDPOPPORLHFEPFL
—DPO: 499.29 ± 1.01 return on CartPole
—PPO-RLHF: perfect 500 at 15k steps
—6 dataset sizes × 3 random seeds
—Custom KL-regularized DPO for sparse rewards
RLHF for Classic Control
Comparing DPO and PPO-RLHF in CartPole and MountainCar
Empirical comparison of Direct Preference Optimization (DPO) and PPO-RLHF on OpenAI Gym environments — CartPole-v1 and MountainCar-v0. Constructed preference datasets from expert and sub-expert policies trained via REINFORCE and PPO; varied dataset sizes (500–1000 pairs) to assess sample efficiency. PPO-RLHF reached perfect scores of 500 in CartPole at 15,000 training steps. DPO approached expert-level returns of 499.29 ± 1.01 at 20 epochs. A custom KL-regularized soft-label DPO variant was developed for stability in MountainCar's sparse reward landscape.
202503
CS-503 Visual Intelligence · EPFL
Computer VisionRobustnessViTResNetEPFL
—BlendedResNet18: 0.6722 at max corruption
—93.35% corruption type prediction accuracy
—0.4694 funky OOD vs 0.4460 pretrained baseline
—CIFAR-10 + TinyImageNet-200
Adaptive Data Augmentation for Unseen Corruptions
BlendedTraining beats pretrained ResNet on out-of-distribution corruptions
Explored adaptive strategies to improve neural network robustness to unseen corruptions on CIFAR-10 and TinyImageNet-200. Designed and evaluated Healer models (corruption prediction + classical correction via Wiener filter), Corrector models (U-Net / Transformer image restoration), BlendedTraining (auxiliary corruption-awareness heads), and Test-Time Training (TTT). BlendedResNet18 stood out — achieving 0.6722 accuracy at maximum corruption severity versus 0.5403 for pretrained ResNet18, with 93.35% corruption type prediction accuracy. TTT models collapsed near random performance, suggesting the auxiliary task destabilized classification.
202504
ECEO Semester Project · EPFL
Climate MLUNetViTResNetPyTorchEPFL
—UNet RMSE 2.08K · ACC 0.896
—Heatwave F1 peaks ~0.8 during active events
—CERRA 5.5km · 2011–2021 · 528×528 grid
—UNet > ViT > ResNet > Persistence > Climatology
European Heatwave Forecasting
Deep learning benchmarks for high-resolution extreme heat prediction from CERRA reanalysis
Introduced a novel high-resolution pan-European heatwave dataset derived from CERRA reanalysis (5.5 km, 2011–2021) and established a rigorous end-to-end forecasting pipeline. Benchmarked UNet, ViT, and ResNet against climatology and persistence baselines within the ClimateLearn framework for 2-meter temperature regression and CTX90 heatwave classification. UNet achieved the best performance across both tasks — RMSE 2.08K, ACC 0.896, F1 0.312 — with daily F1 scores peaking near 0.8 during active heatwave periods despite severe class imbalance. The work highlights the gap between general temperature accuracy and reliable rare-event detection.
Conditioning video generative models on GOES-16/17 satellite imagery
Tackled wildfire prediction by framing multi-spectral satellite image sequences as video and applying stochastic deep generative models to anticipate future fire behavior. Developed a novel stochastic temporal model whose dynamics are driven in a latent space — lighter and more interpretable than image-autoregressive recurrent networks. Trained on GOES-16/17 thermal Band 7 imagery. Achieved PSNR 40.43 and SSIM 0.934 on video reconstruction, outperforming prior state-of-the-art benchmarks on the dataset. Presented at the AAAI 2022 Fall Symposium on Climate Change in collaboration with NASA and NOAA.
202106
ML Internship · VinBrain
Medical ImagingSegmentationTransformersPyTorch
—Dice WT: 87% · TC: 77.3% · ET: 76%
—BraTS 2020 — 3D MRI volumes
—UNETR + SegResNet architectures
—Outperformed baseline models
Transformer Architecture for Brain Tumor Segmentation
Applying UNETR and SegResNet to the BraTS 2020 Dataset
Applied and fine-tuned transformer-based architectures to 3D brain tumor segmentation using the BraTS 2020 dataset from UPenn. Experimented with UNETR (Vision Transformer for volumetric segmentation) and SegResNet across 3D MRI volumes. Built custom data augmentations and preprocessing pipelines to improve 3D image fidelity and training stability. Achieved Dice scores of 87% (Whole Tumor), 77.3% (Tumor Core), and 76% (Enhancing Tumor), outperforming baseline models. Contributed to internal R&D on deploying AI for radiological diagnostics in clinical settings.
202107
Software Engineer · MoMo
React NativeFintechMobileGamification
—500K+ daily active users
—<200ms response time at scale
—60% DAU increase · Lunar New Year
—React Native + Vert.x + Firebase
Cashback Gamification — MoMo
A pet-feeding savings mini-app for 500K daily users
Designed and built a cashback gamification mini-app inside MoMo — Vietnam's largest e-wallet with 21M+ users. Players feed a virtual pig using in-app currency earned from transactions; the pig drops coins that can be donated to charity. Built fully on React Native with a Vert.x backend handling high-concurrency transactions and Firebase for real-time push notifications. Horizontally scaled to 500K+ daily active users with sub-200ms response times. The feature drove a 60% increase in DAU during Lunar New Year campaigns.