DATA-DRIVEN MODEL COMPARISON
Best local LLMs for 12 GB RAM or VRAM
82 catalog weight sets fit the 8.4 GB system-memory planning budget. “Best” means a trade-off between a published benchmark score and weight size, not a tested run on your computer.
12 GB: weight budgets
| Memory pool | Capacity | Weight budget | Reserved space | Candidate files |
|---|---|---|---|---|
| System RAM / unified memory | 12 GB | 8.4 GB | 3.6 GB | 82 |
| Dedicated VRAM | 12 GB | 9.6 GB | 2.4 GB | 82 |
Compared with 8 GB, this tier adds 18 weight-budget candidates: MiMo-V2.6-Distill-Qwen-9B, Qwythos-9B Claude Mythos 5 1M, OpenMobile-2 9B, Cloudflare Clef-flash 9B, Ornith-1.5-9B, RapidChat 9B, APUS Reflex 9B, Qwen3.5-9B and more in the tables below. A smaller model can still be the better trade-off.
First Pareto choice on MMLU-Pro
MiniCPM5 2B · 70.8 / 100 · 1.561 GB · Q4_K_M. This choice is calculated within this page’s eligible set.
MMLU-Pro: models within the RAM budget
Knowledge and reasoning across many subjects. Published accuracy; different evaluation settings can change the result.
| Model / quantization | Weights | Parameters | Score / 100 | Score / GB | Budget left | Sources |
|---|---|---|---|---|---|---|
| MiniCPM5 2B | 1.561 GB | 2.517B | 70.8 | 45.346 | 6.839 GB | Get weights Score source |
| Qwen3.5-4B | 2.741 GB | 4.206B | 79.1 | 28.859 | 5.659 GB | Get weights Score source |
| LFM2.5 230M | 0.153 GB | 0.23B | 20.25 | 132.002 | 8.247 GB | Get weights Score source |
| Qwen3.5-9B | 5.681 GB | 9.653B | 82.5 | 14.523 | 2.719 GB | Get weights Score source |
| gemma-4-12B-it | 7.122 GB | 11.96B | 77.2 | 10.84 | 1.278 GB | Get weights Score source |
| Granite 4.2 8B | 5.348 GB | 8.792B | 74.04 | 13.845 | 3.052 GB | Get weights Score source |
| Gemma 4 E4B | 4.977 GB | 7.996B | 69.4 | 13.944 | 3.423 GB | Get weights Score source |
| Granite 4.2 3B | 2.244 GB | 3.66B | 67.84 | 30.232 | 6.156 GB | Get weights Score source |
| LFM2.5 2.6B | 1.674 GB | 2.697B | 65.2 | 38.938 | 6.726 GB | Get weights Score source |
| Gemma 4 E2B | 3.107 GB | 5.123B | 60 | 19.313 | 5.293 GB | Get weights Score source |
| Noema 2B | 2.012 GB | 1.882B | 51.1 | 25.397 | 6.388 GB | Get weights Score source |
| Kernel Logic 1.5 | 4.683 GB | 7.616B | 38 | 8.114 | 3.717 GB | Get weights Score source |
LiveCodeBench v6: models within the RAM budget
Solving coding problems. Version 6 only; published pass rates can vary with generation settings.
| Model / quantization | Weights | Parameters | Score / 100 | Score / GB | Budget left | Sources |
|---|---|---|---|---|---|---|
| MiniCPM5 2B | 1.561 GB | 2.517B | 69.1 | 44.257 | 6.839 GB | Get weights Score source |
| Granite 4.2 3B | 2.244 GB | 3.66B | 69.71 | 31.065 | 6.156 GB | Get weights Score source |
| Nanbeige 4.2 3B | 2.684 GB | 4.17B | 72.5 | 27.012 | 5.716 GB | Get weights Score source |
| K2 Horizon 0.9B | 0.666 GB | 1.078B | 37.4 | 56.141 | 7.734 GB | Get weights Score source |
| Granite 4.2 8B | 5.348 GB | 8.792B | 73.24 | 13.695 | 3.052 GB | Get weights Score source |
| Mellum2.1 12B A2.5B Thinking | 8.071 GB | 12.15B | 82 | 10.159 | 0.329 GB | Get weights Score source |
| gemma-4-12B-it | 7.122 GB | 11.96B | 72 | 10.11 | 1.278 GB | Get weights Score source |
| Qwen3.5-9B | 5.681 GB | 9.653B | 65.6 | 11.548 | 2.719 GB | Get weights Score source |
| Agents A1 4B | 2.709 GB | 4.539B | 59.6 | 22.002 | 5.691 GB | Get weights Score source |
| NeoHorse 1 4B | 2.709 GB | 4.206B | 59.43 | 21.94 | 5.691 GB | Get weights Score source |
| LFM2.5 2.6B | 1.674 GB | 2.697B | 59.41 | 35.48 | 6.726 GB | Get weights Score source |
| Qwen3.5-4B | 2.741 GB | 4.206B | 55.8 | 20.358 | 5.659 GB | Get weights Score source |
| Gemma 4 E4B | 4.977 GB | 7.996B | 52 | 10.448 | 3.423 GB | Get weights Score source |
| Gemma 4 E2B | 3.107 GB | 5.123B | 44 | 14.163 | 5.293 GB | Get weights Score source |
All 82 model files within this tier’s RAM budget
Some files have scores only on other benchmarks. This complete size-ordered list keeps those candidates visible without assigning missing scores a zero.
Show every candidate, including models without MMLU-Pro
| Model / quantization | Weights | Parameters | Score / 100 | Score / GB | Budget left | Sources |
|---|---|---|---|---|---|---|
| Vela Lumen v1.1 | 0.143 GB | 0.048B | Not recorded | — | 8.257 GB | Get weights |
| LFM2.5 230M | 0.153 GB | 0.23B | 20.25 | 132.002 | 8.247 GB | Get weights Score source |
| PicoLM 80M | 0.18 GB | 0.09B | Not recorded | — | 8.22 GB | Get weights |
| PicoLM v2 81M | 0.193 GB | 0.096B | Not recorded | — | 8.207 GB | Get weights |
| PicoLM v2.1 81M | 0.193 GB | 0.096B | Not recorded | — | 8.207 GB | Get weights |
| Udgam 384M Chat | 0.238 GB | 0.384B | Not recorded | — | 8.162 GB | Get weights |
| Quill 1 PreviewCode-completion model; not a general chat model. | 0.398 GB | 0.494B | Not recorded | — | 8.002 GB | Get weights |
| Liquid AI d1-omni-600M | 0.407 GB | 0.587B | Not recorded | — | 7.993 GB | Get weights |
| LightOnOCR-3 0.8B | 0.529 GB | 0.853B | Not recorded | — | 7.871 GB | Get weights |
| Satella-RAG 0.8B | 0.593 GB | 0.773B | Not recorded | — | 7.807 GB | Get weights |
| K2 Horizon 0.9B | 0.666 GB | 1.078B | Not recorded | — | 7.734 GB | Get weights |
| MiniCPM-V 4.7 1B | 0.672 GB | 1.006B | Not recorded | — | 7.728 GB | Get weights |
| OneJev 1.5 0.8B | 0.672 GB | 1.007B | Not recorded | — | 7.728 GB | Get weights |
| d3-edge 0.6B | 0.806 GB | 0.748B | Not recorded | — | 7.594 GB | Get weights |
| Switchboard Router 0.5B v0.1 | 0.994 GB | 0.494B | Not recorded | — | 7.406 GB | Get weights |
| Spark X2.5 1.7B | 1.107 GB | 1.708B | Not recorded | — | 7.293 GB | Get weights |
| Curious 2B | 1.215 GB | 1.882B | Not recorded | — | 7.185 GB | Get weights |
| Noema 1.5 2B | 1.274 GB | 1.882B | Not recorded | — | 7.126 GB | Get weights |
| StartLux-Decision-v1-2B | 1.274 GB | 1.882B | Not recorded | — | 7.126 GB | Get weights |
| Arm-optimized Qwen3.5-2B | 1.274 GB | 1.882B | Not recorded | — | 7.126 GB | Get weights |
| Empero Qwen3.8 2B | 1.312 GB | 2.274B | Not recorded | — | 7.088 GB | Get weights |
| Index Translate 2BTranslation specialist, not a general chat ranking. Apache-2.0 licensed. The official llama.cpp recipe uses the chat template with thinking disabled, temperature 0 and the target-language prompt. This 1.312 GB Q4_K_M file is text-capable by itself; image input needs the separate compatible projector. Runtime, KV cache and long contexts need memory beyond the weight file. The recorded FLORES result is from the source checkpoint, not a Q4 speed or compatibility test. | 1.312 GB | 2.274B | Not recorded | — | 7.088 GB | Get weights |
| MiniCPM5 abliterated v2 | 1.561 GB | 2.517B | Not recorded | — | 6.839 GB | Get weights |
| MiniCPM5 2B | 1.561 GB | 2.517B | 70.8 | 45.346 | 6.839 GB | Get weights Score source |
| ColGrep-Agent-2B | 1.561 GB | 2.517B | Not recorded | — | 6.839 GB | Get weights |
| LFM2.5 2.6B | 1.674 GB | 2.697B | 65.2 | 38.938 | 6.726 GB | Get weights Score source |
| DFM Mimir | 1.913 GB | 1.787B | Not recorded | — | 6.487 GB | Get weights |
| TwIL LM3 | 1.915 GB | 3.075B | Not recorded | — | 6.485 GB | Get weights |
| Noema 2B | 2.012 GB | 1.882B | 51.1 | 25.397 | 6.388 GB | Get weights Score source |
| Josev-2B | 2.045 GB | 1.912B | Not recorded | — | 6.355 GB | Get weights |
| Limite 1B - ViolettoBF16 Safetensors; custom code or vLLM plugin. Single-turn math specialist. | 2.071 GB | 1B | Not recorded | — | 6.329 GB | Get weights |
| Granite 4.2 3B | 2.244 GB | 3.66B | 67.84 | 30.232 | 6.156 GB | Get weights Score source |
| webAI TwIL-LM3-Pro | 2.244 GB | 3.66B | Not recorded | — | 6.156 GB | Get weights |
| OpenDecider-small-td | 2.497 GB | 4.022B | Not recorded | — | 5.903 GB | Get weights |
| Clary 2 Cyber Heavy | 2.497 GB | 4.022B | Not recorded | — | 5.903 GB | Get weights |
| RefinedToolCall v5 | 2.538 GB | 3.086B | Not recorded | — | 5.862 GB | Get weights |
| grug 3B | 2.575 GB | 4.17B | Not recorded | — | 5.825 GB | Get weights |
| Spark X2.5 4B | 2.6 GB | 4.112B | Not recorded | — | 5.8 GB | Get weights |
| Granite concision edit | 2.673 GB | 1.335B | Not recorded | — | 5.727 GB | Get weights |
| Nanbeige 4.2 3B | 2.684 GB | 4.17B | Not recorded | — | 5.716 GB | Get weights |
| Wald-Q4B v2.1 | 2.709 GB | 4.66B | Not recorded | — | 5.691 GB | Get weights |
| NeoHorse 1 4B | 2.709 GB | 4.206B | Not recorded | — | 5.691 GB | Get weights |
| APUS Reflex 4B | 2.709 GB | 4.206B | Not recorded | — | 5.691 GB | Get weights |
| Afrique Qwen v2 | 2.709 GB | 4.206B | Not recorded | — | 5.691 GB | Get weights |
| Agents A1 4B | 2.709 GB | 4.539B | Not recorded | — | 5.691 GB | Get weights |
| Qwen3.5-4B | 2.741 GB | 4.206B | 79.1 | 28.859 | 5.659 GB | Get weights Score source |
| Empero Qwen3.8 4B | 2.783 GB | 4.66B | Not recorded | — | 5.617 GB | Get weights |
| FrogNano-4B-2609 | 2.798 GB | 4.326B | Not recorded | — | 5.602 GB | Get weights |
| Liquid AI d1-3BDecision model, not a chat model. Use a llama.cpp build with /v1/systemone support. The selected Q8_0 file contains language weights; image input needs a compatible separate projector. Total parameters include the vision encoder. LFM Open License v1.0 has commercial-use conditions. The recorded score is not a Q8_0 compatibility or speed test. | 2.875 GB | 3.123B | Not recorded | — | 5.525 GB | Get weights |
| Gemma 4 E2B | 3.107 GB | 5.123B | 60 | 19.313 | 5.293 GB | Get weights Score source |
| K2 Horizon 3.7B | 3.157 GB | 5.058B | Not recorded | — | 5.243 GB | Get weights |
| Bonsai 27B (1-bit)Custom Prism llama.cpp kernels required; check backend support. | 3.803 GB | 26.896B | Not recorded | — | 4.597 GB | Get weights |
| Switchboard Router 4B | 4.28 GB | 4.022B | Not recorded | — | 4.12 GB | Get weights |
| Quinto 0.1 4B | 4.482 GB | 4.206B | Not recorded | — | 3.918 GB | Get weights |
| H2O-Lightning 4B Native | 4.482 GB | 4.206B | Not recorded | — | 3.918 GB | Get weights |
| Kernel Logic 1.5 | 4.683 GB | 7.616B | 38 | 8.114 | 3.717 GB | Get weights Score source |
| Ling 3.0 tiny | 4.824 GB | 7.893B | Not recorded | — | 3.576 GB | Get weights |
| Gemma 4 E4B | 4.977 GB | 7.996B | 69.4 | 13.944 | 3.423 GB | Get weights Score source |
| Ai2 AstaBrief 8B | 5.028 GB | 8.191B | Not recorded | — | 3.372 GB | Get weights |
| DuoNeural Hermes v3 | 5.156 GB | 8.468B | Not recorded | — | 3.244 GB | Get weights |
| DuoNeural Hermes v2 | 5.156 GB | 8.468B | Not recorded | — | 3.244 GB | Get weights |
| UltraCoder L3 | 5.156 GB | 8.468B | Not recorded | — | 3.244 GB | Get weights |
| Granite 4.2 8B | 5.348 GB | 8.792B | 74.04 | 13.845 | 3.052 GB | Get weights Score source |
| K2 Horizon 7B | 5.592 GB | 8.999B | Not recorded | — | 2.808 GB | Get weights |
| Qwythos-9B Claude Mythos 5 1M | 5.629 GB | 8.954B | Not recorded | — | 2.771 GB | Get weights |
| RapidChat 9B | 5.629 GB | 9.41B | Not recorded | — | 2.771 GB | Get weights |
| APUS Reflex 9B | 5.629 GB | 9.41B | Not recorded | — | 2.771 GB | Get weights |
| OpenMobile-2 9B | 5.629 GB | 8.954B | Not recorded | — | 2.771 GB | Get weights |
| Qwen3.5-9B | 5.681 GB | 9.653B | 82.5 | 14.523 | 2.719 GB | Get weights Score source |
| Empero Qwen3.8 9BReasoning distillation, not an official Qwen 3.8 9B release. Use a recent llama.cpp build with Qwen3.5 / Gated DeltaNet support; older builds can fail to load it. Apache-2.0 licensed. The 5.780 GB Q4_K_M file is only the weight file: runtime, KV cache and long contexts need additional memory. The recorded MMLU and GSM8K results are from the source checkpoint, not Q4 speed or compatibility tests. | 5.78 GB | 9.653B | Not recorded | — | 2.62 GB | Get weights |
| Index-Translate-9B | 5.78 GB | 9.653B | Not recorded | — | 2.62 GB | Get weights |
| Ornith-1.5-9B | 5.78 GB | 9.197B | Not recorded | — | 2.62 GB | Get weights |
| MiMo-V2.6-Distill-Qwen-9B | 5.841 GB | 8.954B | Not recorded | — | 2.559 GB | Get weights |
| Ternary Bonsai 2 27BCustom Prism llama.cpp kernels required; check backend support. | 5.947 GB | 26.896B | Not recorded | — | 2.453 GB | Get weights |
| Ternary Bonsai 2 27B Abliterated (BoldingBuilds) | 5.947 GB | 26.896B | Not recorded | — | 2.453 GB | Get weights |
| Mitsuba-ComfyUI-27B | 5.998 GB | 27.321B | Not recorded | — | 2.402 GB | Get weights |
| Cloudflare Clef-flash 9BDecision model. llama.cpp uses /v1/systemone; text generation is unavailable. Image input requires current model support plus a compatible multimodal projector. See the Clef comparison for sources and checks. | 6.041 GB | 9.076B | Not recorded | — | 2.359 GB | Get weights |
| gemma-4-12B-it | 7.122 GB | 11.96B | 77.2 | 10.84 | 1.278 GB | Get weights Score source |
| Ternary Bonsai 27BCustom Prism llama.cpp kernels required; check backend support. | 7.165 GB | 26.896B | Not recorded | — | 1.235 GB | Get weights |
| Swift Bonsai 2 27B (PQ2_0) | 7.206 GB | 26.896B | Not recorded | — | 1.194 GB | Get weights |
| Mistral-Nemo-Instruct-2407 | 7.477 GB | 12.248B | Not recorded | — | 0.923 GB | Get weights |
| Mellum2.1 12B A2.5B Thinking | 8.071 GB | 12.15B | Not recorded | — | 0.329 GB | Get weights |
Computers near this memory tier
These are memory candidates, not tested model/runtime matches. Dedicated VRAM is used for GPU-fit planning; system RAM is not treated as VRAM.
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.