Hanhee Lee

Hi, I'm Hanhee Lee, a 4th-year Engineering Science, Machine Intelligence student at the University of Toronto, graduating May 2027.

Leading the 100-person engineering department at UTMIST. Previously worked on speech and audio ML (CLAP source separation, LLM TTS with GRPO, synthetic data) at Huawei, an agentic tax-recommendation worker at Savi Finance, and PEMFC modeling at the National University of Singapore.

I like taking ML end-to-end into something people can actually use. That's how IMI Big Data & AI (1st place, $15,000) and Eyas (Best Agent, Hugging Face Build Small Hackathon) came about.

Outside of ML, I do endurance sports — 2 Ironmans and 4 marathons so far — and film along the way.

The best way to know me is a conversation. Reach me by email (hanheeeng [dot] lee [at] mail [dot] utoronto [dot] ca) or LinkedIn. See experience or my CV for the details.

"If you only do what you can do, you will never be more than you are now." — Master Shifu

News

Education

University of Toronto
Bachelor of Applied Science in Engineering Science — Machine Intelligence Major
  • Relevant coursework: ML Theory, RL, Control Theory, Probability & Statistics, Operating Systems, Matrix Algebra & Optimization

Experience

Machine Learning Research Engineer — Huawei
Toronto, Canada
  • Optimized contrastive language-audio pretraining (CLAP) embeddings for source separation, achieving +1dB SDRi across 7 classes
  • Built a data-cleaning pipeline using large foundation models over ~120k samples, filtering 25% of leaked or misclassified audio
  • Implemented SFT and GRPO with emotion rewards on an LLM-based TTS model, resulting in +15% Emo2Vec accuracy and expressiveness across 6 emotions
  • Built a 2-stage, scalable synthetic data pipeline producing ~1000 hours of audio
Software Engineer Intern — Savi Finance
Toronto, Canada
  • Built an agentic tax-recommendation worker that returns structured JSON deduction recommendations
  • Shipped 2 Mongoose schemas and 7 GraphQL resolvers for recommendation lifecycles on edge devices
  • Enforced schema-validated agent outputs across 12 financial recommendation types
Applied Machine Learning Researcher — NUS
National University of Singapore · Prof. Erik Birgersson's Lab · github / demo / slides / project
  • Trained a 50k-parameter MLP for fuel-cell dynamics, achieving 3% MAE on an unseen test set
  • Developed a genetic search algorithm over the MLP objective to design fuel cells, validated in COMSOL simulation at 2% error
  • Tuned hyperparameters with Optuna across 30+ configurations, cutting iterations by 40% and MAE by 15% vs. grid search
Vice President of Engineering — UTMIST
University of Toronto Machine Intelligence Student Team
  • Leading a 100-person Engineering Department across 12 ML project teams
Machine Learning Projects Director — UTMIST
  • Directed 4 technical teams (~40 developers) to 4 UTMIST showcase projects
  • Standardized project proposal and repository templates, reducing onboarding time and siloing
Machine Learning Engineer Team Lead — UTMIST
DeepSlop Detector · github / project
  • Applied transfer learning to large backbone models for detecting AI-generated images

Projects

Click a project to expand.

IMI Big Data & AI: AML Detection Platform 1st place · $15,000 Team 33 · Oct. 2025 – Apr. 2026 · Python, SHAP, Next.js Pattern-based AML detection, SHAP explanations, and a Next.js knowledge library on synthetic Canadian banking data. github · slides · linkedin
  • Engineered 44 features across 61k customers, mapped to 254 FINTRAC-backed red flags
  • Selected Isolation Forest for anomaly scoring under ~1% label scarcity
  • SHAP explanations mapping top features to AML patterns under a 4-tier risk model
  • Shipped as a Next.js app (knowledge library, predictions, React Flow graph)
Eyas: AI Security Camera Agent Best Agent · $1,000 Team (Javier Huang, Hanhee Lee, Joe Lee) · Jun. – Jul. 2026 · Hugging Face Build Small Hackathon On-device CCTV agent for small retail — tracking → VLM → LLM reasoning, bilingual UI, Gradio demo on Hugging Face Spaces. github · space · demo video · field notes · linkedin

Eyas architecture diagram

  • Constraint: on-device, no cloud inference; ~8.7B params on a laptop CPU (Best Agent among 817 teams)
  • Pipeline: YOLO11n+BotSORT → MiniCPM-V → Nemotron 3 Nano 4B → TinyAya + VoxCPM2
  • JSON-schema event logging within a 4096-token context budget
PEMFC Performance Prediction & Design Optimization Summer research, NUS (Prof. Birgersson's Lab) · May – Aug. 2024 · PyTorch, MATLAB, Optuna, COMSOL Dual MLPs for PEMFC thermal/pressure prediction (~3% MAE) plus genetic design search (~2% error vs. COMSOL). github · live demo · presentation
  • Dual MLPs (43,961 parameters) for thermal/pressure modeling, ~3% MAE
  • Genetic search over those networks as objectives, ~2% error vs COMSOL across 50+ scenarios
  • Optuna over 30+ configs: −15% MAE and −40% training time vs grid search
DeepSlop Detector: AI-Generated Image Detection in progress ML Engineer Team Lead, UTMIST · Jan. – Jul. 2026 · ~10 contributors · PyTorch, torchmetrics, HuggingFace Datasets Shared PyTorch data pipeline over 10+ AI-forensics datasets, transfer-learning baselines across CNN/ViT backbones, and a standardized evaluation harness against 43 diffusion generators. github
  • Unified PyTorch loader over 10+ forensics datasets (local + HuggingFace streaming)
  • Transfer-learning baselines (ResNet, ViT, EfficientNet, ConvNeXt) plus frequency/spatial-domain features
  • Evaluation harness against 43 diffusion generators via torchmetrics
  • Led the ML engineering team (~10 contributors); in progress, no published accuracy
InstruNET: Multi-Instrument Identification Course project · Jan. – Apr. 2025 · Python, PyTorch, Librosa, scikit-learn 82% accuracy on multi-label instrument classification across 14 instrument classes, +10% over Google's YAMNet baseline, with a 950K-parameter CNN. github · live demo
  • 3-layer CNN (950K params), multi-label so overlapping instruments are handled
  • SMOTE + class balancing (+25% dataset diversity); instruments with <10 samples dropped
  • Evaluated against YAMNet as the comparison baseline
Smart Fit: Wearable Exercise Classification Personal project · Dec. 2024 – Jan. 2025 · Python, scikit-learn, NumPy, Pandas 96% accuracy classifying 6 barbell exercises from wearable accelerometer/gyroscope data. github
  • Compared Random Forest, Neural Networks, Decision Trees, and KNN
  • 15+ temporal/frequency features (low-pass, PCA, frequency abstraction), +10% vs raw-signal baseline