Where the best local models land

Every configuration on the leaderboard is either Local, served on Forcebench’s own hardware (with open weights, the kind of model you could own), or API, reached through a hosted service: the vendor's own API or a third party's. This study puts them on one chart and compares the best local configuration with the API ones: its score, and the tokens and time it spent.

The best local configuration, DeepSeek V4.1 Flash (EXL3 2.9bpw, effort high), scores 59% (95% CI 54–64%). The best API configuration, Claude Opus 5.5 (effort high, reasoning on), scores 90% (95% CI 87–94%): clearly above it. Separately, Claude Opus 4.8 (thinking off) and Claude Sonnet 5 (thinking off) are not clearly different from it (their intervals overlap), but they ran with thinking off, so this page doesn't compare their tokens or time with it.

Score against output tokens, local and API
Each point is one configuration on the full benchmark, at its own effort (see the table); vertical bars are 95% confidence intervals. Further right means more tokens per task.
  • Local (open weights)
  • API
pass@1 against mean output tokens per task, local and APILocal (open weights): DeepSeek V4.1 Flash high 59% at 7.4k tokens, DeepSeek V4.1 Flash high 57% at 9.6k tokens, GLM-5.3 Flash high 43% at 3.4k tokens, Qwen3.8 Flash-Next medium 40% at 5.1k tokens, GLM-5.3 Flash high 37% at 4k tokens, Qwen3.8 Flash-Next medium 37% at 9.8k tokens, DeepSeek V4 Flash Vision high 36% at 16k tokens, MiMo V2.6 Flash thinking on 36% at 14k tokens, GLM-5.3 Flash low 34% at 733 tokens, Gemma 4 31B thinking on 34% at 2.8k tokens, Qwen3.8 Flash-Next medium 34% at 12k tokens, GLM-5.3 Flash thinking off 34% at 2.3k tokens, Gemma 4 26B-A4B thinking on 32% at 5.8k tokens, Qwen3.8 Flash-Next medium 29% at 13k tokens, Qwen3.8 27B low 28% at 3.1k tokens, Qwen3.8 27B low 26% at 3.4k tokens, Qwen3.8 27B medium 24% at 4.7k tokens, Qwen3.8 27B low 24% at 3.3k tokens, Qwen3.8 27B low 22% at 3.4k tokens, Qwen3.8 27B xhigh 21% at 18k tokens, Qwen3.6 35B-A3B thinking on 21% at 6.1k tokens; API: Claude Opus 5.5 high 90% at 2.4k tokens, Claude Opus 5.5 medium 90% at 1.8k tokens, Claude Opus 5.5 low 89% at 1.2k tokens, Grok 4.6 high 84% at 6.2k tokens, GPT-6 Astra medium 84% at 846 tokens, Claude Sonnet 5.5 high 82% at 1.8k tokens, GPT-6 Astra high 80% at 1.8k tokens, GPT-6.1 Sol high 80% at 1.5k tokens, Grok 4.7 high 79% at 13k tokens, Claude Sonnet 5.5 low 77% at 1k tokens, GPT-5.6 Sol medium 77% at 1.4k tokens, Claude Opus 4.8 high 77% at 2k tokens, Gemini 3.8 Flash medium 76% at 7.4k tokens, Claude Fable 5.1 high 76% at 2.1k tokens, Claude Opus 4.8 medium 75% at 1.6k tokens, Claude Sonnet 5.5 medium 75% at 1.1k tokens, Claude Opus 4.8 low 70% at 940 tokens, Claude Opus 4.8 thinking off 69% at 882 tokens, Claude Sonnet 5 high 65% at 2.4k tokens, Claude Haiku 5.5 medium 64% at 2.8k tokens, GPT-6 Luna medium 64% at 1.5k tokens, Claude Haiku 5.5 high 63% at 4.5k tokens, DeepSeek V4.1 Flash high 61% at 9.6k tokens, Claude Sonnet 5 medium 60% at 1.2k tokens, Claude Haiku 5.5 low 59% at 2.2k tokens, Claude Sonnet 5 thinking off 58% at 919 tokens, Claude Sonnet 5 low 55% at 730 tokens, MiMo V2.6 Pro thinking on 55% at 14k tokens, DeepSeek V4 Pro high 55% at 11k tokens, Inkling Small high 45% at 5.4k tokens, GLM-5.3 Flash high 45% at 3.5k tokens, Mistral Large 4 high 38% at 15k tokens, Nemotron 3 Ultra thinking on 38% at 1.8k tokens, Claude Haiku 4.5 thinking on 37% at 5.1k tokens, MiMo V2.6 Flash thinking on 35% at 13k tokens, Claude Haiku 4.5 thinking off 32% at 1.1k tokens, Qwen3.8 Flash-Next thinking on 26% at 21k tokens, Nemotron 3 Super thinking on 25% at 2.6k tokens, Laguna S 2.1 thinking on 24% at 3.4k tokens, Ling 3.0 Flash thinking on 23% at 4.9k tokens, Nemotron 3.5 Lightning thinking on 14% at 6.6k tokens0%25%50%75%100%1k2k5k10k20kMean output tokens per task, reasoning included (log scale)pass@1DeepSeek V4.1 FlashClaude Opus 5.5
Show the numbers
ModelRunsSetupEffortpass@195% CITokens: meanmedian90th pctNo answerMedian time per answer
Claude Opus 5.5APIhigh90%87–942.4k1.5k5.3k<1%16 s
Claude Opus 5.5APImedium90%87–931.8k1.3k4k<1%13 s
Claude Opus 5.5APIlow89%86–931.2k9362.7k1%9.5 s
Grok 4.6APIhigh84%80–886.2k4.3k14k0%68 s
GPT-6 AstraAPImedium84%80–878465022k0%6.9 s
Claude Sonnet 5.5APIhigh82%77–861.8k1.2k4.1k0%9.0 s
GPT-6 AstraAPIhigh80%76–841.8k8654.6k0%12 s
GPT-6.1 SolAPIhigh80%76–841.5k7493.9k0%19 s
Grok 4.7APIhigh79%75–8413k7.4k35k0%105 s
Claude Sonnet 5.5APIlow77%73–821k6992.2k0%5.6 s
GPT-5.6 SolAPImedium77%73–821.4k9433.7k0%10 s
Claude Opus 4.8APIhigh77%73–812k1k5.8k0%12 s
Gemini 3.8 FlashAPImedium76%71–807.4k3.9k22k<1%39 s
Claude Fable 5.1APIhigh76%71–802.1k1.2k4.9k9%17 s
Claude Opus 4.8APImedium75%71–801.6k8284.6k0%9.9 s
Claude Sonnet 5.5APImedium75%70–791.1k7472.7k0%5.6 s
Claude Opus 4.8APIlow70%65–759405732.4k0%7.1 s
Claude Opus 4.8APIthinking off69%64–738825492.2k0%6.8 s
Claude Sonnet 5APIhigh65%60–702.4k9787.2k0%9.8 s
Claude Haiku 5.5APImedium64%59–692.8k1.7k7k0%7.7 s
GPT-6 LunaAPImedium64%58–691.5k1.1k3.4k0%15 s
Claude Haiku 5.5APIhigh63%58–684.5k2.5k11k<1%11 s
DeepSeek V4.1 FlashAPIhigh61%56–669.6k6.8k27k0%126 s
Claude Sonnet 5APImedium60%55–651.2k5623.3k0%7.2 s
Claude Haiku 5.5APIlow59%54–642.2k1.4k4.8k0%6.6 s
DeepSeek V4.1 FlashLocalEXL3 2.9bpw · vLLM + ExLlamaV3high59%54–647.4k3.5k22k6%150 s
Claude Sonnet 5APIthinking off58%52–639195862.1k0%6.6 s
DeepSeek V4.1 FlashLocalNative FP8, FP4 experts · SGLanghigh57%52–629.6k6.1k26k8%253 s
Claude Sonnet 5APIlow55%50–617304082k0%5.0 s
MiMo V2.6 ProAPIthinking on55%50–6114k9.5k33k20%252 s
DeepSeek V4 ProAPIhigh55%49–6011k7.8k27k6%113 s
Inkling SmallAPIhigh45%40–515.4k3.9k12k0%41 s
GLM-5.3 FlashAPIhigh45%40–513.5k1.1k9k1%22 s
GLM-5.3 FlashLocalEXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3high43%38–483.4k1.1k10k2%64 s
Qwen3.8 Flash-NextLocalNVFP4 · vLLMmedium40%34–455.1k2.9k11k2%75 s
Mistral Large 4APIhigh38%33–4315k10k33k28%162 s
Nemotron 3 UltraAPIthinking on38%33–431.8k1k3.7k0%33 s
Claude Haiku 4.5APIthinking on37%32–425.1k4.6k10k0%33 s
GLM-5.3 FlashLocalEXL3 4.0bpw experts, 4-bit dense · TensorFoldhigh37%32–424k1.2k10k2%45 s
Qwen3.8 Flash-NextLocalMLX 4-bit · MTPLXmedium37%31–429.8k4.4k33k12%58 s
DeepSeek V4 Flash Vision experimentalLocalFP8 + FP4 experts · vLLMhigh36%31–4216k14k33k18%858 s
MiMo V2.6 FlashLocalFP8 + MXFP4 experts · SGLangthinking on36%31–4114k7.1k33k25%1029 s
MiMo V2.6 FlashAPIthinking on35%30–4013k6.7k33k23%142 s
GLM-5.3 FlashLocalEXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3low34%29–407334011.9k0%23 s
Gemma 4 31BLocalQAT W4A16 · vLLMthinking on34%29–392.8k2.3k5.3k0%35 s
Qwen3.8 Flash-NextLocalMLX 4-bit · TensorFoldmedium34%29–3912k5.7k33k15%215 s
GLM-5.3 FlashLocalEXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3thinking off34%29–392.3k6444.4k0%38 s
Gemma 4 26B-A4BLocalNVFP4 · vLLMthinking on32%27–375.8k5.6k10k0%45 s
Claude Haiku 4.5APIthinking off32%27–371.1k6572.3k0%5.8 s
Qwen3.8 Flash-NextLocalINT4-AutoRound, 5 of 10 experts · TensorFold (Zig)medium29%24–3413k5.9k33k26%130 s
Qwen3.8 27BLocalMLX 8-bit · MTPLXlow28%24–333.1k2k5.4k0%54 s
Qwen3.8 27BLocalMLX 4-bit · MTPLXlow26%21–313.4k2.2k6.4k0%45 s
Qwen3.8 Flash-NextAPIthinking on26%21–3021k22k33k34%388 s
Nemotron 3 SuperAPIthinking on25%20–302.6k1.6k5.3k<1%15 s
Laguna S 2.1APIthinking on24%19–283.4k52210k3%13 s
Qwen3.8 27BLocalAWQ-INT4 · vLLMmedium24%19–284.7k2.8k9k2%20 s
Qwen3.8 27BLocalAWQ-INT4 · vLLMlow24%19–283.3k2.2k8.4k1%15 s
Ling 3.0 FlashAPIthinking on23%18–274.9k1.9k11k2%35 s
Qwen3.8 27BLocalSplash 4-bit · Splashlow22%18–273.4k2.3k7.1k0%54 s
Qwen3.8 27BLocalAWQ-INT4 · vLLMxhigh21%17–2618k18k33k25%141 s
Qwen3.6 35B-A3BLocalNVFP4 · vLLMthinking on21%16–256.1k4.6k11k2%29 s
Nemotron 3.5 LightningAPIthinking on14%10–186.6k5k14k0%166 s

The best local model and the API ones around it

The best local configuration, the best API one in the same reasoning state, every API one whose interval overlaps it, and the best API one overall.

ModelRunsEffortpass@195% CITokens: meanmedian90th pctNo answerMedian time per answer
DeepSeek V4.1 Flashbest localLocal · EXL3 2.9bpw · vLLM + ExLlamaV3high59%54–647.4k3.5k22k6%150 s
Claude Opus 5.5best API, reasoning onAPIhigh90%87–942.4k1.5k5.3k<1%16 s
Claude Opus 4.8APIthinking off69%64–738825492.2k0%6.8 s
Claude Sonnet 5APIhigh65%60–702.4k9787.2k0%9.8 s
Claude Haiku 5.5APImedium64%59–692.8k1.7k7k0%7.7 s
GPT-6 LunaAPImedium64%58–691.5k1.1k3.4k0%15 s
Claude Haiku 5.5APIhigh63%58–684.5k2.5k11k<1%11 s
DeepSeek V4.1 FlashAPIhigh61%56–669.6k6.8k27k0%126 s
Claude Sonnet 5APImedium60%55–651.2k5623.3k0%7.2 s
Claude Haiku 5.5APIlow59%54–642.2k1.4k4.8k0%6.6 s
Claude Sonnet 5APIthinking off58%52–639195862.1k0%6.6 s
Claude Sonnet 5APIlow55%50–617304082k0%5.0 s
MiMo V2.6 ProAPIthinking on55%50–6114k9.5k33k20%252 s
DeepSeek V4 ProAPIhigh55%49–6011k7.8k27k6%113 s

No answer is the share of tasks where a configuration gave no answer, usually because it used its whole 32,768-token output budget first. Those answers count the full budget, so a high no-answer rate inflates a configuration's mean tokens: in this table, DeepSeek V4.1 Flash (EXL3 2.9bpw, effort high) gave no answer to 6% of tasks, MiMo V2.6 Pro (thinking on) gave no answer to 20% of tasks and DeepSeek V4 Pro (effort high) gave no answer to 6% of tasks.

Same reasoning state

DeepSeek V4.1 Flash and Claude Opus 5.5, both reasoning on

Score: DeepSeek V4.1 Flash (effort high) 59% (95% CI 54–64%); Claude Opus 5.5 (effort high) 90% (95% CI 87–94%), clearly above it.

Output tokens per task, reasoning included: DeepSeek V4.1 Flash writes a mean of 7.4k, a median of 3.5k and a 90th percentile of 22k; Claude Opus 5.5 a mean of 2.4k, a median of 1.5k and a 90th percentile of 5.3k.

Median time per answer: 150 s for DeepSeek V4.1 Flash and 16 s for Claude Opus 5.5. That is what waiting looked like here, not a property of either model: the local model ran on hardware a small team could own, the API one on its vendor's data-centre hardware.

Score

Not clearly different from 12 API configurations

DeepSeek V4.1 Flash (effort high) scores 59% (95% CI 54–64%). Its interval overlaps Claude Opus 4.8 (thinking off) and Claude Sonnet 5 (thinking off), so the scores are not clearly different; those ran with thinking off, so their tokens and time aren't compared with a configuration that reasons. In the same reasoning state, its interval overlaps Claude Sonnet 5 (effort high), Claude Haiku 5.5 (effort medium), GPT-6 Luna (effort medium), Claude Haiku 5.5 (effort high), DeepSeek V4.1 Flash (effort high), Claude Sonnet 5 (effort medium), Claude Haiku 5.5 (effort low), Claude Sonnet 5 (effort low), MiMo V2.6 Pro (thinking on) and DeepSeek V4 Pro (effort high): not clearly different. 17 API configurations score clearly above it: their intervals don't overlap.

How the tokens were counted

Output tokens include reasoning everywhere on this page. They come from the usage each provider or server reports (what it bills, for a vendor's API), never from counting the text that comes back, which for some models is only a summary of their reasoning, or none of it:

Each model family uses its own tokeniser, so the same text can be a different number of tokens across vendors. Treat token comparisons across vendors as approximate.

The mean, the median and the 90th percentile are over each configuration's answers. A few very long answers pull a mean well above the median, which is why both are shown.

Tokens are the fairer measure of cost. Time per answer mostly measures the hardware and how many requests ran at once: the local models here ran on hardware a small team could own, one to eight requests at a time depending on the run, while a vendor's API runs on data-centre hardware.

What to keep in mind

The best local model is not clearly different from some API models running with thinking off, and clearly below the best API ones. The reasons to run your own are data control and a model that doesn't change under you. See Sovereign AI.

Want this for your team?

Azul Labs runs Forcebench privately for two kinds of Salesforce team.

Choosing a model to run yourself?

A private benchmark of your shortlist

Open-weight models at the quantisations and reasoning efforts you could run on infrastructure you control, tested on your kind of Salesforce work, with a written recommendation.

  • Private tasks written from your work only ever run on local models; they are never sent to an API.
  • Re-testing after any change of model, quantisation or engine is available.
  • Typical turnaround is 2–3 weeks; large models take about a day of machine time per configuration.

Building or buying a Salesforce AI tool?

A private evaluation of your tool

Your tool on held-out tasks it has never seen, against API baselines (models reached through a hosted service) and Local ones (served on Forcebench’s own hardware), with a written report on where it holds up and where it fails.

  • It can start as a smaller pilot, about 30 held-out tasks with your tool against two baselines, before a full evaluation.
  • Repeat evaluations after your releases are available.
  • Typical turnaround is 2–3 weeks.

Fixed fee, quoted up front. The quote depends on the number of tasks and the number of models, tools or configurations tested.

Or email leo@azl.au · azl.au