Downloads · 30 days
2.4K
6% of all-time downloads
LordNeel/Ornith-1.0-35B-GGUF-llamacpp-tp1
Ornith-1.0-35B-GGUF-llamacpp-tp1 is a text generation model from LordNeel. Use it when you need the model to write or continue text. It is set up for gguf. The card lists the license as mit.
Single-GPU llama.cpp GGUF package for deepreinforce-ai/Ornith-1.0-35B. The supported serving policy is tp=1 — one model copy per GPU. Multi-GPU tensor-parallel serving is intentionally out of scope for this version.
Downloads · 30 days
2.4K
6% of all-time downloads
All-time downloads
42.6K
Public
Repo size
192 GB
Likes
10
Public
Click a slice to open those files.
.gguf170 GB · 100%
From the Hugging Face model README
tp=1)Single-GPU llama.cpp GGUF package for deepreinforce-ai/Ornith-1.0-35B.
The supported serving policy is tp=1 — one model copy per GPU. Multi-GPU
tensor-parallel serving is intentionally out of scope for this version.
This release ships six body quants (Q3_K_M → Q8_0) plus an integrated IQ4_XS-MTP graft that adds a native multi-token-prediction (MTP) draft head for low-concurrency speculative decode. Quant quality is measured against the upstream BF16 GGUF with a native llama.cpp next-token top-64 KL-divergence probe over 32 coding prompts.
| Use case | Recommended artifact | Key numbers |
|---|---|---|
| Default serving speed | ornith-1.0-35b-Q4_K_M.gguf | 19.71 GiB on disk, 21.31 GiB loaded VRAM, 243.3 tok/s c1, 655.6 tok/s c16 |
| Lowest memory | ornith-1.0-35b-Q3_K_M.gguf | 15.61 GiB on disk, 17.27 GiB loaded VRAM, 240.5 tok/s c1, 493.0 tok/s c16 |
| Middle footprint | ornith-1.0-35b-IQ4_XS.gguf | 17.64 GiB on disk, 19.34 GiB loaded VRAM, 0.1426 mean top-64 KLD nats |
| Highest fidelity / footprint | ornith-1.0-35b-Q6_K.gguf | 26.56 GiB on disk, 28.03 GiB loaded VRAM, 0.0165 mean top-64 KLD nats, 32/32 top-1 |
| Native low-concurrency MTP | ornith-1.0-35b-IQ4_XS-MTP-graft-headQ6.gguf | 19.6 GB decimal, 0.0731 mean top-64 KLD (29/32), c1/128 adaptive MTP 319.53 tok/s, acceptance (0.953, 0.865) |
MTP graft note: active MTP is byte-for-byte identical to target-only at the next-token (API-visible) level, and gives ~1.3× single-stream decode. It is not bit-exact to target-only over long deterministic sequences — see MTP. Use target-only for strict reproduction, MTP for throughput on open-ended work.
Fidelity is KL(P_bf16 || P_candidate) over next-token top-64 distributions,
32 coding prompts, n_predict=1, temperature=-1, n_probs=64, keyed by token ID.
Lower KLD and higher greedy top-1 agreement are better.
| Artifact | Mean KLD (nats) | Greedy top-1 † |
|---|---|---|
Q8_0 | 0.0108 | 31/32 (96.9%) |
Q6_K | 0.0165 | 32/32 (100.0%) |
Q5_K_M | 0.0354 | 30/32 (93.8%) |
IQ4_XS-MTP (graft) | 0.0731382442 | 29/32 (90.6%) |
Q4_K_M | 0.0864 | 29/32 (90.6%) |
IQ4_XS | 0.1426 | 27/32 (84.4%) |
Q3_K_M | 0.3620 | 27/32 (84.4%) |

Fidelity ladder — the integrated IQ4_XS-MTP graft (purple) lands between Q5_K_M and Q4_K_M, i.e. better next-token fidelity than its Q4_K_M neighbor.
† Top-1 vs mean KLD are different axes. Top-1 counts how often the single most-likely (argmax) token matches BF16's, over the 32 prompts; mean KLD measures divergence across the full top-64 distribution. Two quants can share a top-1 count yet differ a lot in KLD — e.g.
Q3_K_MandIQ4_XSare both 27/32 on top-1, butQ3_K_M's distribution diverges ~2.5× more (0.3620 vs 0.1426 nats). Neither value is a typo.
draft-mtp ≡ target-only at the next-token level: their top-64
next-token distributions are identical (KLD 0.0, 32/32) for the one-token
API-visible probe.Full per-quant distribution from the corrected top-64 probe (same 32 prompts).
Mean / P50 / P95 / Max are explicit nats statistics of the per-prompt top-64
KLD; in this run the BF16 top-64 distribution captured mean probability mass
0.999965, so the top-64 approximation captured essentially all next-token mass.
| Quant | GGUF GiB | KLD-probe VRAM GiB | Mean nats | P50 nats | P95 nats | Max nats | Top-1 † |
|---|---|---|---|---|---|---|---|
| Q3_K_M | 15.61 | 16.32 | 0.3620 | 0.2548 | 1.1077 | 1.3730 | 27/32 (84.4%) |
| IQ4_XS | 17.64 | 19.34 | 0.1426 | 0.0868 | 0.3195 | 0.6586 | 27/32 (84.4%) |
| Q4_K_M | 19.71 | 20.35 | 0.0864 | 0.0379 | 0.2877 | 0.4503 | 29/32 (90.6%) |
| Q5_K_M | 23.03 | 23.61 | 0.0354 | 0.0235 | 0.0943 | 0.2497 | 30/32 (93.8%) |
| Q6_K | 26.56 | 27.07 | 0.0165 | 0.0092 | 0.0513 | 0.0586 | 32/32 (100.0%) |
| Q8_0 | 34.37 | 34.77 | 0.0108 | 0.0052 | 0.0440 | 0.0590 | 31/32 (96.9%) |
The IQ4_XS-MTP graft uses the same probe on a different breakpoint context; its
distribution detail (P50 0.0492811974 / P95 0.1593743642 / Max 0.3348258511) is
in the MTP section. Source:
benchmarks/kld-quant-vs-bf16-top64.md.
Aggregate decode throughput and p95 time-to-first-token across concurrency,
llama.cpp tp=1, from scripts/bench_openai.py --stream --max-tokens 256 (0
failed requests per row). Q4_K_M is the speed pick; Q5_K_M nearly ties it at c16.
| Quant | c1 tok/s | c1 p95 TTFT ms | c4 tok/s | c4 p95 TTFT ms | c8 tok/s | c8 p95 TTFT ms | c16 tok/s | c16 p95 TTFT ms |
|---|---|---|---|---|---|---|---|---|
| Q3_K_M | 240.5 | 77.9 | 422.0 | 170.7 | 464.4 | 344.9 | 493.0 | 493.7 |
| IQ4_XS | 234.1 | 75.1 | 297.7 | 159.7 | 411.5 | 330.2 | 476.0 | 541.5 |
| Q4_K_M | 243.3 | 76.3 | 458.3 | 192.3 | 615.0 | 361.8 | 655.6 | 650.0 |
| Q5_K_M | 236.7 | 75.1 | 311.0 | 198.8 | 439.0 | 383.6 | 638.6 | 620.4 |
| Q6_K | 225.9 | 76.8 | 295.8 | 194.2 | 409.6 | 394.8 | 603.3 | 657.4 |
| Q8_0 | 208.5 | 76.9 | 281.5 | 190.8 | 405.8 | 389.1 | 601.4 | 725.8 |


Profile note: the table above is a short-context profile —
CTX_SIZE=8192 PARALLEL=16exposesn_ctx = 512/slot, with ~23-token prompts and 256-token generations. Source: benchmarks/llamacpp-quant-benchmarks.md. For how prefill latency scales with prompt length, see long-context TTFT below.
p95 time-to-first-token vs prompt/context length, single GPU tp=1, single stream
(CTX_SIZE=131072 PARALLEL=1, n_ctx/slot=131072, exact prompt token counts, 140
rows/quant, 0 failures).
| Context tokens | Q4_K_M p50/p95 ms | Q4_K_M tok/s | IQ4_XS p50/p95 ms | IQ4_XS tok/s | MTP-graft p50/p95 ms | MTP-graft tok/s |
|---|---|---|---|---|---|---|
| 512 | 91.8 / 94.1 | 188.3 | 87.1 / 88.7 | 177.4 | 86.0 / 87.8 | 184.0 |
| 1024 | 169.6 / 172.2 | 145.8 | 159.9 / 161.6 | 139.9 | 157.6 / 159.0 | 155.9 |
| 2048 | 341.8 / 346.1 | 97.9 | 316.1 / 318.7 | 112.0 | 307.6 / 308.9 | 113.9 |
| 4096 | 699.2 / 702.2 | 67.2 | 647.0 / 653.4 | 70.7 | 625.7 / 631.3 | 69.0 |
| 8192 | 1447.5 / 1458.0 | 33.7 | 1342.9 / 1348.5 | 39.8 | 1297.4 / 1304.0 | 40.9 |
| 16384 | 3009.7 / 3030.4 | 19.5 | 2793.2 / 2804.0 | 20.9 | 2709.8 / 2737.3 | 21.5 |
| 32768 | 6302.4 / 6313.0 | 9.7 | 5829.9 / 5853.1 | 10.5 | 5673.5 / 5696.6 | 10.7 |

p95 TTFT rises with prompt length (prefill cost) to ~6.3 s at 32k tokens for Q4_K_M; the IQ4_XS body and IQ4_XS-MTP graft prefill slightly faster at every length. Decode throughput falls from ~180–190 tok/s at 512 tokens to ~10 tok/s at 32k as the KV cache grows. Source: benchmarks/llamacpp-longctx-ttft.md.
The integrated IQ4_XS-MTP-graft-headQ6 artifact carries a native MTP draft head
on the IQ4_XS body. The release recommendation is adaptive: use MTP for
low-concurrency / single-user requests and keep LLAMA_SPEC_MAX_DRAFTING_SLOTS=1
so saturated batches fall back to target-only throughput. The MTP catalog
validates the published MTP profiles.
Active MTP does not change the one-token, API-visible next-token
distribution. Mean BF16 KLD is 0.0731382442 nats over the 32-prompt top-64
probe (P50 0.0492811974 / P95 0.1593743642 / Max 0.3348258511), top-1 29/32. The
active draft-mtp vs target-only graft next-token KLD is 0.0 (32/32 identical).
A deterministic 8 prompt × 64 token probe (n_predict=64, temperature=-1, n_probs=64) compares the same GGUF running active native draft-mtp against
target-only.
| Runtime | Client agg tok/s | Server decode tok/s | Draft acceptance | Exact 64-tok seqs | Token-position match |
|---|---|---|---|---|---|
| Target-only graft | 172.57 | ~210 (per-request timing) | n/a | 8/8 baseline | n/a |
Fast active draft-mtp, n_max=2 | 233.81 | 325.70 (/metrics) | 310/378 = 82.01%; per-position (0.884, 0.747) | 6/8 | 478/512 = 93.36% |
LLAMA_SPEC_VERIFY_SEQUENTIAL=1 | 164.34 | 204.88 (/metrics) | 313/375 = 83.47%; per-position (0.884, 0.772) | 5/8 | 455/512 = 88.87% |

LLAMA_SPEC_VERIFY_SEQUENTIAL=1 variant is both slower (164.34 /
204.88) and matches less (5/8, 88.87%; divergences at 25, 43, 60) — i.e. the
fast verifier is here both faster and more target-matching.Note: MTP self-speculation is not bit-exact to target-only over long deterministic generations. For workloads that require exact target reproduction, run target-only; for throughput on open-ended work, MTP wins. MTP is a single-user / low-concurrency win — it is not faster on saturated batches, which is why the adaptive throttle falls back to target-only.
llama.cpp omits candidate top_logprobs for most accepted speculative tokens, so
a naive "sequence KLD" looks enormous — that is an API/logprob-availability
artifact, not model quality. On the comparable subset where the emitted token
also matches, KLD is ≈ 0.001 nats (near zero):
| Runtime | Paired positions | Comparable top-logprobs | Missing | Comparable same-token mean KLD (nats) | Max (nats) |
|---|---|---|---|---|---|
Fast active draft-mtp vs target-only | 512 | 12 | 500 | 0.0011215739 | 0.0040239103 |
| Sequential verifier vs target-only | 512 | 10 | 502 | 0.0012293172 | 0.0040239103 |
Full sequence KLD cannot be computed without changing the runtime to return target verifier logprobs for accepted speculative tokens.
The meaningful KL-style metric for a standalone MTP draft head is teacher KL against cached target hidden states, not standard base-model next-token KLD. The draft head was trained and measurably improved across checkpoints — teacher KL fell 1.92 → 1.50 → 0.76 and teacher argmax top-1 rose 0.54 → 0.69 → 0.89.
| Draft checkpoint | Tokens | Windows | Teacher KL | Teacher argmax top-1 | Teacher argmax top-5 | Gold top-1 |
|---|---|---|---|---|---|---|
mtp-distill-kl-step500 | 22,637 | 128 | 1.9222025748 | 0.5360250917 | 0.7881786456 | 0.4425939833 |
snapshots-iq4-live-accepted-a/step-1000 | 58,754 | 413 | 1.5038724942 | 0.6876808388 | 0.8368451510 | 0.6764816013 |
snapshots-iq4-live-allrows-b/step-1000 | 32,264 | 2,048 | 0.7591610373 | 0.8908070915 | 0.9389722291 | 0.8076183982 |

Teacher KL is measured against cached target hidden states (not base next-token
KLD). These training artifacts live under artifacts/mtp/ locally and are
referenced by name as provenance — they are not committed in this HF repo.
Serve a body quant on GPU0 (tp=1):
QUANT=Q4_K_M PORT=8000 CTX_SIZE=8192 PARALLEL=16 REASONING=off \
scripts/serve_llamacpp_gpu0.sh
Serve the integrated MTP graft for low-concurrency speculative decode (keep adaptive throttling so saturated batches fall back to target-only):
QUANT=IQ4_XS-MTP-graft-headQ6 PORT=8000 CTX_SIZE=8192 PARALLEL=1 \
CACHE_RAM=0 REASONING=off LLAMA_SPEC_MAX_DRAFTING_SLOTS=1 \
scripts/serve_llamacpp_gpu0.sh
REASONING=off is the default because the model otherwise spends simple coding
prompts in reasoning_content before producing final content. See
benchmarks/llamacpp-q4-reasoning-off-fix.md.
Serving / quant / MTP profile catalogs:
configs/serving_profiles.yaml,
configs/quant_artifacts.yaml,
configs/mtp_profiles.yaml.
Hardware: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 97,887 MiB
VRAM, single GPU (tp=1). Driver 580.159.03, CUDA runtime reported by driver 13.0.
Dedicated MTP KLD eval config (2026-06-28): local llama.cpp CUDA server,
single RTX PRO 6000 Blackwell 96GB, tp=1, CTX_SIZE=8192, PARALLEL=1,
CACHE_RAM=0, REASONING=off.
050ee92d04c2e1f639025786dea701c70e7d4204 (pinned for
the long-context TTFT run; earlier KLD/throughput sweeps were not separately pinned).REASONING=off.scripts/make_charts.py
→ assets/02_fidelity_ladder.png, assets/03_throughput_tps.png,
assets/04_ttft_p95.png, assets/05_mtp_draft_head_distill.png,
assets/06_mtp_tps.png.