DATA-DRIVEN MODEL COMPARISON
Best local LLMs for coding
Compare coding benchmark scores, weight sizes and Pareto trade-offs. LiveCodeBench v6 and SWE-bench Verified stay separate.
First Pareto choice on LiveCodeBench v6
Nanbeige 4.2 3B · 72.5 / 100 · 2.684 GB · Q4_K_M. This choice is calculated within this page’s eligible set.
LiveCodeBench v6: comparison
Solving coding problems. Version 6 only; published pass rates can vary with generation settings.
SWE-bench Verified: comparison
Fixing real software issues with tools. Agent setup and external tools affect these scores. File size covers model weights only. Agent tools and context settings affect SWE-bench results; this is not a standalone coding-model test.
| Model / quantization | Weights | Parameters | Score / 100 | Score / GB | Sources |
|---|---|---|---|---|---|
| K2 Horizon 3.7B | 3.157 GB | 5.058B | 68.6 | 21.732 | Get weights Score source |
| K2 Horizon 7B | 5.592 GB | 8.999B | 70.6 | 12.625 | Get weights Score source |
| Nanbeige 4.2 3B | 2.684 GB | 4.17B | 63.6 | 23.696 | Get weights Score source |
| Spark X2.5 4B | 2.6 GB | 4.112B | 41.6 | 15.999 | Get weights Score source |
| Qwen3.6-27B | 16.817 GB | 27.781B | 77.2 | 4.591 | Get weights Score source |
| Qwen3.5-27B | 16.741 GB | 27.781B | 72.4 | 4.325 | Get weights Score source |
| Spark X2.5 1.7B | 1.107 GB | 1.708B | 28.3 | 25.554 | Get weights Score source |
| Ornith-1.5-35B-A3B | 21.864 GB | 35.952B | 79 | 3.613 | Get weights Score source |
| Xing4.0 29B-A4BPublished tests use very long contexts; this weight budget does not reproduce those settings. | 20.104 GB | 31.215B | 75 | 3.731 | Get weights Score source |
| Xing4.0-29B-A4B-GGUFPublished tests use very long contexts; this weight budget does not reproduce those settings. | 20.104 GB | 31.215B | 75 | 3.731 | Get weights Score source |
| Qwen3.6-35B-A3B | 22.135 GB | 35.952B | 73.4 | 3.316 | Get weights Score source |
| Ornith-1.5-9B | 5.78 GB | 9.197B | 70.6 | 12.214 | Get weights Score source |
| Qwen3.5-35B-A3B | 22.285 GB | 35.952B | 69.2 | 3.105 | Get weights Score source |
| Aleph Alpha Kolibri-1 | 47.454 GB | 78.103B | 66.4 | 1.399 | Get weights Score source |
| GLM-4.7-Flash | 18.312 GB | 31.221B | 59.2 | 3.233 | Get weights Score source |
| Seed-OSS-36B-Instruct | 21.762 GB | 36.151B | 56 | 2.573 | Get weights Score source |
| NVIDIA-Nemotron-3.5-Lightning-30B-A3B | 25.477 GB | 32.913B | 51.56 | 2.024 | Get weights Score source |
| Mellum2.1 12B A2.5B Thinking | 8.071 GB | 12.15B | 47 | 5.823 | Get weights Score source |
HumanEval+: comparison
Writing Python that passes extra edge-case tests. EvalPlus pass@1 on all 164 problems.
| Model / quantization | Weights | Parameters | Score / 100 | Score / GB | Sources |
|---|---|---|---|---|---|
| K2 Horizon 0.9B | 0.666 GB | 1.078B | 79.9 | 119.937 | Get weights Score source |
| Bonsai 27B (1-bit)Custom Prism llama.cpp kernels required; check backend support. | 3.803 GB | 26.896B | 89.63 | 23.565 | Get weights Score source |
| Ternary Bonsai 2 27BCustom Prism llama.cpp kernels required; check backend support. | 5.947 GB | 26.896B | 95.12 | 15.996 | Get weights Score source |
| Ternary Bonsai 27BCustom Prism llama.cpp kernels required; check backend support. | 7.165 GB | 26.896B | 93.9 | 13.105 | Get weights Score source |
| Gmcoder 9B | 9.786 GB | 8.954B | 90.9 | 9.289 | Get weights Score source |
| GLM-4.7-Flash-REAP-23B-A3B | 14.114 GB | 22.996B | 89 | 6.306 | Get weights Score source |
| Noema 1.5 2B | 1.274 GB | 1.882B | 53.66 | 42.106 | Get weights Score source |
| UltraCoder L3 | 5.156 GB | 8.468B | 53.05 | 10.29 | Get weights Score source |
| Noema 2B | 2.012 GB | 1.882B | 50 | 24.851 | Get weights Score source |
| DuoNeural Hermes v3 | 5.156 GB | 8.468B | 50 | 9.698 | Get weights Score source |
| DuoNeural Hermes v2 | 5.156 GB | 8.468B | 46.3 | 8.981 | Get weights Score source |
How recommendations are calculated
We compare one benchmark at a time. A Pareto choice has no other scored model with both an equal or smaller weight file and an equal or higher score, with at least one strict improvement. The first choice is the frontier point nearest the chart’s top-left corner, using the same rounded memory scale and 0–100 score scale as the main chart. Other frontier choices follow, then other scored models by score.
Score per GB is shown for context; it does not choose the champion. Changing the budget or dataset can change the result. Scores are published point estimates, often for the source checkpoint rather than the selected quantization. They do not establish statistically significant differences or equal evaluation conditions.
RAM, VRAM and unified memory
Use one memory pool. System RAM is used for CPU inference; a dedicated GPU has separate VRAM. Do not add RAM and VRAM as if they were one GPU pool. Partial CPU offload needs a supported backend and can change speed. Unified memory is shared by CPU, GPU and the operating system; software can limit how much the GPU can allocate.
Our initial weight budget reserves 30% of system RAM or unified memory, with a minimum of 2 GB. For VRAM it reserves 20%, with a minimum of 1 GB. These are adjustable planning assumptions, not measured requirements. Context cache, runtime buffers, other programs, multimodal files and concurrent users can need more. A file that passes the budget check is a candidate, not a confirmed hardware-compatible configuration.
Check the model’s runtime and quantization support before downloading. See the Transformers cache documentation and llama.cpp backend documentation. GB uses decimal bytes; operating systems can report GiB instead.