Skip to content

Results: the short version

We asked 320 methods one router question: which of five tasks does a FontLab user want? There were 67 queries in 30 languages, and each method was scored twice, on English translations and on the original text. The hosted reference, jev, answered 65 of 67 either way. Rune Q5 on pcdServer matches it in both modes at 962 ms/query with CPU weights. An earlier local method matched it on translated text: rune-26b-a4b version 1 at Q3_K_M, which scored 65/67 but fell to 57/67 on the original text. Among the 4B models, Qwen3.5-4B-Hmm on pcdServer scored 64/67 and 65/67 in 88 ms, and the best small local dedicated model, NeoHorse-Jev-4B, scored 64/67 in both modes in 273 ms. The fastest method at 60/67 or better is GLiNER2.5-Decide on Core ML CPU/GPU: 61/67 on translated text in 21.9 ms.

Rune Q5 full Metal adds a separate 64/64 at 153.3 ms run: 6.3× faster, with one fewer correct answer in each mode than its retained mixed run. Ornith Splash adds 62/63 at 322.4/328.5 ms translated/direct. Only these completed new runs appear; the explorer explains exclusions and device evidence.

The separate Rune Q4 Metal rerun scores 63/67 translated and 64/67 direct at 124.8 ms, against 487.1 ms with CPU weights. Every row now carries a C/G execution label. Explore the Pareto diagrams with your own accuracy floor: laya on MLX reaches 52/67 translated in 6.9 ms.

Fresh OpenRouter Jev scores 65/67 in both modes at 364.4 ms translated and 375.1 ms direct. Tev1 reaches 65/67 direct at 335.1 ms; Kev reaches 65/67 in both modes but takes over 1.5 seconds per query. All nine endpoints appear under OpenRouter API in the explorer.

The top fifteen

The 15 best methods by translated score, then direct score, then speed. Click to sort.
EngineC/GModelFamilyQuantGBms/queryTranslatedDirect
OpenRouter APIRtypesafe/jev-1.13dedicated364.465/6765/67
pcdServerC+Grune-mradermacher-26b-a4bdedicatedq519.13962.365/6765/67
OpenRouter APIRjaredpalmer/kev-4bdedicated1,653.065/6765/67
slot (llama-server)Grune-26b-a4bdedicatedq313.52366.665/6757/67
pcdServerGqwen3.5-4b-hmmfine-tunedq84.4887.664/6765/67
pcdServerGqwen3.5-4b-hmmfine-tunedq42.7192.664/6765/67
pcdServerGqwen3.5-4b-hmmfine-tunedbf168.4294.864/6765/67
OpenRouter APIRtogethercomputer/tev1-4b-experimentaldedicated339.364/6765/67
ollayaGwinnow-12bdedicatedq8_012.67891.164/6765/67
pcdServerGrune-mradermacher-26b-a4bdedicatedq313.29146.164/6764/67
pcdServerGrune-mradermacher-26b-a4bdedicatedq519.13153.364/6764/67
dohnuts (Metal)Gdecider-35b-a3bdedicatedq421.17266.364/6764/67
System One serverGneohorse-4bdedicatedq85.17273.164/6764/67
slot (llama-server)Gdecider-35b-a3bdedicatedq421.17299.164/6764/67
dohnuts (Metal)Gjpt-4bdedicatedq84.48335.664/6764/67

Best per engine

Scores read translated / direct, out of 67. A dash means the model reads English only.

  • dohnuts (Metal): decider-35b-a3b at Q4, 64 / 64 in 266 ms from 21 GB. The small decider-0.8b that ornotto registers scores 62 / 61 in 52 ms from 0.81 GB.
  • pcdServer: Rune Q5 scores 65 / 65 in 962 ms with CPU weights and Metal computation (C+G). Qwen3.5-4B-Hmm at Q8 scores 64 / 65 in 88 ms on GPU; its 2.7 GB Q4_K_M file scores the same in 93 ms.
  • slot (llama-server): rune-26b-a4b at Q3, 65 / 57 in 367 ms from 13.5 GB. pcdServer rejects its Gemma 4 files, so it runs only here.
  • ollaya: winnow-12b, 64 / 65 in 891 ms from 12.7 GB.
  • Encoders: GLiNER2.5-Decide on Core ML CPU/GPU, 61 / – in 21.9 ms. laya is the only method under 10 ms with a useful score: 52/67 in 7 ms on MLX.

The full list, one row per engine and runtime, is in chapter 6.

What to pick

  • A good default: decider-0.8b on dohnuts. It scores 62/67 in 52 ms from 0.81 GB, and its probabilities are calibrated.
  • Accurate local routing around 90 ms: Qwen3.5-4B-Hmm on pcdServer, 64/67 translated and 65/67 on the original text, from 2.7 GB at Q4_K_M. It needs no translator.
  • Remote decisions: ornotto now supports all nine measured OpenRouter endpoints through its native API. Compare their scores and network-inclusive latency in the remote results table, or choose Engine: OpenRouter API in the explorer. Respan uses a separately labelled noul OVR readout.

Chapter 12 covers the other cases, from graded answers to several questions about one message.

Where to read more

  • Results: every table has all 320 rows, filterable and sortable, and every other table the benchmark produced.
  • Chapter 5 explains how we measured and what each column means.
  • Chapter 6 reads the results model by model.
  • Chapter 7 covers quantization and file size.
  • Chapter 8 explains where the milliseconds go.
  • Chapter 9 tests whether the probabilities can be trusted.

Two methods within two or three queries of each other are not measurably different here. To rank models on your own decision, run them on your own labelled examples.