Instructions to use FLvdW/Zeroth42-4B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use FLvdW/Zeroth42-4B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf FLvdW/Zeroth42-4B:Q4_K_M # Run inference directly in the terminal: llama cli -hf FLvdW/Zeroth42-4B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf FLvdW/Zeroth42-4B:Q4_K_M # Run inference directly in the terminal: llama cli -hf FLvdW/Zeroth42-4B:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf FLvdW/Zeroth42-4B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf FLvdW/Zeroth42-4B:Q4_K_M
Use Docker
docker model run hf.co/FLvdW/Zeroth42-4B:Q4_K_M
- Llama new
- LM Studio
- Jan
- Ollama
How to use FLvdW/Zeroth42-4B with Ollama:
ollama run hf.co/FLvdW/Zeroth42-4B:Q4_K_M
- Unsloth Desktop
- Docker Model Runner
How to use FLvdW/Zeroth42-4B with Docker Model Runner:
docker model run hf.co/FLvdW/Zeroth42-4B:Q4_K_M
- Lemonade
How to use FLvdW/Zeroth42-4B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull FLvdW/Zeroth42-4B:Q4_K_M
Run and chat with the model
lemonade run user.Zeroth42-4B-Q4_K_M
List all available models
lemonade list
- Atomic Chat
A Quantized 27B Caught a Bug in Its Own Code β On a Used 2018 AMD MI50
No CUDA. No cloud. No prompt scaffolding. Just a model, three tools, and a task where being wrong means a disk gets wiped.
By Zeroth42 (FLvdW) β independent developer, South Africa. We train and ship on ~$1,500 of second-hand AMD hardware. Zeroth42-4B is our installer co-pilot; this post is the 27B that helps build it.
The question nobody asks about "practical experience"
Benchmarks tell you a model can answer. They don't tell you whether you can trust it to act β which is a different question
entirely, and the one that actually matters when the task is dangerous-adjacent.
We're building an AI-assisted Linux installer. Its "verify" half reads a disk's partition table and judges it against golden safety
rules β is there an ESP? is it big enough? is swap present when hibernation is wanted? β and prints PASS or BLOCK before anything touches the disk. In that job, a wrong answer isn't a bad benchmark score. It's a wiped drive.
So we asked: can a quantized 27B on a used 2018 datacenter GPU do genuine, multi-step tool use through a plain OpenAI-compatible endpoint β with no few-shot prompts, no CoT templates, no scaffolding β and produce receipts we'd stake a disk on?
The rig
| GPU 1 | AMD MI50 32GB (Vega20/gfx906) β used, 2018 datacenter card |
| GPU 0 | AMD RX 9060 XT 16GB (RDNA4) β also bought second-hand |
| Runtime | llama.cpp + ROCm, native /v1/chat/completions |
| Stack | Zero CUDA, zero cloud. The MI50 is officially unsupported by ROCm β it runs via HSA_OVERRIDE_GFX_VERSION=9.0.6 |
The harness is ~280 lines: a loop that gives the model three tools (bash, read_file, write_file), executes returned `tool_calls' in a read-only-hardened sandbox, and appends every exchange to a JSONL transcript.
The transcript β not a summary β is the artifact.
The task: write partition_check.py β inspect real block devices via lsblk -J, check against golden rules, print PASS/BLOCK with reasons. UEFI profile must block a disk with no ESP or no swap. BIOS profile must pass a dos-layout ext4 disk. Strictly read-only.
What actually happened
Four runs, four different quants, each served on its own port β same harness, same settings (temperature 0.2), same task. All four read the real devices, read the rules, wrote the tool, ran it on real hardware, and reported. Three delivered a working tool on the first write. The fourth found a real bug in its own code β that's the story worth reading.
| Run | Quant | Turns | Deliverable | What the transcript shows |
|---|---|---|---|---|
| B | Q4_K_M | 8 | 274 lines | complete end-to-end, 6 test scenarios |
| C | UD-IQ4_XS | 9 | 347 lines | complete end-to-end |
| D | base-Q5 (non-UD) | 7 | 400 lines | most iteration-efficient |
| A | UD-Q5_K_M | 11 | 424 lines | deepest debugging arc |
An earlier run whose quant couldn't be proven from logs is deliberately excluded. Receipts before adjectives β that's the house rule.
The moment that made the whole experiment worth it
Run A wrote its tool, ran it β and noticed a partition being classified as an ESP candidate despite carrying the real ESP GUID
(c12a7328-f81f-11d2-ba4b-00a0c93ec93b).
Then it did the thing you hope for but never script: it diagnosed the cause (a metadata-merge bug in its own lsblk tree-walking), rewrote the ESP classification, and re-ran the full test matrix to prove the fix.
A quantized model, on a 2018 card, catching a subtle GUID-classification bug in code it wrote ninety seconds earlier β unscripted, mid-task β and then verifying its own fix. That's not a benchmark number. That's the closest thing to "it can actually do the job" that a transcript can show.
A genuinely different failure mode (base-Q5)
Run D tried to emit the entire ~400-line deliverable in one write_file payload β ~14K chars of escaped source. Twice the
arguments JSON arrived truncated (reasoning had consumed the generation budget) β malformed JSON β server 500. Raising the budget to 24K tokens let it complete in one shot. We kept the failure transcripts. Different quants aren't just faster or slower β they behave differently.
What we learned about tool-calling (the part you can reuse)
- Native function calling just works on llama-server. Standard OpenAI
toolsarray. No plugins, no hacks. - Thinking mode eats the budget. Observed single-turn reasoning blocks of 12Kβ35K chars across all four quants. Give the agent a big
max_tokensand long timeouts (900s), or "think then act" stalls. - Handle empty turns. The model sometimes returns reasoning only. The harness must nudge ("continue / deliver") instead of hanging.
- Verify which model you actually served. Our first run's quant was unprovable from its logs, so that run is excluded from every claim here. Later runs embed the endpoint and server-log proof in the transcript itself; the earliest verified run's proof lives in the session log that launched it, not in the transcript.
- Read-only sandbox is non-negotiable for dangerous-adjacent tasks. Across all runs, the model never once attempted a destructive command.
- The same 27B now runs as a real agent in our pi harness (
qwen38-workersubagent) β same model, no retraining, the tool surface scales from 3 hand-rolled functions to a full toolkit.
Why this matters
"Practical experience" with a model isn't only a tok/s table. It's evidence that a quantized 27B on AMD silicon β used 2018 hardware, zero CUDA β can run a real safety-critical verify loop, catch its own bugs, and do it reproducibly across four quants, with transcripts as the receipt.
That's the exact trust boundary our product lives on. The 4B co-pilot Zeroth42-4B talks; the 27B helps build the machinery that checks. Both run on the same open stack, on hardware anyone can afford.
Zeroth42 β honest process on display. We publish the audit trail, not just the answer.
Related Β· FLvdW/Zeroth42-4B β the 4B installer co-pilot Β· companion write-up (dual-AMD llama.cpp, quant table, thinking-budget tuning) lands Sunday.
Full JSONL transcripts from all seven runs available on request. Discussion welcome β especially if you're running any of this on your own AMD cards.