Measure the same thing for everyone
Three 7-billion-parameter models, served locally with Ollama on Kaggle GPUs: LLaMA 2 (Meta), Mistral (Mistral AI) and DeepSeek-R1 distilled into Qwen, built for reasoning. Every raw answer is saved alongside the extracted answer, and metrics are recomputed from those files: results can be checked without rerunning the models.
| Test | Task | Protocol |
|---|---|---|
| GSM8K | grade-school maths problems, 500 questions | 8-shot, extraction of the final numeric answer |
| HellaSwag | choose the most plausible ending among 4, 500 questions | 0-shot, the model returns an index |
| HumanEval | complete a Python function, 164 problems | 0-shot, code run in an isolated process against the unit tests (pass@1) |
No model wins everywhere
DeepSeek-R1 dominates coding with 128 problems solved out of 164. Mistral is the strongest at common sense and offers the best trade-off between accuracy and response time. LLaMA 2 lags far behind on all three tests.
03 · Behind the scoreWhat a percentage hides
On GSM8K, DeepSeek-R1 scores 47.6%. But its reasoning is so long that it produced a usable answer for only 258 questions out of 500; of those, 92% are correct. The score therefore mixes two very different things: the quality of the reasoning, excellent, and the ability to conclude in the expected format, poor. All for an inference time about 100 times longer than the other two models.
Coding errors tell the same story. Going through the error message of every failure:
| Model | Failures | Most frequent error |
|---|---|---|
| DeepSeek-R1 | 36 | NameError (27), including 22 where the requested function is missing from the returned code |
| Mistral | 112 | AssertionError (76): the code runs but gives a wrong result; 17 IndentationError |
| LLaMA 2 | 149 | AssertionError (90), then NameError (33), 20 of them using List without an import |