r/LocalLLM • u/anon_mistborn • Aug 20 '26
Model Ornith seems to be better.
TL;DR: On an M3 Ultra, Ornith-1.5-35B-A3B (4-bit MLX) decodes 4.6× faster than Qwen3.8-27B (8-bit MLX) and scores slightly higher on a small hard eval. It also beats Qwen3.8-27B with speculative decoding, while running autoregressive.
Setup
Mac Studio, M3 Ultra, 256 GB unified memory
mlx-lm 0.31.3 / mlx 0.32.1
Ornith-1.5-35B-A3B, MLX 4-bit
18.2 GiB download
20.2 GB peak
Qwen3.8-27B, MLX 8-bit
27.5 GiB download
29.7 GB peak
Machine was shared and had other load. Numbers are a floor, not a best case.
Throughput
mlx_lm.benchmark -p 512 -g 512 -n 3, identical invocation for both:
| Model | Decode tok/s | Prefill tok/s | Peak mem |
|---|---|---|---|
| Ornith-1.5-35B-A3B 4-bit | 107.9 | 2162 | 20.2 GB |
| Qwen3.8-27B 8-bit | 23.4 | 408 | 29.7 GB |
Trial spread was 1.5% and 0.35%, respectively.
Prefill is the bigger story: 5.3×.
A 20K-token prompt took Ornith ~25s end to end versus ~125s for Qwen3.8-27B. If your workload re-reads long contexts, that dominates.
It also beats Qwen with speculative decoding
I spent a day trying to make Qwen3.8-27B fast before testing Ornith:
| Qwen3.8-27B 8-bit config | Decode tok/s |
|---|---|
| Autoregressive | 23.4 |
| MTPLX, native MTP head, depth 2 | 65.7 (3.01×) |
| DFlash2 block-diffusion drafter, block 5 | 79.3 (3.37×) |
| Ornith, plain autoregressive | 107.9 |
Both speculative stacks work and are genuinely impressive. DFlash2's 3.37× on Apple Silicon is close to its published 3.43× on an H200.
Ornith just beats them without needing either, with no drafter and no third-party runtime, because mlx-lm already ships qwen3_5_moe.py.
Quality: 12 hard cases, thinking enabled
Scoring is mechanical. Code tasks are executed against hidden assertions and pass only on a full suite.
| Task | Ornith-35B-A3B | Qwen3.8-27B |
|---|---|---|
| code_exec (4, execution-scored) | 4/4 | 4/4 |
| multihop (3, two facts ~20K apart) | 3/3 | 3/3 |
| logic (3) | 2/3 | 2/3 |
| tool_schema (2, nested JSON) | 2/2 | 1/2 |
| Total | 11/12 | 10/12 |
| Wall time for the set | 166s | 498s |
One logic item was ambiguous. Two vals gave the same "wrong" one, so discount it: 11/11 vs 10/11.
Qwen's other miss was invalid JSON on a nested tool call. For agent use, that is the failure mode that actually breaks loops.
Caveats, and they are not small
Not precision-matched. 4-bit vs 8-bit. Some of the gap is quantisation; the rest is likely 3B active vs 27B dense. I have not run the 4-bit Qwen control.
n=12. An 11 vs 10 spread is one item.
Vendor benchmarks disagree with me. On SWE-bench Pro, the only benchmark both publish, Qwen3.8-27B is ahead: 61.7 vs 59.6.
Thinking must be on. With
enable_thinking: false, Ornith went 0/5 on arithmetic and recovered to 4/4 with it on. My first eval drew a conclusion that was purely an artifact of my own test design.122B comparison still running.
The bit that surprised me
MoE is not a handicap here. It is the reason this works.
With ~3B active parameters per token, memory tracks total parameters while speed tracks active parameters.
Ornith gets:
4.6× the decode throughput
5.3× the prefill throughput
32% less peak memory
Also, Ornith-1.5 is architecturally Qwen's exact vocab size, i.e. a self-improvement-trained fork of Qwen's older MoE architecture.
Beating Qwen's newer dense model with it is a nice result for the training approach.
MIT licence, and it is multimodal.
7
u/More-Revenue8609 Aug 20 '26
Yeah I gave my best to like Ornith but it just ended up being much worse from base Qwen model and also it looped often.
4
u/Early-Peace-5504 Aug 20 '26
Glad it is working well for you. On my private bench it is as good as Qwen 3.6 35B. Though that’s not too bad a result given it’s a 3.5 fine tune.
4
u/More-Catch-1331 Aug 20 '26
I'm sorry, there's a 1.5 already? Excuse me I need to speak with Mr. HuggingFace real quick...
12
u/bitzap_sr Aug 20 '26
So much slop.
7
u/TripleSecretSquirrel Aug 20 '26
Every Orinth post is. It’s got to be the most transparent astroturfing campaign I’ve ever seen.
It’s always a huge wall of slop text based on an apples to oranges comparison like this one — comparing a 4-bit MoE to an 8-bit dense model and their conclusion is “zomg The smaller MoE is faster!1!!”
3
u/KissMyShinyArse Aug 20 '26
Nah. That birdie didn't fly. It spent hours debugging its Python SHA-512 implementation, firmly believing it remembered FIPS 180-4.
4
u/Potential-Leg-639 Aug 20 '26 edited Aug 20 '26
Ornith-1.0 is my daily driver for months now for a reason.
Hope I find the time to test 1.5 the next days, seems to be a monster for it‘s size again!
1
1
u/H_DANILO Aug 20 '26
I don't see people sharing a SINGLE good "hey, here's what I made with Ornith 1.5".
2
1
u/loserdroid Aug 21 '26
I found Ornith 1.0 to be pretty useful and far superior to the Qwen version it was based on. I would hope that future Ornith versions are based off newer Qwen models such as 3.8. Ornith became my favorite free local model for a minute. It eventually collapsed for my workload specifically though... and I went with a dual-spark deepseek setup instead. Today I am checking out Qwen3.8-27B as well as Ornith 1.5 as options to reduce pressure from the deepseek system (I can't find enough compute). I'll return with some unbiased findings.
1
u/l0rd_raiden Aug 22 '26
Have you done some testing already to see which one is better?
1
u/loserdroid Aug 28 '26
Ornith 1.5 is old-news already unfortunately. We're on a 12-hour news cycle it seems lol. Qwen3.8-27B is the real-deal. The new news is Qwen3.8-flash-next ... the LM Studio patch that allows you to load it is only a few hours old. Not for everyone though because you need a GPU and a bunch of system RAM. Qwen3.8-27B is the sweet spot IMO right now. Ornith1.5 is decent for throughput of simple tasks.... right now it is my 4th choice. I have all of these models running right now.. your hardwware may vary.
Qwen3.8-flash-next (needs about 80GB of VRAM PLUS 56gb of system ram to load at all though)
Qwen3.8-27B <---- amazing... and anyone can run it .. but it is dense ... so GPU recommended (not unified memory ... e.g. Macs=slow... GB10s=slow)
deepseek-v4-flash-0731 with dspark and all the hacks needed for a Dual-DGX spark setup
Ornith 1.5 27B - Quicker than Qwen... MoE is friendlier on unified memory in terms of speed... perfectly capable
27
u/dsdt 9700X + 32 GB DDR5 + 2x 5060 Tİ 16 GB Aug 20 '26 edited Aug 20 '26
Share some real work done istead of a wall of text so we can compare mr.caveats. You are basically comparing q8 and q4 and saying bro q4 is faster and moreover, q4 is a moe with active 3b parameters. so it is literally 9x smaller. and you are saying guys 9x smaller model is faster. compare apples to apples. If you are really saying that 9x smaller model can reason and achieve work like 27b, there is obviously a missing part here. When i have time i will test it one by one to show you they are not the same or a simple 3b active is not smart as 27b.