MTP Quality

#1
by engrtipusultan - opened

How is your MTP different from other MTPs lets say

https://huggingface.co/skinnyctax/Ornith-1.0-35B-Q6_K-Frankenstein-MTP-GGUF

Or
https://huggingface.co/wang-yang/Ornith-1.0-35B-MTP-GGUF

Who is reporting 92% acceptance.

The wang-yang model is not doing a fundamentally different MTP method. It is a single Q6_K GGUF with a same architecture MTP head grafted into Ornith, using llama.cpp draft-mtp. Their card says the base Ornith did not ship MTP heads, then they appended the blk.40.* / nextn.* tensors, patched metadata, and did no retraining.

The 92.2% number is specifically their M3 Max, single-prompt, n_max=1 benchmark: AR 66.6 tok/s, MTP 83.8 tok/s, 92.2% acceptance, 1.26x speedup.
At n_max=2, their acceptance drops to 82.5%; at n_max=4, 68.1% .

Our comparable artifact, ornith-1.0-35b-IQ4_XS-MTP-graft-headQ6.gguf, is structurally the same graft style, but requantized: IQ4_XS body + preserved Q6_K/F16/F32 grafted MTP head.
See ornith-35b-lab/hf_upload/README.md:72.

We also reproduce high acceptance: ~89.67% at n_max=1, and strong n_max=2 positional acceptance.

The real difference is runtime profile, not graft layout. On our batched RTX PRO 6000 server benchmark, the original wang-yang Q6_K-MTP also hit high acceptance, 90.67%, but slowed down: 550.29 tok/s no-MTP vs 257.74 tok/s MTP n_max=1. Our IQ4_XS graft behaves similarly at c16: high acceptance, but no batched throughput win.
See ornith-35b-lab/hf_upload/benchmarks/llamacpp-iq4-xs-mtp-chaincorr-profile.md:46.

Their 92% is real, and ours is not meaningfully different in acceptance when comparing the integrated graft. The remaining issue is llama.cpp batched verification/scheduling on our tp=1 server workload, not draft-head quality.

Why your gguf has blk.41 42 and 43. No other GGUF have more than 40

The base Ornith model has 40 normal transformer blocks: blk.0 through blk.39.

The extra blocks are MTP draft layers, not extra base-model layers.

In llama.cpp GGUF layout, MTP layers are appended after the trunk blocks:

  • plain/non-MTP GGUF: blk.0 ... blk.39
  • single-head integrated MTP GGUF: adds blk.40, with nextn_predict_layers=1
  • 4-head experimental MTP draft GGUF: adds blk.40, blk.41, blk.42, blk.43, with nextn_predict_layers=4

I just removed the draft and experimental mtp drafts. What you saw was probably one of the experimental external MTP draft artifacts, like the h2r10prefix drafts. Those were for speculative decoding experiments, not normal target only base models.

The main integrated release artifact ornith-1.0-35b-IQ4_XS-MTP-graft-headQ6.gguf is the single-MTP-layer graft and should only append blk.40.

engrtipusultan changed discussion status to closed

Sign up or log in to comment