I’m currently working on a research project at Cambridge as part of my MPhil, applying deep learning to cancer diagnosis. Here are some slides I presented at a college conference. I’ll fill this page with more detail later in the year.
An AI alignment project completed at the end of the AISF course. Public demo in a HuggingFace space still pending a community grant. GitHub repo with full code available here. In cases where we don’t want to risk relying on RLHF to teach the model to refuse, we could leverage the model’s own understanding of risky behaviours (through SAE extracted features) and selectively steer the…
I’ve completed a research project with a small group, facilitated by SPAR. Our primary goal was to investigate the relationship between the complexity of a backdoor and its persistence to safety training. Notably, I designed and trained a family of arithmetic-based backdoors in llama3 (with QLoRA finetuning). Our code is on GitHub and a writeup of our findings is here. The shortened summary…
This is less of a blog post and more of a note on how I fixed my Anker 7 in 1 (with Ethernet) USB adapter, as the drivers don’t work by default on Linux. First, troubleshooting step is lsusb, it should show you the ASIX Ethernet device after plugging it in: ❯ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.
Edit: our paper is now published here. I’ve added the abstract below. ESEC/FSE 2022 accepted a paper I co-authored during my final year at university. Here is the preprint. Abstract Containers help share and deploy software by packaging it with all its dependencies. Tools, like Docker or Kubernetes, spawn containers from images as specified by a build system’s language, such as Dockerfile. A…
Introduction I've started using development environments with nix-shell for my personal projects. I greatly prefer the consistency of dropping into a nix-shell, over reading Python's venv manual for the umpteenth time, then yak-shaving into whether I should be using pyenv-virtualenv instead. Here's a typical shell.nix file for Python 3.10 and some common packages like numpy. { pkgs ? import…
I built a boid simulation with Blazor that allows you to toggle the three rules, as well some other options. Check it out here. Notably, you can switch between rendering in JS, or through Blazor’s API, with significant performance effects. (Spoilers: JS is way faster.)
This was a fairly extensive project undertaken as part of one of my modules, and although I don’t usually mention university work in Showcase, this is an exception since everything we did was self-learned. I was team leader for a team of two (including me), and we built a full-stack cross-platform mobile application designed to help the UK population track and share their wellbeing & steps.…
Posted to HN. Comments and discussion highly encouraged. Introduction This will be a short example-based guide to (a) awk (b) gnuplot and (c) using them in a script. I needed to graph some data based on the output of a command run a couple times. So what better way to solve that five minute task than to spend an hour learning awk & gnuplot to automate it?