← Back to Home

Ornith 1.5-397B Q6_K on M3 Ultra

Created Last updated

M3 Ultra 512 GB · llama-server b9700 · operational probes, not a harness score

Current. Native 262k serve is proven. A cold 246,435-token prefill returned PREFILL_262K_OK in 2,026 s (33.8 min) at 121.6 tok/s effective. RSS 310 GiB. Decode remains 29.7 tok/s. Not an agent score versus Ornith 1.0 or DS4.
Decode
29.7 t/s
246k prefill
122 t/s
RSS
310 GiB
Context now
262,144

What we ran

Official Ornith 1.5-397B is a reasoning MoE on a Qwen 3.5-class backbone. The card’s llama.cpp one-liner is -c 262144. We are on that window now. Weights are the official GGUF Q6_K (~303 GB on disk) on stock Homebrew llama-server b9700 (9724f664e), localhost only, no LaunchAgent, no Hermes route.

Bring-up was 8k (HTTP 400 on an 8,229-token request), then 32k (12.6k prefill passed), then native 262k. No YaRN. The card says static YaRN hurts ordinary-length quality.

/opt/homebrew/bin/llama-server \
  -m Ornith-1.5-397B-Q6_K.gguf \
  -a ornith-15-397b-q6k \
  --host 127.0.0.1 --port 8035 --no-webui --jinja \
  -ngl 999 -fa on -c 262144 --no-context-shift \
  --parallel 1 --cache-ram 0 --no-cache-idle-slots \
  -b 2048 -ub 2048 -ctk q8_0 -ctv q8_0 \
  --threads 8 --threads-batch 24 \
  --temp 0.6 --top-p 0.95 --top-k 20 \
  --reasoning off \
  --chat-template-kwargs '{"enable_thinking":false}'

After the 262k restart, /v1/models reported n_ctx=262144 equal to n_ctx_train. RSS was 307.6 GiB at idle and 308.5 GiB after the 64k prefill. Wired limit on this box is already 480 GB. Context is a prefill-time cost, not a RAM problem.

Measured probes (August 19, 2026)

Single client. Streamed completions used stream_options.include_usage=true. Decode rate is completion_tokens / (total − TTFT). Prefill rate is prompt_tokens / wall with a nonce at the start of the prompt. A 21k run that reused an earlier start nonce looked like 769 tok/s and is not published as cold prefill.

ProbeWindowPromptOutWallRateResult
Exact ORNITH15_OK32k2660.52sexact match, thinking off
Warm decode A32k321284.70s29.65 tok/s decodefinish=length
Warm decode B32k331284.70s29.65 tok/s decodefinish=length
Cold prefill32k71911.94s371 tok/s effectiveZ
Cold prefill32k8,917120.08s444 tok/s effectiveZ
Cold prefill32k12,628527.49s459 tok/s effectivePREFILL_OK
Tool select32k277372.76sget_weather({"city":"Boston"})
Cold prefill262k serve64,4339219.2s294 tok/s effectivePREFILL_64K_OK
Cold prefill262k serve246,435102,026s121.6 tok/s effectivePREFILL_262K_OK

Prefill slowed from 459 tok/s at 12.6k to 294 at 64k to 121.6 at 246k. The 15-minute linear guess was wrong. The measured dump was 33.8 minutes. llama-server logged 2,024,783 ms / 246,435 tokens (121.71 tok/s).

How to read it

What this is not

Next

  1. Hermes canary only, advertised 262k, long timeouts. Keep it off the default route.
  2. Optional --spec-type ngram-mod on a short-context A/B, not during a 246k fill.

Related: the Ornith 1.0 GGUF + MLX recipe from June 29–30. Card: ornith-ai/Ornith-1.5-397B. GGUF: ornith-ai/Ornith-1.5-397B-GGUF.

All numbers in the probe table came from direct HTTP calls on August 19, 2026 against the live localhost server. Official card scores are not reproduced here.