ML engineer and researcher working on diffusion planners, RL fine-tuning and federated learning.
I have just finished the MSc in Data Science and Machine Learning at UCL, with a co-first-authored NeurIPS 2026 workshop paper on masked diffusion planners and a thesis on federated gradient boosting for insurance pricing, in collaboration with Ki, Lloyd's first fully digital follow syndicate.
Open to ML engineering, applied research and data science roles in London. Eligible for the UK Graduate visa, no sponsorship needed.
plan · 64 movesdenoise 10/10
Illustrative: a masked diffusion planner drafts all 64 moves at once over 10 denoising steps and can remask and revise any of them.
Masked diffusion planners denoise a whole action plan at once and can revise any part of it. Fine-tuning them on return with a return-weighted ELBO, the standard tractable objective, makes them worse.
No condition beats the starting checkpoint on Craftax Classic. The planner scores 11.81; after 500 iterations the baseline scores 8.22, and none of 25 conditions (three seeds each) ends above where it started.
The return signal does not explain the drop. An exact gradient decomposition puts the return term at about half the imitation gradient, yet advantage clipping, which cuts it fivefold, scores lower still.
Most of the drop is a sampling mismatch. In a same-host re-run, collecting rollouts at the evaluation settings shrinks the drop from 3.68 to 0.26 points.
RoleCo-first author and lead developer of both codebases (Craftax in JAX, MiniHack in PyTorch); coursework team of four, January to September 2026.
Same world and seed (seed 9, picked by a fixed rule; the script prints the sweep). Right: the paper's baseline_rl condition, retrained with the paper command. The icons are Craftax's 22 achievements; red marks the five the planner unlocked before fine-tuning but not after.MiniHack Room-Random-15x15, evaluation layout 13, won in 7 moves by its first plan (picked by a fixed rule; the script prints it). Only 2 of the 50 evaluation layouts are won that directly; most wins replan several times. On this room it wins 38% of episodes, and 48.5% across the four in-distribution layouts (paper Table 8).BibTeX
@inproceedings{khan2026returnweighted,
title = {Return-Weighted {ELBO} Fine-Tuning Degrades Masked Diffusion Planners},
author = {Muhammad Ali Khan and Mathis Weil and Ahmet H. G{\"u}zel and Jack Parker-Holder and Ilija Bogunovic},
booktitle = {Beyond Next Token Prediction: Diffusion and Flow Models for Next-Generation Decoding},
year = {2026},
url = {https://openreview.net/forum?id=VGyjG8Gy29}
}
Federated Gradient Boosting for Commercial Insurance Risk Modelling
MSc thesis · UCL 2026
MSc thesis, UCL, in collaboration with Ki through UCL IXN · Supervisor: Prof Philip Treleaven · September 2026
Insurers cannot pool their claims data. I built a federated XGBoost benchmark in which each insurer keeps its raw records and shares only summary statistics such as gradient histograms, verified that it reproduces the pooled model, and measured insurer by insurer, under a pre-registered protocol, when sharing helps and when it hurts. Results here use the public freMTPL motor data: 678k policies across ten simulated insurers.
Federation reproduces pooling. On equal random splits it recovers a median 0.99 of the pooled model's per-insurer gain (pre-registered bar: 0.5), and a correctness gate checks it against the pooled model.
Where sharing hurts, and a fix. As rate multipliers push claim rates apart, the shared model prices 0, then 5, then 7 of 10 insurers worse than their own model (worst: 16.2 points of deviance explained). On this dial, refitting one intercept per insurer puts all ten back above.
Method panels are illustrative; results are public freMTPL data across ten simulated insurers, with claim rates pushed apart by rate multipliers.
Other projects
Eviction-aware fine-tuning
UCL · 2026 · led the implementation
LoRA fine-tuning of Llama-3.2-1B while a learned policy (NAMM) evicts 75 to 85% of the KV cache: 28.9 F1 on five LongBench QA tasks, against 19.0 for standard fine-tuning under the same eviction and 32.6 with the full cache. UCL team project of five, built on Sakana AI's NAMM.
Semantic search and a RAG API over 1,200+ IBM SkillsBuild courses (Sentence-BERT, pgvector, FastAPI): Recall@20 0.899, MRR 0.843 and MAP@20 0.712 on 50 annotated queries; 27.6 ms average latency against 62.3 and 48.4 ms for the keyword and BM25 baselines, which returned results for only 4% and 6% of queries. QMUL final-year project with IBM; sole developer of the semantic search component.
Planning- and appeal-outcome risk models (Random Forest, XGBoost) served through FastAPI. 1st place with a UCL team at the Bidwells Real Estate Planning Hackathon, November 2025.
MSc Data Science and Machine Learning, University College London · thesis submitted September 2026, result pendingStatistical NLP 80/100 · Open-Endedness and General Intelligence 81/100
2025 - 2026
Postgraduate Teaching Assistant, UCL · weekly practicals and marking for 280+ MSc and BSc students across four modules
2022 - 2025
BSc Computer Science, Queen Mary University of London · First Class Honours (83%)Lab demonstrator, Sep 2024 - May 2025, 400+ undergraduates
Awards
Final-Year Prize for Outstanding Academic Achievement, QMUL 2025 · Demonstrator of the Year 2025 (one of 14 in computer science) · 1st place, Bidwells Real Estate Planning Hackathon, November 2025 · 2nd of 20 teams, UCL Business Games (EY-Parthenon), 2025
Interests
Compute-efficient large language model inference · generative models for sequential decision-making · federated learning