
ml systems & algos | prev @exolabs, maths @Cambridge_Uni
london
Joined February 2015
- Tweets269
- Following257
- Followers2.7K
- Likes522
Pinned Tweet
Training an LLM on 8 M4 Mac Minis
Ethernet interconnect between Macs is 100x slower than NVLink so Macs can’t synchronise model gradients every training step.
I got DiLoCo running so Macs synchronise once every 1000 training steps using 1000x less communication than DDP
LLMs are fantastic for implementation, but they still struggle to produce leap-of-thought ideas that are needed for pushing frontiers.
Our contribution moves up the abstraction stack, but there is still a need for mathematicians and problem solvers.
I really enjoyed working on this project. I believe the new flop-aware paradigm of nanoGPT thinking is useful, and it seems helpful in a compute optimization context like this one. It seems like a simple and logical conclusion of optimization: figure out what’s actually needed, and use that. The process was actually fun.
One note regarding this record, as noted in the blog. Some of the techniques that scale to frontier pretraining have been redacted from this record. Most importantly, ANVIL III, the significantly improved version of the ANVIL optimizer lineage, has not been included in this record, as it is proprietary to us at @hyperstition_cc. It replicates Muon’s speed but beats it by 20-28 millinats of loss at all model sizes 124M-1.2B and training depths (up to 8x-Chinchilla), with remarkably consistent hyperparameters and extremely high SNR, as compared to Muon. You can learn more about ANVIL III and Feather-1.7B, the model we trained using internal architectural changes and ANVIL III, here:
hyperstition.cc/cutting-pret…
Using ANVIL III (which allowed me to cut steps) improved the speedrun results by another 0.7 seconds, with lower net loss. This alone proves there’s still more room to improve this record.
One final thing that I’ve had many people ask about is how much of a role autoresearch played in my work. The answer is almost none. While almost all of the implementation was done with Claude Code, I did the ideation almost fully by myself. I spoke about this extensively in a conversation with @METR_Evals.
We had a cluster of H100s while I was working on the record. At night or when I stopped working on it, I’d send out several agents to try to hill-climb the speedrun and improve the record. In total, the agents made shockingly little progress, despite spending more time in aggregate than I did. No matter what I told them, it seemed difficult to get them out of local minimums, stuck performing futile tuning of a method that saved 0.1 seconds and cost ~5 millinats (clearly a bad trade), or just tuning hyperparameters for hours on end trying to make some small change. I saw similar phenomena as those described in this METR report:
metr.org/blog/2026-07-21-exp….
However, as I also discussed with METR, I don’t think the agents lack the knowledge to do this. Instead, I think a lot of it comes from a personality issue with current LLMs. They have very little belief that large jumps like this are possible, or they approach it with the wrong paradigm. Autoresearch was not very helpful in my work, and, from personal experience, I don’t think this current generation of publicly available models, without special harnesses, will do very high-quality autoresearch. However, I think the capability and knowledge is already here, which implies that we could be significantly closer to true autoresearch than recent results would imply.
NanoGPT was a really fun challenge and it led to a number of valuable insights and processes. Finally, I’d like to give @Classiclarryd and @KellerJordan a huge thank you for all of their efforts maintaining the repo.
Matt Beton retweeted
Apparently, we can fit 3.5×* as many VMs at once on the same server, and we're just not doing it.
It's dumb, honestly: VMs waste RAM caching the same software as each other, which almost nobody deduplicates.
So I did, and cut disk usage ~10× while I was at it. Here's how:
I built a 50k parameter language model to run on an 8-bit 6502 processor from 1975. It learnt to spell words and construct basic grammar!
The model is build on a Mamba backbone (attention’s KV cache not fit in 32KB of memory) with a character-level tokenizer.
The MOS-6502 doesn’t have a ‘multiply’ instruction - only 8-bit integer addition. I therefore used ternary weights to reduce matrix multiplication to a series of add/subtracts operations.
Technical write-up here: mattbeton.com/blog/bitnet-65…
Source code: github.com/MattBeton/BitNet6…
fable just smashed the prompt i've been using to test new models for the past year. nothing else has come close.
i ask the model to generate a piece of artwork using javascript, inspired by artblocks.io.
(prompt and source below)
prompt: inspired by artblocks.io and associated generative art platforms, please write p5js source code of a novel and attractive art piece. you should compose a balance of colours, shapes, geometric feeling and make something that will look pleasing to go on my wall.
output: gist.github.com/MattBeton/ba…
Matt Beton retweeted
I’ve wanted to do this for a decade.
But I never did - I refuse to give any company my DNA.
It is me.
So this week I sequenced my genome entirely at home. Literally on my kitchen table.
I never exposed my DNA sequence to the internet. Not at any point.
I used a MinION to do the sequencing (it’s smaller + weighs less than an iPhone).
I used open-source DNA models for the analysis (Evo2 and AlphaGenome) running locally on a DGX Spark and Mac Studio.
I traced mechanisms behind my family’s multigenerational autoimmune conditions that no clinician has been able to understand.
When I set out to do this I didn’t know if it would actually work. It does.
Your genome is the most private data you will ever have. You probably shouldn’t let it leave your house.
I'm lucky enough to have a great doctor and access to excellent Bay Area medical care. I've taken lots of standard screening tests over the years and have tried lots of "health tech" devices and tools.
With all this said, by far the most useful preventative medical advice that I've ever received has come from unleashing coding agents on my genome, having them investigate my specific mutations, and having them recommend specific follow-on tests and treatments.
Population averages are population averages, but we ourselves are not averages. For example, it turns out that I probably have a 30x(!) higher-than-average predisposition to melanoma. Fortunately, there are both specific supplements that help counteract the particular mutations I have, and of course I can significantly dial up my screening frequency. So, this is very useful to know.
I don't know exactly how much the analysis cost, but probably less than $100. Sequencing my genome cost a few hundred dollars.
(One often sees papers and articles claiming that models aren't very good at medical reasoning. These analyses are usually based on employing several-year-old models, which is a kind of ludicrous malpractice. It is true that you still have to carefully monitor the agents' reasoning, and they do on occasion jump to conclusions or skip steps, requiring some nudging and re-steering. But, overall, they are almost literally infinitely better for this kind of work than what one can otherwise obtain today.)
There are still lots of questions about how this will diffuse and get adopted, but it seems very clear that medical practice is about to improve enormously. Exciting times!
It was a pleasure to be able to speak at @GPU_MODE today
I spoke about some of my work at @exolabs, discussing ML on consumer devices, and how to do distributed inference and training on Apple Silicon with MLX
youtube.com/watch?v=sV0PJC1d…
It’s possible to train models of any size using Macs. Pipeline parallelism enables this - putting part of the model on each device. Implementing this with MLX on Apple Silicon was quite a challenge; I’ve written a blog post detailing how it works. 🧵
mattbeton.com/blog/pipeline-…
Finetune DeepSeek 🐳 with two Mac Studios + MLX 🚀
We use pipeline parallelism to split the full 671GB model across two devices connected by a single TB5 cable.
LoRA reduces the number of parameters to train from 671 billion down to 37 million, reducing the memory overhead from gradients and optimizer. After training, these small LoRA adapters can be imported into the EXO 1.0 (open source coming soonTM) inference engine, demonstrating our successful finetune.
Using the most basic pipeline scheduling, we see a train throughput of ~30tok/s. Our 2.5M token dataset completed training in about a day.
There’s a lot more we can do to improve throughput. Better pipeline scheduling will allow us to overlap batches, bringing benefit from having more devices. Tensor parallel will bring near-linear scaling in number of nodes.
By default, MLX will output gradients for model parameters. But for pipeline parallelism, gradient across the pipeline boundary is required. The MLX library needs to be told to calculate gradients at the boundaries.
These are just a couple of the challenges of pipeline parallel training with MLX.
Full detail can be found in the blog post: mattbeton.com/blog/pipeline-…
Codebase open-source here: github.com/mattbeton/mlx-tra…
ai education is really important
it’s so easy to use these tools in the most obvious way, and often this is actually *detrimental* to your productivity
vibe-coding your entire codebase leads to lack of understanding - this applies in every domain, not just writing software
ai overuse leads to brain rot and regression in human ability; the only way to combat this is to be conscious about how you use ai
i had the pleasure of meeting annie earlier this year - so excited to see how their launch will fuel healthy ai adoption :)
Enterprise AI adoption will be the hottest topic of 2026.
We pre-empted this, and are launching Solaris: a platform to help enterprises understand what’s possible with AI and actually make it happen.
We are already live with fast growing companies like Lendi Group, Eucalyptus.
And are partnered with incredible companies like @ManusAI, @nebiusai, @juliusai, @getlindy etc. In 2026, we are partnering with @HP in APAC to power the future of the AI workforce.
More below
the biggest problem i have with current models is their inability to say ‘no’, or to identify when a problem i’ve set isn’t possible. they’ll still try, resulting in hallucinations
a training corpus typically contains orders of magnitude more ‘positive’ facts - textbooks, wikipedia etc - than negatives.
i wonder where we can get all these counterfactuals so that models can build an understanding of what isn't possible
Incredible experience hacking at the @GPU_MODE hackathon yesterday. Such an incredibly talent-dense event.
I built a disaggregated speculative decoding pipeline between my Macbook and DGX Spark - drafting on the macbook (higher mem bw) and verifying on the Spark (higher FLOPS). This can theoretically achieve higher TPS than either of the devices on their own (and also higher than if we had 2xMacbook, or 2xSpark!).
Typically people aim for homogeneity in their ML systems. But this shows that there can be cases where heterogeneity can be beneficial. This opens up a new design space that hasn’t been explored yet.
Will link to code once it’s been tidied up :)
Have been watching the @GPU_MODE lectures and reading the CUDA book. Subsequently reading ML systems papers and I've got such a better grasp of what's going on.
Understanding more levels of the stack is a great feeling!
The orchestration software we're building isn't just going to be LM inference in small clusters. EXO will support any workload (think finetuning! RL! voice!), at any scale.
If you want to see it before anyone else - and be part of building this vision - you know what to do.
If you’re a talented engineer affected by the H-1B changes, come build with us in London @exolabs
- SF-level comp (270K-360K base + equity)
- Best talent from Europe
- Hardcore build culture
- Build something important with massive distribution
Email jobs at exolabs dot net


















