A Llama-style language model written from scratch in PyTorch, small enough to pre-train on a laptop, then fine-tuned with reinforcement learning.
Appendix A. All projects
Everything I have built that I am happy to discuss, grouped by topic. A selection, with figures, is on the main page under §1 Selected work.
LLMs and retrieval
A local assistant that answers programming questions from a code corpus, reviews its own answers and retries when they fall short.
Local RAG chatbot
Chat with your own PDFs, fully offline. LangChain and FAISS handle retrieval, a local Ollama model (Phi-3) writes the answers, and Streamlit provides the interface.
Reinforcement learning
A reimplementation of the MOReL offline reinforcement learning framework with the improvements I proposed in my MSc thesis. It outperforms the original on the D4RL HalfCheetah benchmark.
Neural-network ensembles that learn how an environment evolves from offline data, comparing deterministic and probabilistic models. They are the learned models behind J-MOReL and MBiCEM.
A trajectory planner that runs iCEM on learned dynamics models and heavily penalises the predictions the model is unsure about.
Data and MLOps
An end-to-end machine learning system, from Spark data processing to a public forecasting app on Google Cloud.
Tools and other work
Matplotlib GitHub theme
Light and dark Matplotlib themes that match GitHub's colours, so plots in a README follow the reader's theme. Most of the plots on this site were made with it.
View My Satellites
A Unity app that shows where Earth-orbiting satellites are right now, in an interactive 3D scene. Built by a team of students during the NASA Space Apps Challenge.