BENCHMARK · SMALL LANGUAGE MODELS · 7 MIN READ

Why a half-billion-parameter model lost to our rules

We gave two small language models, about half a billion parameters each, three narrow jobs in a voice-memo app. Each had a fixed prompt, a grammar that allowed only numbers, and temperature 0. The app's plain rules beat both of them on all three jobs. Here are the numbers, how the models failed, and what would make us try again.


Founder, Bodham Labs
Published · Updated

THE SHORT ANSWER

  • On naturally worded questions, our word-matching rule found the answering sentence for 25 of 40. Qwen2.5-0.5B found 13 of 40 and Qwen3-0.6B 18 of 40 (laptop CPU).
  • Asked to fix doubtful words, Qwen2.5-0.5B changed 11 of 11 words that were already right. Qwen3-0.6B fixed none of 13 real errors, and needed 1.14 GB of memory.
  • Rules stay. A fine-tuned small model, not a prompted one, is what would reopen the question.

Why did we try a small language model at all?

Our on-device voice-memo app, Mementos (codename), does three small jobs with plain rules today. When you ask a question, it picks the sentence in a memo that answers it, by counting shared words. When the speech model is unsure of a word, such as a name, something has to decide whether to leave it or swap in a candidate from a correction list. And when you save a memo, a tag (Work or Personal) is suggested by repeating the last one you used.

The idea we tested was simple: tell a small model exactly what is needed, every time. One fixed prompt per job, under 150 words of instruction. The model may only choose or label. It never writes transcript text. Its answer is a number, a list of numbers or one item from a given list, and anything else is rejected.

If a model under about 500 MB could beat the rules at that, it would be worth a test on the phone. If it could not, the rules stay.

How did we set up the test?

WHERELaptop CPU (Windows 11, Intel Core i7), 1 and 4 threads. Nothing ran on the phone.
MODEL 1Qwen2.5-0.5B-Instruct, q4_k_m file, 468.6 MB, Apache-2.0 (task T-038)
MODEL 2Qwen3-0.6B, Q4_K_M file, 461.8 MB, Apache-2.0, thinking mode off (task T-040)
DECODINGTemperature 0. Output limited by a GBNF grammar to digits only.
PROMPTSOne per job, the same for English and Hinglish, unchanged between the two models
DATA40 synthetic memos plus the developer's own recordings; 40 questions for job 1, 24 doubtful words, 45 memos labelled by hand
  • q4_k_m is a llama.cpp file format that stores the model's weights at about 4 bits each, so a half-billion-parameter model fits in under 500 MB.
  • A GBNF grammar is a small set of rules, in llama.cpp's own notation, that limits which tokens the model is allowed to produce. Ours were as strict as root ::= [0-4].
  • Temperature 0 means the model always takes its most likely answer, so a run can be repeated exactly.

How did the models do against the rules?

Each table compares the models with what the app already does. Counts are right answers out of the sample size (n).

Rules = the sentence that shares most words with the question. On questions with no shared word, a light lookup-table embedding model (static-similarity-mrl) found 24 of 40, more than either language model.
JOB 1: ANSWERING SENTENCENRULESQWEN2.5-0.5BQWEN3-0.6B
Naturally worded questions4025 (62.5%)13 (32.5%)18 (45.0%)
… English only30201115
… Hinglish only10523
Questions with no shared word4012 (30.0%)10 (25.0%)16 (40.0%)
24 cases from the developer's own recordings: 13 words the speech model got wrong and 11 it got right. The model saw the sentence, 2–4 candidate words and earlier sentences, and could answer 0 for leave it.
JOB 2: DOUBTFUL WORDRIGHTERRORS FIXEDRIGHT WORDS MADE WRONG
Leave every word alone13 of 240 of 130 of 11
Qwen2.5-0.5B6 of 246 of 1311 of 11
Qwen3-0.6B10 of 240 of 131 of 11
Work or Personal, from the memo's first 60 words. Labels set by hand.
JOB 3: SUGGEST A TAGNRIGHT
Repeat the last tag used4525 (55.6%)
Qwen2.5-0.5B4516 (35.6%)
Qwen3-0.6B4524 (53.3%)

The newer model is clearly better than the older one on every job. It still did not beat the rules on any of them.

How the models failed

Qwen2.5-0.5B changed 11 of 11 words that were already right. On the doubtful-word job, whenever candidates were on offer, it picked one instead of answering 0 for “leave it”. It fixed 6 real errors and broke every correct word it was shown. For a memo app, breaking a correct name is worse than leaving a wrong one, because the user trusts what is on screen.

Qwen3-0.6B failed the other way. It answered “leave it” 22 times out of 24. It broke only 1 correct word, but it fixed none of the 13 errors. That is the same result as doing nothing, at a cost of almost a second per call.

Both were sensitive to wording. We reran job 1 with two reworded prompts. Qwen2.5-0.5B scored 13, 11 and 6 of 40; Qwen3-0.6B scored 18, 11 and 11 of 40. Both spreads are 17.5 points. Our rule was that a swing of more than 5 points with wording makes a job “not reliable”.

The grammar worked. No answer broke the number-only format in any run. The grammar controlled the form of the answer; it could not make the answer right.

What did it cost in time and memory?

RSS (resident set size) is the memory the process actually holds. Measured on the laptop, not on the phone.
LAPTOP CPUQWEN2.5-0.5BQWEN3-0.6B
File size468.6 MB461.8 MB
Peak memory (RSS)735.5 MB (4 threads) / 801.4 MB (1 thread)1,143.6 MB
Job 1, per call (4 / 1 threads)697.8 / 794.2 ms565.8 / 677.9 ms
Job 2, per call (4 / 1 threads)1,042.2 / 1,114.5 ms909.3 / 963.9 ms
Job 3, per call (4 / 1 threads)388.7 / 421.9 ms333.7 / 413.2 ms

For comparison, the light lookup-table model in the same tests took about 0.1 ms per sentence and about 138 MB of extra memory. The rules take no extra memory at all. Qwen3-0.6B needed over 1 GB for jobs the rules already do better.

Did light meaning models do any better?

In a related test the same day (T-035, corrected in T-039), we tried light embedding models, which turn a sentence into a list of numbers so that similar meanings land close together. The question was the same: do they beat keyword search?

45 memos (40 synthetic, 5 Hinglish recordings from the developer). The range covers several models, alone or combined with keyword search.
RIGHT MEMO FIRST (LAPTOP CPU)NKEYWORD SEARCHLIGHT MODELS
Naturally worded questions402424 to 28
Questions with no shared word409up to 18

On questions worded the way people speak, keyword search was as good as the models. The differences were 1 to 4 questions out of 40, inside the 90% bootstrap ranges. The models helped only when the question shared no word with the memo. So meaning search also waits: the field test will count how often a search comes back empty, and that count decides.

What this does not prove

  • Small samples. 40 questions, 24 doubtful words and 45 memos. The Hinglish parts are 10 questions and 5 memos, too few to say anything about Hinglish on its own.
  • Laptop only. No model ran on the phone, where memory and speed would be worse, not better.
  • Two models, one size, 4-bit. This says nothing about models of 1.5 billion parameters or more, which need 1 to 3 GB of memory and a multi-GB download. They may well do these jobs.
  • Prompts, not training. Neither model was fine-tuned. We held the prompts fixed between models on purpose, so better prompts might do somewhat better, and the 17.5-point swings suggest the results depend on wording.
  • Mostly synthetic data. 40 of the 45 memos were written for the test, and one long memo answers 17 of the 40 meaning-test questions.

What we decided

The small-model line is closed for now. Picking the answer sentence, fixing doubtful words and suggesting tags stay with rules, and no language model goes into the next build for these jobs.

Two things would reopen it. First, a small model fine-tuned on Hinglish and on these exact jobs, rather than steered by a prompt. That is our Hinglish small-model research line, and it is still collecting data. Second, a decision to ship a larger model for summaries and deadlines; these three jobs would then come almost free with it.

Questions

Can a half-billion-parameter language model replace simple rules in an app?

Not in our test. With a fixed prompt, number-only answers and temperature 0, Qwen2.5-0.5B and Qwen3-0.6B both did worse than our voice-memo app's own rules on all three narrow jobs we gave them: picking the answering sentence, fixing doubtful words and suggesting a tag. The test ran on a laptop CPU, with 24 to 45 cases per job.

Does a grammar fix the reliability of a small model?

It fixes the format, not the judgement. A GBNF grammar in llama.cpp meant no answer ever broke the number-only format. But the answers themselves were often wrong, and rewording the prompt moved one job by 17.5 points out of 100 for both models.

Would a fine-tuned small model do better?

Possibly, and that is what would reopen the question. We tested models steered only by prompts. A small model fine-tuned on Hinglish and on these exact jobs is a separate research line of ours, and it is still collecting data.

RAW DATA

A summary of the logs behind every number on this page is available on request.

CITE THIS NOTE

Chandra, P. (2026). Why a half-billion-parameter model lost to our rules. Bodham Labs Notes.

Founder of Bodham Labs. BTech in Electrical Engineering, MCA and B.Ed; teaches AI and builds the systems in our work ledger.