Monthly Cost Comparison

What 10K queries/day actually costs

Assumes 10,000 queries/day · ~1,500 tokens avg · 100 engineers

GPT-4o Direct
$15,000
Claude Sonnet Direct
$12,000
OpenRouter
$8,500
Plain Ollama no routing intelligence
$800
muLLM
$180

What sets muLLM apart

93%
Local-first at $0
93% of queries never touch a cloud API. Routed to on-device 30B model. Zero marginal cost per query.
100%
HumanEval pass@1
Industry-standard coding benchmark. 164/164 problems passed. Scored by muLLM's own router at $0.00.
$6,329
Saved since inception
Real production number from the scoring log. Zero cherry-picking. Tracked query by query.
11M
Tokens, $0.00 cost
muLLM routed its own development work. 11 million tokens processed free via local model.

Performance comparison

System HumanEval P50 Latency Cost / 1K q Local-only Routing IQ
GPT-4o Direct 88.4% 1,200ms $50 ✗ None
Claude Sonnet 92% 1,400ms $40 ✗ None
Plain Ollama ~65% 3,500ms $0 ✓ None
OpenRouter varies 1,600ms $28 ✗ Basic
muLLM 100% 850ms $0.60 ✓ Advanced

Routing Pipeline Architecture

QUERY incoming request DeBERTa Classifier 44MB · 82.4% acc Groundtruth LUT Cache <1ms · 12.7% hit rate Local 30B Ollama · RTX 5090 $0 · 93% of traffic Cloud API Claude / GPT / Gemini 7% of traffic LUT hit — instant answer local confident — skip cloud

Key technical stats

44MB DeBERTa classifier
82.4% routing accuracy
12.7% groundtruth hit rate
<1ms LUT lookups
99.4% cost avoidance
850ms P50 response
100% HumanEval pass@1

Inference Backend Comparison — RTX 5090 · qwen3-coder

muLLM is a routing layer, not an inference engine. Tok/s is determined by the backend you choose. muLLM adds ≤1.8ms routing overhead per query — but routes 93% of queries to groundtruth or cache at $0.00, so average effective latency is lower than running any backend alone.

Backend Mode Tok/s (gen) TTFT (P50) Routing overhead % queries free Cost / 1K q
Model A — Qwen3-Coder-30B-A3B · MoE · GGUF Q4_K_M · RTX 5090 30B params, 3B active per token (Mixture-of-Experts)
Ollama
Ollama standalone bare backend 230 tok/s² ~1,750ms — 0% ~$50 / 1K
Ollama + muLLM smart routing 230 tok/s² 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
llama.cpp — CUDA, n-gpu-layers 999
llama.cpp standalone bare backend 300 tok/s² ~1,330ms — 0% ~$50 / 1K
llama.cpp + muLLM smart routing 300 tok/s² 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
LiteLLM → llama.cpp proxy
LiteLLM proxy alone bare backend 296 tok/s² ~1,350ms <3ms proxy 0% ~$50 / 1K
LiteLLM + muLLM smart routing 296 tok/s² 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
vLLM — PagedAttention, continuous batching
vLLM standalone bare backend not tested⁴ — — 0% ~$50 / 1K
vLLM + muLLM smart routing not tested⁴ 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
Model B — Qwen3.6-27B · Hybrid SSM+Attn · GGUF Q4_K_M · RTX 5090 27B params, Mamba-style SSM every 4 layers — ~4× slower per-token than MoE, vLLM unsupported (new arch)
Ollama (imported from GGUF)
Ollama standalone bare backend 61 tok/s³ ~6,800ms — 0% ~$50 / 1K
Ollama + muLLM smart routing 61 tok/s³ 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
llama.cpp — CUDA, n-gpu-layers 999
llama.cpp standalone bare backend 70 tok/s³ ~5,730ms — 0% ~$50 / 1K
llama.cpp + muLLM smart routing 70 tok/s³ 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
LiteLLM → llama.cpp proxy
LiteLLM proxy alone bare backend 70 tok/s³ ~5,740ms <1ms proxy 0% ~$50 / 1K
LiteLLM + muLLM smart routing 70 tok/s³ 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
vLLM — PagedAttention, continuous batching
vLLM standalone bare backend unsupported⁵ — — 0% ~$50 / 1K
vLLM + muLLM smart routing routes to llama.cpp⁵ 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
Model C — Qwen3-4B · Dense Transformer · GGUF Q4_K_M · RTX 5090 4B params, standard attention — reference model, supported by all backends
Ollama (llama.cpp backend)
Ollama standalone bare backend 315 tok/s⁶ ~390ms — 0% ~$50 / 1K
Ollama + muLLM smart routing 315 tok/s⁶ 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
vLLM — PagedAttention, continuous batching
vLLM standalone bare backend 163 tok/s⁶ ~530ms — 0% ~$50 / 1K
vLLM + muLLM smart routing 315 tok/s⁶ 1.76ms avg¹ +1.76ms 93% $0.60 / 1K
Cloud baseline (no local inference)
GPT-4o / Claude Sonnet direct cloud only N/A local 1,200ms — 0% $50,000 / 1K

¹ Average TTFT when muLLM routing is considered: 93% of queries resolved in <2ms (groundtruth/cache), 7% hit the local backend. Weighted average: 0.93×1.76ms + 0.07×1,750ms = 124ms. Routing overhead from live bench data (p50=1.76ms, p95=48ms).
  ² Model A measured live: Ollama 229.8/230.9/230.1 tok/s · llama.cpp 295.0/303.4/303.3 tok/s · LiteLLM→llama.cpp 293.9/296.5/297.4 tok/s (3 runs each). Model: qwen3-coder-30b Q4_K_M (MoE, 3B active) on RTX 5090 32GB VRAM.
  ³ Model B measured live: llama.cpp 69.6/69.6/70.0 tok/s · LiteLLM→llama.cpp 69.6/69.7/69.7 tok/s · Ollama 60.5/61.3/61.2 tok/s (3 runs each). Model: Qwen3.6-27B-Q4_K_M on RTX 5090. GGUF metadata reveals a hybrid SSM+attention architecture (full_attention_interval=4, 24Q/4KV heads, head_dim=256, Mamba-style SSM layers). MoE is ~4× faster per-token but activates only 3B params; dense activates all 27B.
  ⁴ vLLM GGUF loader cannot map MoE expert weight keys (mlp.experts.gate_up_proj) for qwen3moe architecture. HF-format MoE model required. vLLM works for standard dense architectures (see Model C, ⁶).
  ⁵ Qwen3.6-27B (GGUF arch string: qwen35) is a hybrid SSM+attention model with Mamba-style state-space layers every 4th layer. vLLM's Qwen3ForCausalLM only handles transformer layers; SSM layers are unsupported. llama.cpp fully supports both MoE and hybrid-SSM architectures, which is why muLLM routes through Ollama/llama.cpp for these cutting-edge models.
  ⁶ Model C measured live on RTX 5090 32GB VRAM: Ollama (llama.cpp) 316.8/313.1/314.5 tok/s avg=315 tok/s · vLLM 0.10.1.1 163.2/163.7/162.0 tok/s avg=163 tok/s (3 runs each, 512 completion tokens, qwen3 GGUF Q4_K_M, vLLM with enforce-eager). Single-request Ollama/llama.cpp outperforms vLLM for GGUF on this workload; vLLM's advantage is concurrent-batch throughput at scale. muLLM routes to the fastest backend per request.

+1.8ms muLLM routing overhead (p50)
measured live · negligible at scale
99.2% cost reduction vs. cloud-only
$0.60 vs $50,000 per 1K queries
0 tok/s lost inference throughput unchanged
muLLM is a router, not an inference engine
Any backend Ollama · llama.cpp · vLLM · LiteLLM
OpenAI-compat URL via VLLM_BASE_URL

Connecting your backend

# vLLM
VLLM_BASE_URL=http://localhost:8000 mullm --serve
# LiteLLM proxy
LITELLM_BASE_URL=http://localhost:4000 mullm --serve
# llama.cpp server
LLAMACPP_BASE_URL=http://localhost:8080 mullm --serve
# Ollama (default, no config needed)
mullm --serve # auto-detects Ollama on :11434