Runs on ≤8 GB · Hugging Face ↗
Not independently scored by Artificial Analysis
A 4B dense model (Apache-2.0) with a 262K context. The instruct half of the 2507 refresh, so it answers directly instead of writing a reasoning trace first.
BigCodeBench-Hard pass@1 24% (35/148), via official protocol · llama.cpp F16 · one request at a time · a shared cluster GPU · mean of 3 runs, range 0.0 pp. The brutal counterpart to HumanEval — where HumanEval saturates near the top, BCB-Hard spreads the field, so this is the number that actually separates coding ability.
Our own runs on this model. Each number carries how many problems it is over and how many times we ran it — these are not comparable with each other, and none of them is on the same scale as the third-party indices on the leaderboard.
| test | score | over | conditions |
|---|---|---|---|
| BigCodeBench-Hard | 23.6% | n=148 · 3 run(s) | official protocol · llama.cpp F16 · one request at a time · a shared cluster GPU · mean of 3 runs, range 0.0 p |
| BFCL v4 non-live | 87.9% ± 2.1 | n=1150 · 2 run(s) | BFCL v4 · F16 GGUF via llama.cpp · one request at a time · a shared cluster GPU |
87.9% ± 2.1 over 1150 problems
F16 · a shared cluster GPU · KV f16 · 2 runs · spread between runs 0.00 points. This is the non-agentic half of BFCL: does the model call the right function with the right arguments. It says nothing about how it behaves over a long agentic conversation, which is a separate measurement. The score is BFCL’s own: the unweighted mean of four groups (simple, multiple, parallel, parallel multiple), where simple is itself the mean of Python, Java and JavaScript. Every group counts the same whatever its size, and irrelevance detection — which we also measure, another 240 problems — is not part of it. The margin follows that same weighting.
Real GGUF file sizes = weight VRAM. Add the KV cache for your context (≈5 GB at 32K, fp16). Read from the GGUF header and checked against what llama.cpp actually allocates.
| Quantization | Size |
|---|---|
| IQ1_S | 1.1 GB |
| IQ1_M | 1.1 GB |
| IQ2_XXS | 1.3 GB |
| IQ2_M | 1.5 GB |
| Q2_K | 1.7 GB |
| Q2_K_L | 1.7 GB |
| IQ3_XXS | 1.7 GB |
| Q2_K_XL | 1.7 GB |
| Q3_K_S | 1.9 GB |
| Q3_K_M | 2.1 GB |
| Q3_K_XL | 2.1 GB |
| IQ4_XS | 2.3 GB |
| Q4_0 | 2.4 GB |
| IQ4_NL | 2.4 GB |
| Q4_K_S | 2.4 GB |
| Q4_K_M | 2.5 GB |
| Q4_K_XL | 2.5 GB |
| Q4_1 | 2.6 GB |
| Q5_K_S | 2.8 GB |
| Q5_K_M | 2.9 GB |
| Q5_K_XL | 2.9 GB |
| Q6_K | 3.3 GB |
| Q6_K_XL | 3.7 GB |
| Q8_0 | 4.3 GB |
| Q8_K_XL | 5.1 GB |
| F16 | 8.1 GB |
Measured unquantised (F16, 7.5 GiB), which fits a 12 GB card; at Q4 it drops to about 2.5 GB and fits anything. Read the number below as what the 4B gives you before losing anything to quantisation.