Dense 30 billion parameter models are a bit of a sweet spot. They're small enough to fit on cheap consumer GPUs and have enough knowledge to answer my beginner FreeCAD questions or write boring boilerplate code for me.
As of October 2026, I use:
Qwen3.8 27B for tool calling tasks (e.g. agentic coding).
At 4-bit quantisation, those models both come in under 20GB. For some inference headroom and somewhere to keep a KV cache, I want at least 24GB of VRAM.
My target is 30 inference (output) tokens/second, that's fast enough to feel about the same as the ChatGPT or Claude web experience.
How much does the hardware cost to hit that target? Surprisingly, about £500.
It's my personal mission to make my local coding model better for me than anything commercially available. The big models are always going to be more capable and my consumer grade hardware will never be a match for a data center of compute. Still, the big models have to work for everyone, my local model only has to suit my workflow.
The biggest improvement I've seen with smaller models comes from the initial steering. If I can tell it which files, modules, classes or concepts a change will impact it does a better job.
An obvious choice is to reach for an embedding model to navigate the codebase.
Multilingual Capability: The Qwen3 Embedding series support over 100 languages, including various programming languages, and provides robust multilingual, cross-lingual, and code retrieval capabilities.
But what does that actually mean? Does the model understand structure? Naming? What?
I ran a small experiment, and here's what I found.
If you've ever rented or bought a home in Ireland, you'll be familiar with Building Energy Ratings (BER). They tell you how cold you'll be in winter, graded from A1 (toasty) through to G (cold). "BER Exempt" means you're in for a rough time.
To get your BER, an assessor takes dozens of measurements, pokes at every vent, crevice and hole, then produces a number: the cost to heat the building in kWh/m²/year. That number gets bucketed into a category from A1 to G:
Rating
kWh/m²/year
A1
≤ 25
A2
25 - 50
A3
50 - 75
B1
75 - 100
...
...
E2
340 - 380
F
380 - 450
G
> 450
The Sustainable Energy Authority of Ireland (SEAI) is responsible for BER, and they handily publish an anonymised dataset.
Can I, a proven idiot, use machine learning to predict a home's BER using only information a homeowner is likely to know? No crevice exploration required?
This is a short series of posts to figure that out. What I tried, what worked, what didn't.
I want to take back control of the recommendation algorithms I'm exposed to.
Streaming platforms don't know what mood I'm in. I rarely know myself to be honest, it's usually just a vague sense of what I don't want.
Sometimes I want something challenging, the kind of film Cillian Murphy has gushed about in an interview, where I'm left thinking about the central question of the narrative for days. Sometimes I want helicopters and explosions and exploding helicopters.
I usually want more queer media. Don't get me wrong, some of my best friends are straight, but more and more I'm just not in the mood for a hetero B-plot.
Can I build something that answers: Films like Speed 2, but gay?
This is part of a series on ML for generalists, you can find the start here.
On my machine, a dataset of 2,000 training samples taking about 10 minutes (for a single epoch) on my CPU. That's not terrible for one run, but I need to iterate and experiment. I might change a hyperparameter (like learning rate) or tweak the architecture to add more layers, or bigger layers, or... you get the idea. Waiting around makes that painful.
Ten minutes per epoch means I can't realistically try more than a handful of changes in a session. Context switching is rough. Kick off a training run, go do something else, come back, check the results, try remember what I was testing, hopefully I scribbled a note somewhere. Repeat. I can only change one variable at a time if I want to learn what's happening, so my progress crawls along.
This is part of a series on ML for generalists, you can find the start here.
We know the data is the important part. It can take a lot of work to compile an accurately labelled dataset. How do we make sure we get the most out of what we have?