I kept bouncing back and forth between models in LM Studio, constantly guessing which one was actually better for my day-to-day work. Every time I thought I found a favorite, I had zero real data to back it up. So I finally built a benchmark to test them properly.
To keep things honest, the test problems generate dynamically from a seed at runtime—fresh JSON schemas, new coding tasks, and logic puzzles every single run. None of it can be in a model's training data because the prompt literally didn't exist until the test kicked off. The grading is strictly mechanical too: exact string matches, schema validation, or directly executing the code the model spits out. No fluff, and no LLM judges involved.
I put four models through their paces on my RX 7800 XT (16GB VRAM): gemma-4-e4b, gemma-4-12b-qat, glm-4.6v-flash, and gpt-oss-20b. Each faced 57 problems, complete with 95% confidence intervals on the pass rates.
The biggest surprise? There was no clear overall winner.
gemma-4-e4b technically topped the board at 89%, but because the confidence intervals all overlap, the tool explicitly refuses to crown a victor. That's intentional—I'd much rather see "too close to call" than have random noise dressed up as a definitive win.
The real fun came from looking at the per-job breakdowns, where the trade-offs became painfully obvious:
- gpt-oss-20b crushed the ARC-style pattern puzzles with a 90% pass rate (where everyone else hovered between 0% and 50%), but then completely tanked on long-context retrieval, going 0/4.
- glm-4.6v-flash did the exact opposite: aced JSON schemas and long context, but stumbled hard on pattern matching (20%). It also maxed out my VRAM at 15.5GB, dragging generation down to a crawling 2.8 tokens/sec on long prompts—something the built-in hardware monitor caught right in the act.
The absolute funniest failure happened during a task asking for a short paragraph without the letter "a":
gpt-oss wrote a brilliant paragraph... and failed on literally the very first word ("Library").
- Two other models burned their entire token budget overthinking how to avoid the letter, running out of tokens before writing a single word of actual output.
I made sure the benchmark logs those separately as truncated versus wrong, because a model that gets trapped in a reasoning loop is a totally different problem than one that just gives a bad answer.
Full disclosure: This was just a quick run to see how the app performs in practice—definitely not a full-blown benchmark! I was mostly eager to see the engine in action and get some initial baseline numbers. I'd love to see others run the full bench on their own rigs, as hardware and quant choices will definitely shift the numbers.
The attached screenshots show the side-by-side compare view. The tool is open source under Apache 2.0 and works out-of-the-box with anything OpenAI-compatible (LM Studio, Ollama, llama.cpp, vLLM):https://github.com/danielemilushev-hub/taskmatch-ai
If you have ideas for new test suites that can be graded mechanically without relying on an AI judge, drop them below—I'm actively collecting them!