Ornith-1.5-35B-A3B

Ornith-1.5-35B-A3B (UD-Q4_K_S) · llama.cpp :8082 — full 262k-context suite

model  ornith-35bserving  llama.cpp :8082context  262,144 tok (verified)params  35B MoE · A3B (3B active) · UD-Q4_K_Sscores  total 76.55 / 100gbench  0.1.0 · 2026-09-15Gustav RLo  @gustavrlo

01Verdict summary

Advertised context 262,144 — fully usable. Verified to the 327,680-token rejection point (131k / 196k / 262k probes all ok).
MoE throughput profile: ~174 tok/s decode at short context dropping to ~64 tok/s at 131k — attention cost over the long context dominates even for a 3B-active MoE. 2.3× long-context decode penalty.
Concurrency: 3 parallel streams sustain 524 tok/s aggregate at 1k ctx (3.3× solo); at 131k ctx it collapses to solo (1 stream, 66 tok/s) — the long-context KV working set prevents effective batching.
Prefill curve is non-monotonic: 2.9k tok/s @ 256 → 9.8k tok/s @ 16k → 6.2k tok/s @ 131k. Small prompts don't saturate; huge prompts become memory-bandwidth-bound. TTFT @ 131k ≈ 27s.
Sampling sensitivity is high: early stops at temp ≥ 0.7 well below the 256-token cap (canonical@4096: [111, 24, 7] tokens). Greedy is most stable. Serve with temp ≤ 0.4 and/or a strong repetition penalty for long-form output. Decode rates from short runs remain valid (steady-state ITL).

02GBench total score

total
76.55 / 100
performance + needle + tools + hallucination
best dimension
0.95
tool calling
weakest dimension
0.25
hallucination (t256k tier)
testnormalizedweightcontribution
performance0.86200.2521.55 pts
needle0.87500.3026.25 pts
tools0.95000.2523.75 pts
hallucination tier t256k0.25000.205.00 pts

03Decode throughput

Baseline decode by context size, canonical sampling pass (temperature, top_k, top_p).

decode @ 1k ctx
174.7 tok/s
canonical · p50/p95 175.2
decode @ 131k ctx
64.1 tok/s
2.3× long-context penalty
RTT floor
50.1 ms p50
10 probes
ctxttft rawttft corrprefill tok/sdecode tok/sitl p50/p95e2e
2561,555.9 ms1,501.5 ms2,877168.3/171.45.88/7.52 ms1,636 ms
10241,113.8 ms1,059.3 ms6,021174.7/175.25.65/7.82 ms1,711 ms
40962,025.5 ms1,971.0 ms8,481174.1/185.05.83/8.26 ms2,133 ms
163843,133.0 ms3,078.6 ms9,803137.2/148.77.56/9.27 ms3,847 ms
13107227,018.2 ms26,963.8 ms6,25364.1/65.615.68/19.51 ms28,828 ms

Greedy pass (seed, temperature — reduced matrix) and creative pass (min_p, repeat_penalty, temperature, top_p — reduced matrix) agree: 154 / 67 tok/s greedy and 136 / 60 tok/s creative at 1k / 131k.

04Sustained concurrency

pointsolo decodeqos floormax sustainedaggregate tok/s
ctx 1024159.6 tok/s95.83524.4
ctx 50% (131k)65.5 tok/s39.3166.3

Context ceiling: advertised 262,144 = actual working 262,144. Probes — 131,072 ok · 196,608 ok · 262,144 ok · 327,680 rejected (http_400).

05Needle retrieval

180 runs · inline 90 / multi_turn 90 · depths 0.15–1.0 · ctx up to 235,929 · exact-match judge. Decoy capture 0.0% · refusal rate 0.0%. Perfect 1.00 across t1_single and t2_double at every depth and context, both modes — the only losses are t3_decoys at high temperature, with a clear middle dip.

tier · mode4,096 ctx117,964 ctx235,929 ctxmiddle dip
t1_single · inline all depths1.001.001.00no
t1_single · multi_turn all depths1.001.001.00no
t2_double · inline all depths1.001.001.00no
t2_double · multi_turn all depths1.001.001.00no
t3_decoys · inline best depth1.00 @0.150.50 @0.150.50 @0.15yes
t3_decoys · multi_turn best depth1.00 @0.60.75 @0.60.25 @1.0yes

06Tool calling

Native wire format · 2 seeds per scenario · all 6 runs completed, 0 malformed, 0 wrong branches. One spurious call per seed on average was always recovered.

scenariocompletedrounds p50ttft-tool p50malformedspurious
s1_lookup1.003.0057,620 ms02
s2_chain1.004.00517 ms02
s3_branch1.005.00469 ms02

07Hallucination

Delivery tier t256k — corpus del_3048 + lei_13709 in context, ~206,877 tokens delivered. Graded run scored 0/2 correct: both questions refused, none hallucinated. Cold control (no corpus) also 0/10 — not contaminated. The score reflects over-refusal at 256k delivery, not fabrication.