vcruz305 commited on
Commit
903c836
·
verified ·
1 Parent(s): 2d286fb

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +35 -6
README.md CHANGED
@@ -54,11 +54,13 @@ On low-bit IQ tiers the MTP/NextN layer (`blk.80.*`) is kept at q8_0 (`--tensor-
54
 
55
  Single node, fully GPU-resident, `-fa on`:
56
 
57
- | Quant | Gen tok/s | Prompt tok/s |
58
- |---|---|---|
59
- | IQ2_M | 18.5 | 36.4 |
60
- | Q2_K | 18.1 | 35.5 |
61
- | IQ3_XXS | 17.1 | 32.4 |
 
 
62
 
63
  Dual node (Q4_K_M, 181GB layer-split across 2× GB10 over 200GbE via llama.cpp RPC): **14.0 tok/s gen / 21.9 tok/s prompt**. RPC layer-split adds capacity for bigger quants, not speed — expect single-node-or-slower decode rates.
64
 
@@ -86,7 +88,34 @@ Tips:
86
 
87
  ## MTP / speculative decoding status
88
 
89
- Hy3's MTP (multi-token prediction) tensors are **converted and stored** in these GGUFs, but PR #25364 currently skips them in the forward graph llama.cpp **cannot yet use them for speculative decoding**. The weights are preserved (q8_0 on low-bit tiers) so existing files become spec-decode-ready if/when the PR adds graph support. No re-download should be needed.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
  ## Provenance
92
 
 
54
 
55
  Single node, fully GPU-resident, `-fa on`:
56
 
57
+ | Quant | Gen tok/s | + MTP spec decode | Prompt tok/s |
58
+ |---|---|---|---|
59
+ | IQ2_M | 18.0–18.5 | **22.8 (+27%)** | 36–50 |
60
+ | Q2_K | 18.1 | untested | 35.5 |
61
+ | IQ3_XXS | 17.1 | untested | 32.4 |
62
+
63
+ MTP numbers measured at temp 0 with `--spec-type draft-mtp --spec-draft-n-max 2 --spec-draft-p-min 0.75` (90% draft acceptance). Higher sampling temperatures reduce acceptance and land between the two columns.
64
 
65
  Dual node (Q4_K_M, 181GB layer-split across 2× GB10 over 200GbE via llama.cpp RPC): **14.0 tok/s gen / 21.9 tok/s prompt**. RPC layer-split adds capacity for bigger quants, not speed — expect single-node-or-slower decode rates.
66
 
 
88
 
89
  ## MTP / speculative decoding status
90
 
91
+ **Verified working (2026-07-07):** [PR #25395](https://github.com/ggml-org/llama.cpp/pull/25395) adds Hy3 MTP speculative decoding, and these GGUFs work with it as-is the MTP tensors bundled in every quant (q8_0-preserved on low-bit tiers) are used directly as the `draft-mtp` target. Measured on IQ2_M: **18.0 → 22.8 tok/s (+27%), 90% draft acceptance**.
92
+
93
+ ```bash
94
+ ./build/bin/llama-server -m Hy3-IQ2_M/Hy3-IQ2_M-00001-of-00003.gguf \
95
+ -ngl 99 -fa on -c 32768 --jinja \
96
+ --spec-type draft-mtp --spec-draft-n-max 2 --spec-draft-p-min 0.75 \
97
+ --parallel 1
98
+ ```
99
+
100
+ Notes:
101
+ - `--spec-draft-p-min 0.75` is **required for a speedup** — the MTP head is trained single-depth, and the default p_min makes speculation a net loss (per the PR author's measurements, confirmed here).
102
+ - `--parallel 1` is required for draft-mtp; `n_max` 2 and 3 measure within ~1% of each other (n=2 slightly ahead at 90% acceptance).
103
+ - `--spec-type` exists on `llama-server` and `llama-cli` only, not `llama-completion`.
104
+
105
+ ### ⚠️ If you downloaded before 2026-07-08: arch string fix
106
+
107
+ PR #25395 renamed the architecture string from `hy-v3` (the earlier PR #25364) to `hy_v3`. All first-shards in this repo were re-uploaded with the fix on 2026-07-07, so fresh downloads just work. If you hold older files and see `unknown model architecture: 'hy-v3'`, either re-download the first shard of your quant, or patch in place (the string lives only in shard 00001's header; byte-for-byte same length):
108
+
109
+ ```python
110
+ # python patch_arch.py <your-first-shard.gguf> — swaps hy-v3 -> hy_v3 in the header
111
+ import mmap, sys
112
+ with open(sys.argv[1], "r+b") as f:
113
+ mm = mmap.mmap(f.fileno(), 64 * 1024 * 1024) # metadata lives well within 64MB
114
+ i = mm.find(b"hy-v3")
115
+ while i != -1:
116
+ mm[i:i+5] = b"hy_v3"; i = mm.find(b"hy-v3", i + 1)
117
+ mm.flush()
118
+ ```
119
 
120
  ## Provenance
121