satgeze commited on
Commit
c29be16
·
0 Parent(s):

Reset history/storage; full pre-squash history preserved in history-archive-20260716.bundle

Browse files
.gitattributes ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ hy3-1M-IQ1_M-yarn.gguf filter=lfs diff=lfs merge=lfs -text
37
+ hy3-1M-IQ2_M-yarn.gguf filter=lfs diff=lfs merge=lfs -text
38
+ hy3-1M-Q2_K-yarn.gguf filter=lfs diff=lfs merge=lfs -text
39
+ banner.png filter=lfs diff=lfs merge=lfs -text
40
+ hy3-1M-IQ2_M.gguf filter=lfs diff=lfs merge=lfs -text
41
+ hy3-1M-Q2_K.gguf filter=lfs diff=lfs merge=lfs -text
42
+ hy3-1M-MTP-IQ2_M.gguf filter=lfs diff=lfs merge=lfs -text
43
+ hy3-1M-MTP-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
44
+ hy3-1M-MTP-Q2_K.gguf filter=lfs diff=lfs merge=lfs -text
45
+ hy3-1M-MTP-IQ3_XXS.gguf filter=lfs diff=lfs merge=lfs -text
46
+ hy3-1M-MTP-Q3_K_M.gguf filter=lfs diff=lfs merge=lfs -text
47
+ hy3-1M-MTP-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
48
+ hy3-mtp-head-f16.gguf filter=lfs diff=lfs merge=lfs -text
49
+ hy3-1M-MTP-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
50
+ history-archive-20260716.bundle filter=lfs diff=lfs merge=lfs -text
51
+ hy3-1M-MTP-Q6_K-00001-of-00006.gguf filter=lfs diff=lfs merge=lfs -text
52
+ hy3-1M-MTP-Q6_K-00002-of-00006.gguf filter=lfs diff=lfs merge=lfs -text
53
+ hy3-1M-MTP-Q6_K-00003-of-00006.gguf filter=lfs diff=lfs merge=lfs -text
54
+ hy3-1M-MTP-Q6_K-00004-of-00006.gguf filter=lfs diff=lfs merge=lfs -text
55
+ hy3-1M-MTP-Q6_K-00005-of-00006.gguf filter=lfs diff=lfs merge=lfs -text
56
+ hy3-1M-MTP-Q6_K-00006-of-00006.gguf filter=lfs diff=lfs merge=lfs -text
HISTORY-ARCHIVE.md ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Commit history archive
2
+
3
+ `history-archive-YYYYMMDD.bundle` is a git bundle holding this repository's **full commit
4
+ history** as of that date: every commit message, timestamp, and file-version pointer.
5
+
6
+ ## Why it exists
7
+
8
+ Hugging Face bills for every large file ever stored in a repo's git history, not just the
9
+ files currently present. When a big file is deleted or replaced, the old blob lingers in
10
+ history as "ghost" storage and keeps counting. Reclaiming it requires squashing the history
11
+ into a single commit, which discards the commit record.
12
+
13
+ This bundle is captured **before** any such squash so the record is never lost. Note that the
14
+ repository's original creation date is preserved by Hugging Face independently of the git
15
+ history, so squashing does not make the repo look newly created.
16
+
17
+ ## Inspect the preserved history
18
+
19
+ git clone history-archive-YYYYMMDD.bundle repo-history
20
+ cd repo-history && git log --all --stat
21
+
22
+ The bundle contains history and pointers only, not the large model weights themselves
23
+ (a few hundred KB, not hundreds of GB).
README.md ADDED
@@ -0,0 +1,208 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ pipeline_tag: text-generation
4
+ base_model: tencent/Hy3
5
+ tags:
6
+ - gguf
7
+ - long-context
8
+ - yarn
9
+ - hunyuan
10
+ - hy_v3
11
+ - moe
12
+ - llama.cpp
13
+ ---
14
+
15
+ ![Tencent Hy3 1M GGUF](banner.png)
16
+
17
+ <div align="center">
18
+
19
+ [![Base](https://img.shields.io/badge/base-tencent%2FHy3-2563eb)](https://huggingface.co/tencent/Hy3)
20
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
21
+ [![Params](https://img.shields.io/badge/params-299B%20MoE%20(~17B%20active)-2563eb)]()
22
+ [![Context: 1M](https://img.shields.io/badge/context-1%2C048%2C576%20tokens%20(baked)-8A2BE2)]()
23
+ [![First GGUF](https://img.shields.io/badge/GGUF-first%20anywhere-brightgreen)]()
24
+ [![NIAH](https://img.shields.io/badge/NIAH-certified%2010%2F10%20to%20786K-1e8e3e)]()
25
+ [![1M](https://img.shields.io/badge/1M-functional%2C%2070%25%20per--needle%20(3%20seeds)-f9ab00)]()
26
+ [![GitHub](https://img.shields.io/badge/GitHub-aviary--1m%20(harness%20%2B%20method)-181717?logo=github)](https://github.com/satindergrewal/aviary-1m)
27
+
28
+ </div>
29
+
30
+ <p align="center"><b>Hy3 (Hunyuan) 1M Context GGUF</b>: first GGUF conversion of Tencent's 299B hy_v3, extended to a million tokens. Needle-certified, honestly labeled.</p>
31
+
32
+ <div style="border: 3px solid #1e8e3e; background: #f0f9f2; border-radius: 12px; padding: 16px 20px; margin: 16px 0;">
33
+ <p style="margin:0; font-size: 16px; color: #14532d;"><b>Status, precisely (updated July 9, 2026)</b></p>
34
+ <p style="margin: 8px 0 0 0; color: #1e3a29; font-size: 14px;">
35
+ Needle-certified <b>10/10 at every rung from 262K to 786K</b> (q8 KV, IQ2_M; Q4_K_M also 10/10 at 524K). At the full <b>1,048,576</b> window: <b>70 percent per-needle across three published seeds</b> (9/10, 6/10, 6/10), so 1M is functional with real edge variance, not perfect. MTP speculative decoding was challenged during upstream review and survived a three-part correctness audit including a behavioral match against Tencent's official vLLM implementation (details below). As of 2026-07-14, <a href="https://github.com/ggml-org/llama.cpp/pull/25395">llama.cpp PR #25395</a> (hy_v3 + MTP) is merged into mainline, so a recent mainline build runs these files natively -- no fork needed. Every claim on this card links to raw evidence in this repo.
36
+ </p>
37
+ </div>
38
+
39
+
40
+ Tencent's [Hy3](https://huggingface.co/tencent/Hy3) (299B MoE, ~17B active, `hy_v3` architecture) quantized to GGUF and extended to a **1,048,576-token context** with YaRN. As far as we can tell these are the first GGUF quants of Hy3 anywhere: at publish time (roughly 30 hours after Hy3's release) only MLX and MXFP4 quants existed, and mainline llama.cpp did not yet support `hy_v3`.
41
+
42
+ ## Honest status
43
+
44
+ - **Architecture support**: native `hy_v3` + MTP support is **merged into mainline llama.cpp** ([PR #25395](https://github.com/ggml-org/llama.cpp/pull/25395), merged 2026-07-14; the `--no-mtp` converter gate followed in [#25641](https://github.com/ggml-org/llama.cpp/pull/25641)). Build any recent mainline llama.cpp and these files run natively. The original community fork ([charlie12345/ROCmFPX](https://github.com/charlie12345)) is credited in the PR; the pre-merge branch build is kept only as a historical note below.
45
+ - **Quants**: Q2_K is a static quant (no importance matrix). IQ2_M and IQ1_M are importance-matrix quants - the imatrix was computed on our own Q2_K running RAM-resident, over a code-and-reasoning calibration set, then used to requantize from the archived f16. This is a bootstrap: a better imatrix could later be computed from a higher-fidelity runner.
46
+ - **Long context, measured**: full NIAH ladder published below (July 9, 2026): 10/10 at 262K, 393K, 524K and 786K; 70 percent per-needle at 1M over three seeds. Multi-hop chain retrieval 4/5 at 524K on both IQ2_M and Q4_K_M.
47
+ - **MTP**: working, audited. We ported `hy_v3` MTP inference to llama.cpp ourselves. When upstream review questioned the acceptance behavior we ran a full correctness program: wiring verified line-by-line against the vLLM reference, quantization ruled out (f16 head behaves the same), and a behavioral cross-check against Tencent's official vLLM MTP on identical greedy prompts: vLLM 46.7 percent ungated acceptance vs our 46.9 percent, a dead match. Conclusion: the single-depth head is inherently confidence-gated; run it with `--spec-draft-p-min 0.75` (88 percent acceptance, up to +37 percent decode on CUDA). See the MTP section below.
48
+ - **Chat template**: Hy3's stock template uses `.format()` calls that llama.cpp's Jinja engine rejects. `chat_template_llamacpp.jinja` in this repo is the fixed version; pass it with `--chat-template-file`.
49
+
50
+ ## What the gate actually produced (real, unedited)
51
+
52
+ Each quant was asked: *"Name three colors and write a one-line haiku about the sea."* Verbatim outputs, nothing cleaned up:
53
+
54
+ **IQ1_M** (62 GB, the roughest quant):
55
+ > blue waves that whisper low,
56
+ > green depths that hold the silence of the sea.
57
+
58
+ **IQ2_M** (90 GB):
59
+ > Three colors: blue, teal, and silver.
60
+ > waves drink the moonlight
61
+ > saltwind hums through silent blue-
62
+ > the sea forgets names
63
+
64
+ **Q2_K** (101 GB):
65
+ > Blue, green, silver.
66
+ > The sea breathes in mist,
67
+ > silver light on rolling waves-
68
+ > quiet, endless blue.
69
+
70
+ ### My honest read
71
+
72
+ This is better than "it didn't collapse into repetition." A 1.7-bit quant of a 299B model (IQ1_M) still produces grammatical, on-theme lines; the two larger quants produce properly structured 5-7-5 haiku and correctly separate the color list from the poem. That is a genuinely good sign for how much of the model survives aggressive quantization here.
73
+
74
+ Two honest caveats, so you judge for yourself:
75
+ - This is a single short prompt. It proves coherence and basic instruction-following only. For reasoning and long-context retrieval, see the certification ladder above.
76
+ - IQ1_M is visibly the weakest: it dropped the explicit color list and gave two lines instead of a haiku. Usable, but the imatrix IQ2_M is the one I would actually run if the memory fits.
77
+
78
+ If your experience differs, the raw files are right here - try it and form your own view.
79
+
80
+ ## Needle-in-a-haystack certification (July 9, 2026)
81
+
82
+ <img src="niah_heatmap.png" width="720"/>
83
+
84
+ Run on rented H200s (a 299B with full attention needs 86 GB of KV at 524K even at q8; no consumer card can host these rungs). Note the shape of the 1M column: the misses cluster at 25 to 45 percent depth, the classic lost-in-the-middle zone, while the edges stay solid. 10 needles per rung, depths 5 to 95 percent, temperature 0, seeded haystacks, q8 KV, MTP on with p-min 0.75. Raw records: `results_niah_ladder.jsonl` in this repo.
85
+
86
+ | Rung | IQ2_M | Q4_K_M |
87
+ |---|---|---|
88
+ | 262,144 | 10/10 | |
89
+ | 393,216 | 10/10 | |
90
+ | 524,288 | 10/10 | 10/10 |
91
+ | 786,432 | 10/10 | |
92
+ | 1,048,576 | 9/10, 6/10, 6/10 (three seeds) | |
93
+
94
+ Reading the 1M row honestly: 21 of 30 needles over three independent seeds, misses at scattered depths, identical scores independently reproduced at q4 KV (9/10, same seed as the 9/10 run). Through 786K this model is needle-perfect; at the very edge of the baked window it retrieves about 70 percent per-needle. We publish that as "functional at 1M", not "certified at 1M", and both labels are earned.
95
+
96
+ **Multi-hop tier** (chained lookups, each answer keys the next, thinking ON): chains 4/5 at 524K on IQ2_M and 4/5 on Q4_K_M, 2/5 at 262K (seed variance). A harder multi-step variable-tracking tier is held back until our scorer for it is validated; unverified numbers do not get published here.
97
+
98
+ ## MTP: challenged in review, audited, confirmed correct
99
+
100
+ During upstream review an NVIDIA engineer questioned whether low ungated draft acceptance meant the MTP wiring was wrong. We ran the full program instead of arguing:
101
+
102
+ <img src="mtp_audit.png" width="760"/>
103
+
104
+ | Test | Method | Result |
105
+ |---|---|---|
106
+ | Code parity | Our graph vs vLLM reference implementation, all four flagged axes (concat order, norm offset, pre/post-norm hidden, RMSNorm form) | Faithful on all four |
107
+ | Quantization ruled out | f16 full-precision head, greedy, ungated | 46.9 percent (IQ2_M: 41.0), so quant is not the cause |
108
+ | Behavioral cross-check | Tencent's official vLLM MTP path, bf16, greedy, identical prompts, vLLM's own metrics | **46.7 percent ungated: a dead match with our 46.9** |
109
+
110
+ Conclusion: Hy3's single-depth MTP head genuinely proposes low-confidence drafts when ungated, in every implementation including the official one. It is designed to be confidence-gated. Practical guidance, measured:
111
+
112
+ | Condition (greedy) | Acceptance | Speed (2xH200, IQ2_M) |
113
+ |---|---|---|
114
+ | No speculation | n/a | 72.2 tok/s |
115
+ | MTP ungated (p-min 0) | 41.0 percent | 73.6 tok/s (break-even) |
116
+ | **MTP gated (p-min 0.75)** | **88.2 percent** | **81.5 tok/s (+13 percent)** |
117
+
118
+ On Apple silicon the gate is what keeps MTP from being a net loss; on CUDA ungated is break-even and the gate turns it into a gain. Earlier wording on this card described ungated MTP as a universal net slowdown; that was Metal-specific and is corrected here. Raw logs: `results_mtp_audit/` in this repo.
119
+
120
+ ## Files
121
+
122
+ | File | Size | Where | Notes |
123
+ |---|---|---|---|
124
+ | `hy3-1M-MTP-IQ2_M.gguf` | 100 GB | HF + ModelScope | **Recommended.** The certified quant (table above), MTP baked |
125
+ | `hy3-1M-MTP-Q2_K.gguf` | 111 GB | HF + ModelScope | Static quant + MTP |
126
+ | `hy3-1M-MTP-IQ3_XXS.gguf` | 117 GB | HF + ModelScope | imatrix quant + MTP |
127
+ | `hy3-1M-MTP-Q3_K_M.gguf` | 145 GB | HF + ModelScope | Sweet spot for 2x96GB rigs, MTP baked |
128
+ | `hy3-1M-MTP-Q4_K_M.gguf` | 183 GB | HF + ModelScope (split parts) | Quality pick for 192GB+ rigs, 10/10 at 524K |
129
+ | `hy3-1M-MTP-Q5_K_M.gguf` | 199 GB | HF + ModelScope (split parts) | Near-lossless tier |
130
+ | `hy3-1M-MTP-Q6_K.gguf` | ~245 GB | HF + ModelScope (split parts) | Highest quant of the ladder, near-lossless |
131
+ | `hy3-1M-IQ1_M.gguf` | 62 GB | [ModelScope only](https://www.modelscope.ai/models/satgeze/Hy3-1M-GGUF) | Smallest; fits a 128 GB Mac. **`no_think` only; NOT needle-certified** |
132
+ | `hy3-1M-IQ2_M.gguf` / `hy3-1M-Q2_K.gguf` | 90 / 101 GB | HF + ModelScope | MTP-less originals, kept for history |
133
+ | `chat_template_llamacpp.jinja` | small | HF + ModelScope | Fixed template for llama.cpp |
134
+
135
+ On ModelScope, files over the size cap arrive as `-00001-of-0000N` split parts; point llama.cpp at the first part and it finds the rest.
136
+
137
+ ## Field testing notes (real sessions, July 7)
138
+
139
+ Measured on a MacBook Pro M3 Max 128 GB, Metal, fork build, IQ1_M fully GPU-resident:
140
+
141
+ - **Speed**: 24-25 tok/s generation, ~41 tok/s prefill (llama-server `timings`, short prompts). A 299B MoE at chat speed on a laptop.
142
+ - **`no_think` mode**: coherent and usable, but noticeably chatty: filler sentences, over-explaining, occasional odd asides. Fine for casual chat and drafting; does not feel like a frontier chat tune.
143
+ - **Thinking mode (`reasoning_effort: high`): collapses at IQ1_M.** On a bare "hello" it produced hundreds of words of circular reasoning ("The user wrote hello... we should respond... but wait, the user wrote hello...") without ever converging to an answer. This is the 1.7-bit tax: short answers survive, reasoning chains do not. **Do not use IQ1_M for coding or anything that needs thinking.**
144
+ - Because of that, IQ1_M lives on ModelScope only; HF carries the quants we can recommend. IQ2_M field results will be added after the same test battery.
145
+ - **Known cosmetic issue on the ROCmFPX fork build**: the `<|hy_eos:opensource|>` stop token can leak as visible text at the end of responses. We root-caused it: the GGUF tokenizer metadata is correct (the token is properly CONTROL-typed); the leak is in that fork's chat parser, which renders special tokens for structural parsing and passes unknown trailing ones through. Mainline llama.cpp strips specials before parsing, so it does not have this issue (the leak was specific to that fork chat parser). Workarounds on the fork: add the token as an explicit stop string, or apply the parser patches we are submitting to that repo. Generation always stops correctly; the text is just noise.
146
+
147
+ ### MTP speculative decoding: measured guidance (July 8)
148
+
149
+ The `-MTP-` quants carry Hy3's draft head (protected at q8_0). Measured on these exact files with mainline llama.cpp ([PR #25395](https://github.com/ggml-org/llama.cpp/pull/25395), merged):
150
+
151
+ | Platform | MTP effect | Setting |
152
+ |---|---|---|
153
+ | CUDA (RTX 5090) | **+26 to 37% decode** | `--spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min 0.75` |
154
+ | Apple silicon (M3 Max, IQ2_M) | neutral: 23.27 vs 23.21 tok/s, 88.7% acceptance | flags optional, no penalty with `p-min 0.75` |
155
+
156
+ `--spec-draft-p-min 0.75` is required either way: the MTP head is trained single-depth, and without the confidence gate speculation becomes a net slowdown (38.6% acceptance measured). Full data and discussion: [Apple-silicon datapoint](https://huggingface.co/satgeze/Hy3-1M-GGUF/discussions/2).
157
+
158
+ Speed expectations, honestly: quoted tok/s are fresh-context ceilings; in an ongoing conversation expect roughly 17 to 19 tok/s on the M3 Max at IQ2_M as context deepens. Both numbers are normal physics.
159
+
160
+ How to control thinking with llama.cpp: pass `--chat-template-kwargs '{"reasoning_effort": "high"}'` (or `no_think` / `low`) at server launch.
161
+
162
+
163
+ ## How to actually use a 1M-context model
164
+
165
+ Habits that measurably help, from our RULER, hop and adherence testing across this fleet:
166
+
167
+ 1. Re-state standing instructions near the end of long prompts; recency beats depth.
168
+ 2. One big reference dump beats a long accumulated conversation. Fresh session per task.
169
+ 3. After any compaction or summarization, repeat your active rules yourself.
170
+ 4. Prefill at 500K+ takes real time on any hardware; stage your questions accordingly.
171
+ 5. Know your quant: IQ2_M holds retrieval to 786K; IQ1_M is a no_think chat quant, not a work quant.
172
+
173
+ ## Running with mainline llama.cpp
174
+
175
+ `hy_v3` + MTP support is **merged into mainline llama.cpp** ([ggml-org/llama.cpp#25395](https://github.com/ggml-org/llama.cpp/pull/25395), merged 2026-07-14; AI-implemented with full disclosure, validated on these exact GGUFs). Build a recent mainline llama.cpp and it runs these files natively -- no fork or custom branch needed.
176
+
177
+ ```bash
178
+ git clone https://github.com/ggml-org/llama.cpp
179
+ cd llama.cpp
180
+
181
+ # Apple Silicon (Metal):
182
+ cmake -B build -DGGML_METAL=ON -DCMAKE_BUILD_TYPE=Release
183
+ cmake --build build --target llama-server -j
184
+
185
+ # NVIDIA (CUDA). If you build inside a conda env and hit
186
+ # "undefined reference to cuMemGetInfo", point at the real driver lib:
187
+ cmake -B build -DGGML_CUDA=ON \
188
+ -DCUDA_cuda_driver_LIBRARY=/usr/lib/x86_64-linux-gnu/libcuda.so.1 \
189
+ -DCMAKE_BUILD_TYPE=Release
190
+ cmake --build build --target llama-server -j
191
+ ```
192
+
193
+ MTP speculative decoding note for this model: launch with `--spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min 0.75`. The `p-min 0.75` matters: Hy3's MTP head is trained single-depth, and without the confidence gate speculation becomes a net slowdown (measured 38.6 percent acceptance vs 97.3 percent with it).
194
+
195
+ **Historical note (pre-merge):** before #25395 landed, these quants were first built on the community fork [charlie12345/ROCmFPX](https://github.com/charlie12345/ROCmFPX) (which required stubbing four empty web-UI files: `tools/server/public/{bundle.css,bundle.js,loading.html,index.html}`), then on the `hy3-mtp` branch. Both are credited in the PR. You no longer need either -- mainline runs these files.
196
+
197
+ ## Run it (mainline llama.cpp, 2026-07-14 or later)
198
+
199
+ ```bash
200
+ llama-server -m hy3-1M-IQ2_M.gguf -c 262144 -np 1 --jinja \
201
+ --chat-template-file chat_template_llamacpp.jinja
202
+ ```
203
+
204
+ Start at 262K and raise `-c` toward 1048576 per available memory. On Apple Silicon the IQ1_M runs; on 192 GB+ the IQ2_M is the quality pick.
205
+
206
+ ## Credits
207
+
208
+ Base model: [Tencent](https://huggingface.co/tencent/Hy3) (Apache-2.0). `hy_v3` llama.cpp implementation: community fork (charlie12345). GGUF conversion, 1M YaRN extension, imatrix bootstrap, and gating: [SatGeze](https://huggingface.co/satgeze). Method and tooling: [github.com/satindergrewal/aviary-1m](https://github.com/satindergrewal/aviary-1m).
banner.png ADDED

Git LFS Details

  • SHA256: ea091505ec73928047661459144e3a115c3ee30f700189be0c001e780432bac5
  • Pointer size: 132 Bytes
  • Size of remote file: 5.28 MB
chat_template_llamacpp.jinja ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {#- ----------‑‑‑ special token variables ‑‑‑---------- -#}
2
+ {%- set HYTK = ':opensource' %}
3
+ {%- set eos_token = '<|hy_eos:opensource|>' %}
4
+ {%- set bos_token = '<|hy_begin_of_sentence:opensource|>' %}
5
+ {%- set pad_token = '<|hy_pad:opensource|>' %}
6
+ {%- set user_token = '<|hy_User:opensource|>' %}
7
+ {%- set assistant_token = '<|hy_Assistant:opensource|>' %}
8
+ {%- set think_begin_token = '<think:opensource>' %}
9
+ {%- set think_end_token = '</think:opensource>' %}
10
+ {%- set toolcalls_begin_token = '<tool_calls:opensource>' %}
11
+ {%- set toolcalls_end_token = '</tool_calls:opensource>' %}
12
+ {%- set toolcall_begin_token = '<tool_call:opensource>' %}
13
+ {%- set toolcall_end_token = '</tool_call:opensource>' %}
14
+ {%- set toolsep_token = '<tool_sep:opensource>' %}
15
+ {%- set argkey_begin_token = '<arg_key:opensource>' %}
16
+ {%- set argkey_end_token = '</arg_key:opensource>' %}
17
+ {%- set argvalue_begin_token = '<arg_value:opensource>' %}
18
+ {%- set argvalue_end_token = '</arg_value:opensource>' %}
19
+ {%- set toolresponses_begin_token = '<tool_responses:opensource>' %}
20
+ {%- set toolresponses_end_token = '</tool_responses:opensource>' %}
21
+ {%- set toolresponse_begin_token = '<tool_response:opensource>' %}
22
+ {%- set toolresponse_end_token = '</tool_response:opensource>' %}
23
+ {%- set reasoning_mode_token = '<|reasoning_mode:opensource|>' %}
24
+
25
+ {#- ----------‑‑‑ hyperparameters variables ‑‑‑---------- -#}
26
+ {%- if not add_generation_prompt is defined %}
27
+ {%- set add_generation_prompt = false %}
28
+ {%- endif %}
29
+ {%- if not preserved_thinking is defined %}
30
+ {%- if not tools %}
31
+ {%- set preserved_thinking = false %}
32
+ {%- else %}
33
+ {%- set preserved_thinking = true %}
34
+ {%- endif %}
35
+ {%- endif %}
36
+ {%- if not is_training is defined %}
37
+ {%- set is_training = false %}
38
+ {%- endif %}
39
+
40
+ {%- if not reasoning_effort is defined %}
41
+ {%- set reasoning_effort = 'no_think' %}
42
+ {%- elif reasoning_effort not in ['high', 'low', 'no_think'] %}
43
+ {%- if reasoning_effort is none %}
44
+ {{- raise_exception('reasoning_effort error : None, should be no_think/low/high') }}
45
+ {%- else %}
46
+ {{- raise_exception('reasoning_effort error : ' + reasoning_effort + ', should be no_think/low/high') }}
47
+ {%- endif %}
48
+ {%- endif %}
49
+
50
+ {%- if fallback_strategy is defined and fallback_strategy == 'reasoning_toolcall_retry' %}
51
+ {%- set reasoning_effort = 'high' %}
52
+ {%- set add_generation_prompt = false %}
53
+ {%- endif %}
54
+ {%- if not raw_last_assistant is defined %}
55
+ {%- set raw_last_assistant = false %}
56
+ {%- endif %}
57
+
58
+ {%- macro visible_text(content) -%}
59
+ {%- if content is string -%}
60
+ {{- content }}
61
+ {%- elif content is iterable and content is not mapping -%}
62
+ {%- for item in content -%}
63
+ {%- if item is mapping and item.type == 'text' -%}
64
+ {{- item.text }}
65
+ {%- elif item is string -%}
66
+ {{- item }}
67
+ {%- endif -%}
68
+ {%- endfor -%}
69
+ {%- elif content is none -%}
70
+ {{- '' }}
71
+ {%- else -%}
72
+ {{- content }}
73
+ {%- endif -%}
74
+ {%- endmacro -%}
75
+
76
+ {%- set ns = namespace(last_user_index=-1) %}
77
+ {%- set sp_ns = namespace(system_prompt='', is_first_sp=true) %}
78
+ {%- for message in messages %}
79
+ {%- if message['role'] == 'system' %}
80
+ {%- set sp_ns.system_prompt = sp_ns.system_prompt + visible_text(message['content']) %}
81
+ {%- endif %}
82
+ {%- if message['role'] == 'user' %}
83
+ {%- set ns.last_user_index = loop.index0 %}
84
+ {%- endif %}
85
+ {%- endfor %}
86
+ {%- if reasoning_effort is defined and reasoning_effort is string and reasoning_effort != '' and not tools %}
87
+ {%- set sp_ns.system_prompt = sp_ns.system_prompt + reasoning_mode_token + 'reasoning_effort:' + reasoning_effort %}
88
+ {%- endif %}
89
+ {{- bos_token }}
90
+ {{- sp_ns.system_prompt }}
91
+ {%- if tools %}
92
+ {%- if sp_ns.system_prompt != '' %}
93
+ {{- '\n\n# Tools\n\nYou may call one or more functions to assist with the user query.' }}
94
+ {%- else %}
95
+ {{- '# Tools\n\nYou may call one or more functions to assist with the user query.' }}
96
+ {%- endif %}
97
+ {{- '\n\nYou are provided with function signatures within <tools></tools> XML tags:' }}
98
+ {{- '\n<tools>\n' }}
99
+ {%- for tool in tools %}
100
+ {%- if loop.index0 > 0 %}
101
+ {{- '\n' }}
102
+ {%- endif %}
103
+ {{- tool | tojson }}
104
+ {%- endfor %}
105
+ {{- '\n</tools>\n\n' }}
106
+ {{- 'For function call returns, you should first print ' + toolcalls_begin_token + '\n' }}
107
+ {{- 'For each function call, you should return object like:\n' }}
108
+ {{- toolcall_begin_token + '{function-name}' + toolsep_token + '\n' }}
109
+ {{- argkey_begin_token + '{arg-key-1}' + argkey_end_token + '\n' }}
110
+ {{- argvalue_begin_token + '{arg-value-1}' + argvalue_end_token + '\n' }}
111
+ {{- argkey_begin_token + '{arg-key-2}' + argkey_end_token + '\n' }}
112
+ {{- argvalue_begin_token + '{arg-value-2}' + argvalue_end_token + '\n' }}
113
+ {{- '...\n' }}
114
+ {{- toolcall_end_token + '\n' }}
115
+ {%- if reasoning_effort is defined and reasoning_effort is string and reasoning_effort != '' %}
116
+ {{- 'At the end of function call returns, you should print ' + toolcalls_end_token + reasoning_mode_token + 'reasoning_effort:' + reasoning_effort }}
117
+ {%- else %}
118
+ {{- 'At the end of function call returns, you should print ' + toolcalls_end_token }}
119
+ {%- endif %}
120
+ {%- endif %}
121
+
122
+ {%- set prev_ns = namespace(is_tool=false, is_tool_first=true) %}
123
+ {%- set last_ns = namespace(last_is_assistant=false) %}
124
+ {%- for message in messages %}
125
+ {%- if message['role'] == 'user' %}
126
+ {%- if prev_ns.is_tool %}
127
+ {{- toolresponses_end_token }}
128
+ {%- endif %}
129
+ {{- user_token + visible_text(message['content']) }}
130
+ {%- set prev_ns.is_tool = false %}
131
+ {%- endif %}
132
+ {%- if message['role'] == 'assistant' %}
133
+ {%- if is_training %}
134
+ {%- if 'reasoning_content' in message and message['reasoning_content'] is string %}
135
+ {%- set rc = message['reasoning_content'] %}
136
+ {%- elif 'reasoning' in message and message['reasoning'] is string %}
137
+ {%- set rc = message['reasoning'] %}
138
+ {%- else %}
139
+ {%- set rc = none %}
140
+ {%- endif %}
141
+ {%- if rc is not none %}
142
+ {%- set content = think_begin_token + rc + think_end_token + visible_text(message['content']) %}
143
+ {%- else %}
144
+ {%- set content = think_begin_token + think_end_token + visible_text(message['content']) %}
145
+ {%- endif %}
146
+ {%- else %}
147
+ {%- if ((preserved_thinking is defined and preserved_thinking) or loop.index0 > ns.last_user_index) %}
148
+ {%- if 'reasoning_content' in message and message['reasoning_content'] is string %}
149
+ {%- set rc = message['reasoning_content'] %}
150
+ {%- elif 'reasoning' in message and message['reasoning'] is string %}
151
+ {%- set rc = message['reasoning'] %}
152
+ {%- else %}
153
+ {%- set rc = none %}
154
+ {%- endif %}
155
+ {%- if rc is not none %}
156
+ {%- set content = think_begin_token + rc + think_end_token + visible_text(message['content']) %}
157
+ {%- else %}
158
+ {%- set content = think_begin_token + think_end_token + visible_text(message['content']) %}
159
+ {%- endif %}
160
+ {%- else %}
161
+ {%- set content = think_begin_token + think_end_token + visible_text(message['content']) %}
162
+ {%- endif %}
163
+ {%- endif %}
164
+ {%- if prev_ns.is_tool %}
165
+ {{- toolresponses_end_token }}
166
+ {%- endif %}
167
+ {{- assistant_token }}
168
+ {%- if message['tool_calls'] is defined and message['tool_calls'] %}
169
+ {%- set prev_ns.is_tool_first = true %}
170
+ {{- content }}
171
+ {{- toolcalls_begin_token + '\n' }}
172
+ {%- for tool in message['tool_calls'] %}
173
+ {%- set arguments = tool['function']['arguments'] %}
174
+ {{- toolcall_begin_token + tool['function']['name'] + toolsep_token + '\n' }}
175
+ {%- for key, value in arguments.items() %}
176
+ {{- argkey_begin_token + key + argkey_end_token + '\n' }}
177
+ {%- if value is not string %}
178
+ {%- set value = value | tojson(ensure_ascii=False) %}
179
+ {%- endif %}
180
+ {{- argvalue_begin_token + value + argvalue_end_token + '\n' }}
181
+ {%- endfor %}
182
+ {{- toolcall_end_token + '\n' }}
183
+ {%- endfor %}
184
+ {{- toolcalls_end_token + eos_token }}
185
+ {%- else %}
186
+ {%- if loop.last and raw_last_assistant %}
187
+ {{- visible_text(message['content']) }}
188
+ {%- elif not loop.last or is_training %}
189
+ {{- content + eos_token }}
190
+ {%- else %}
191
+ {{- content }}
192
+ {%- endif %}
193
+ {%- endif %}
194
+ {%- set prev_ns.is_tool = false %}
195
+ {%- endif %}
196
+ {%- if message['role'] == 'tool' %}
197
+ {%- set prev_ns.is_tool = true %}
198
+ {%- if prev_ns.is_tool_first %}
199
+ {{- toolresponses_begin_token + '\n' }}
200
+ {%- set prev_ns.is_tool_first = false %}
201
+ {%- endif %}
202
+ {{- toolresponse_begin_token + '\n' + visible_text(message['content']) + '\n' + toolresponse_end_token + '\n' }}
203
+ {%- endif %}
204
+ {%- if loop.last and message['role'] == 'assistant' %}
205
+ {%- set last_ns.last_is_assistant = true %}
206
+ {%- endif %}
207
+
208
+ {%- endfor %}
209
+ {%- if prev_ns.is_tool %}
210
+ {{- toolresponses_end_token }}
211
+ {%- endif %}
212
+ {%- if add_generation_prompt %}
213
+ {%- if not last_ns.last_is_assistant %}
214
+ {%- if reasoning_effort is defined and reasoning_effort in ['low', 'high'] %}
215
+ {{- assistant_token + think_begin_token }}
216
+ {%- elif reasoning_effort is defined and reasoning_effort == 'no_think' %}
217
+ {{- assistant_token + think_begin_token + think_end_token }}
218
+ {%- else %}
219
+ {{- assistant_token }}
220
+ {%- endif %}
221
+ {%- endif %}
222
+ {%- endif %}
history-archive-20260716.bundle ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd98ff30f85a2395937abba70b889e932d7067c569abd50ad8196f84fc9883d9
3
+ size 185068
hy3-1M-IQ2_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1c02c57e4dc8b55a254a5329c6c248fa7bf741644b6936898793f272d3292ea7
3
+ size 96019311104
hy3-1M-MTP-IQ2_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1686a7446e9792ea101e7b0384e9e1960484976d3344ed9044e8b3633d40adda
3
+ size 100008834592
hy3-1M-MTP-IQ3_XXS.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:64be4108595a2f6c3d23a3acc4c8a91eb07d87704227d4e428ed94eac25442f5
3
+ size 117335832096
hy3-1M-MTP-Q2_K.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fc8efc8d18ccd65fe146bbaca0bb55b21cea1146a7f7df9402a760ee1d6a8127
3
+ size 111376119328
hy3-1M-MTP-Q3_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:79d4d7af27d1403394ab3801633c6179b4ec51d89a5147c55a65454bd9e1bccf
3
+ size 144948000288
hy3-1M-MTP-Q4_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0699de0e85a67a435451ee512b084cd600e5316b4e1ee30661a6d5651bf351c0
3
+ size 182560831008
hy3-1M-MTP-Q5_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e06cff3617c9af38983c5df3878c5246aff2d86af01ffa5032df1bb4a3808a09
3
+ size 213423044128
hy3-1M-MTP-Q6_K-00001-of-00006.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dd19cbe49780ab785a7c6b7392f41248fcccbf85d4880eca53f79ed70b49d77a
3
+ size 47870883360
hy3-1M-MTP-Q6_K-00002-of-00006.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:09f007f46e87e7ee63e1379729d6d7e07dcdda4ca224eb21e80d530cf88ae7da
3
+ size 47856873216
hy3-1M-MTP-Q6_K-00003-of-00006.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:828cb5a414cfb791c8099c79c9e9ab648d413769786a9117534919a4cdc6dbde
3
+ size 47794923040
hy3-1M-MTP-Q6_K-00004-of-00006.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:46ecafd303d291ee64daf3100666e4d7097ad9e6360882a33e2368c352bf90f0
3
+ size 47853710976
hy3-1M-MTP-Q6_K-00005-of-00006.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:441cc1e78bd920d166e39836ea2f4dcf526871ca5ca59c4aa7f080fe3f67ae54
3
+ size 47856873216
hy3-1M-MTP-Q6_K-00006-of-00006.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5065a4f4d348a77158b802a3a1d31bc46d30afcf1c4bff04f62e3933641eb1cc
3
+ size 6072241792
hy3-1M-Q2_K.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e415ee8403863dd89972a356642c45c04feb90d18d16f7bed6111bf43e9978a7
3
+ size 107386595616
hy3-mtp-head-f16.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e591d94a3f23fa65478f63454a26e56490df1615271e5c02148fd9aed47776ab
3
+ size 7506840960
mtp_audit.png ADDED
niah_heatmap.png ADDED
results_mtp_audit/stage_a_iq2m.log ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ STAGEA ungated code: draft 402/887 = 45.3% accepted, 700 tok @ 76.5 t/s
2
+ STAGEA ungated prose: draft 342/1069 = 32.0% accepted, 700 tok @ 64.3 t/s
3
+ STAGEA ungated reason: draft 155/279 = 55.6% accepted, 248 tok @ 89.1 t/s
4
+ STAGEA ungated list: draft 311/699 = 44.5% accepted, 544 tok @ 78.2 t/s
5
+ STAGEA ungated refactor: draft 222/561 = 39.6% accepted, 409 tok @ 73.5 t/s
6
+ STAGEA ungated TOTAL: draft 1432/3495 = 41.0% accepted, 2601 tok @ 73.6 t/s
7
+ STAGEA-ungated-DONE
8
+ /workspace/stage_a.sh: line 3: 16632 Killed nohup $LS -m /workspace/models/hy3-1M-MTP-IQ2_M.gguf -c 16384 -np 1 -ngl 99 --jinja -fa on --spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min $1 --port 8090 > /workspace/results/server_stagea_$2.log 2>&1
9
+ STAGEA gated code: draft 335/381 = 87.9% accepted, 700 tok @ 83.9 t/s
10
+ STAGEA gated prose: draft 212/243 = 87.2% accepted, 700 tok @ 74.5 t/s
11
+ STAGEA gated reason: draft 130/142 = 91.5% accepted, 246 tok @ 89.5 t/s
12
+ STAGEA gated list: draft 300/339 = 88.5% accepted, 594 tok @ 86.7 t/s
13
+ STAGEA gated refactor: draft 238/273 = 87.2% accepted, 577 tok @ 79.8 t/s
14
+ STAGEA gated TOTAL: draft 1215/1378 = 88.2% accepted, 2817 tok @ 81.5 t/s
15
+ STAGEA-gated-DONE
16
+ /workspace/stage_a.sh: line 3: 16856 Killed nohup $LS -m /workspace/models/hy3-1M-MTP-IQ2_M.gguf -c 16384 -np 1 -ngl 99 --jinja -fa on --spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min $1 --port 8090 > /workspace/results/server_stagea_$2.log 2>&1
17
+ STAGEA nospec code: draft 0/0 = 0.0% accepted, 686 tok @ 71.9 t/s
18
+ STAGEA nospec prose: draft 0/0 = 0.0% accepted, 700 tok @ 72.4 t/s
19
+ STAGEA nospec reason: draft 0/0 = 0.0% accepted, 247 tok @ 73.1 t/s
20
+ STAGEA nospec list: draft 0/0 = 0.0% accepted, 544 tok @ 72.2 t/s
21
+ STAGEA nospec refactor: draft 0/0 = 0.0% accepted, 528 tok @ 72.1 t/s
22
+ STAGEA nospec TOTAL: draft 0/0 = 0.0% accepted, 2705 tok @ 72.2 t/s
23
+ STAGEA-nospec-DONE
24
+ STAGE-A-DONE
results_mtp_audit/vllm_battery_raw.jsonl ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {"label": "vllm-mtp", "task": "code", "tokens": 700, "wall_s": 7.9, "draft_n": null, "draft_accepted": null, "text_head": "Below is a practical example of a Python function that parses a **standard combined nginx access log** line into a dictionary, using a regex and gracefully handling missing or malformed fields.\n\n### E"}
2
+ {"label": "vllm-mtp", "task": "prose", "tokens": 700, "wall_s": 8.1, "draft_n": null, "draft_accepted": null, "text_head": "Below is a precise, protocol\u2011level description of how a BitTorrent *swarm* is bootstrapped from a **magnet link**, written for someone comfortable with networking concepts (DHT, UDP, HTTP, peer wire p"}
3
+ {"label": "vllm-mtp", "task": "reason", "tokens": 253, "wall_s": 2.1, "draft_n": null, "draft_accepted": null, "text_head": "To find when all three trucks next arrive together, we need the **least common multiple (LCM)** of their arrival intervals.\n\n**Arrival intervals:**\n- Truck A: 45 minutes\n- Truck B: 60 minutes\n- Truck "}
4
+ {"label": "vllm-mtp", "task": "list", "tokens": 370, "wall_s": 3.2, "draft_n": null, "draft_accepted": null, "text_head": "1. **200 OK** \u2013 Request succeeded and the response contains the requested data.\n2. **201 Created** \u2013 Request succeeded and a new resource was created.\n3. **202 Accepted** \u2013 Request accepted for proces"}
5
+ {"label": "vllm-mtp", "task": "refactor", "tokens": 350, "wall_s": 3.2, "draft_n": null, "draft_accepted": null, "text_head": "### Portable POSIX `sh` version\n\n```sh\nfor f in *.log; do\n if [ -s \"$f\" ]; then\n gzip -c \"$f\" > \"$f.gz\"\n fi\ndone\n```\n\n---\n\n### Explanation of changes\n\n1. **`[[ ... ]]` \u2192 `[ ... ]`**\n - "}
results_mtp_audit/vllm_official_metrics.txt ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ vllm:spec_decode_num_drafts_total{engine="0",model_name="hy3"} 988.0
2
+ vllm:spec_decode_num_drafts_created{engine="0",model_name="hy3"} 1.7835841674266129e+09
3
+ vllm:spec_decode_num_draft_tokens_total{engine="0",model_name="hy3"} 2964.0
4
+ vllm:spec_decode_num_draft_tokens_created{engine="0",model_name="hy3"} 1.7835841674267166e+09
5
+ vllm:spec_decode_num_accepted_tokens_total{engine="0",model_name="hy3"} 1383.0
6
+ vllm:spec_decode_num_accepted_tokens_created{engine="0",model_name="hy3"} 1.7835841674267774e+09
7
+ vllm:spec_decode_num_accepted_tokens_per_pos_total{engine="0",model_name="hy3",position="0"} 727.0
8
+ vllm:spec_decode_num_accepted_tokens_per_pos_total{engine="0",model_name="hy3",position="1"} 433.0
9
+ vllm:spec_decode_num_accepted_tokens_per_pos_total{engine="0",model_name="hy3",position="2"} 223.0
10
+ vllm:spec_decode_num_accepted_tokens_per_pos_created{engine="0",model_name="hy3",position="0"} 1.783584167426865e+09
11
+ vllm:spec_decode_num_accepted_tokens_per_pos_created{engine="0",model_name="hy3",position="1"} 1.783584167426893e+09
12
+ vllm:spec_decode_num_accepted_tokens_per_pos_created{engine="0",model_name="hy3",position="2"} 1.7835841674269142e+09
13
+ vllm:cache_config_info{_block_size_resolved="True",block_size="16",cache_dtype="auto",calculate_kv_scales="False",enable_prefix_caching="True",engine="0",gpu_memory_utilization="0.92",hash_block_size="None",is_attention_free="False",kv_cache_dtype_skip_layers="[]",kv_cache_max_concurrency="14.1103515625",kv_cache_memory_bytes="None",kv_cache_size_tokens="231184",kv_offloading_backend="native",kv_offloading_size="None",kv_sharing_fast_prefill="False",mamba_block_size="None",mamba_cache_dtype="auto",mamba_cache_mode="none",mamba_page_size_padded="None",mamba_ssm_cache_dtype="auto",num_cpu_blocks="None",num_gpu_blocks="14449",num_gpu_blocks_override="None",prefix_caching_hash_algo="sha256",sliding_window="None",user_specified_block_size="False",user_specified_mamba_block_size="False"} 1.0
results_niah_ladder.jsonl ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {"target_tokens": 262144, "prompt_tokens": 261241, "score": 10, "needles": 10, "wall_seconds": 688.8, "completion_tokens": 90, "depths": [{"depth": 0.05, "city": "Dunedin", "hit": true}, {"depth": 0.15, "city": "Whangarei", "hit": true}, {"depth": 0.25, "city": "Invercargill", "hit": true}, {"depth": 0.35, "city": "Napier", "hit": true}, {"depth": 0.45, "city": "Wellington", "hit": true}, {"depth": 0.55, "city": "Gisborne", "hit": true}, {"depth": 0.65, "city": "Timaru", "hit": true}, {"depth": 0.75, "city": "Nelson", "hit": true}, {"depth": 0.85, "city": "Tauranga", "hit": true}, {"depth": 0.95, "city": "Rotorua", "hit": true}], "source_run": "hy3-ladder/results/iq2m/results.jsonl"}
2
+ {"target_tokens": 393216, "prompt_tokens": 392060, "score": 10, "needles": 10, "wall_seconds": 1264.4, "completion_tokens": 87, "depths": [{"depth": 0.05, "city": "Queenstown", "hit": true}, {"depth": 0.15, "city": "Nelson", "hit": true}, {"depth": 0.25, "city": "Whangarei", "hit": true}, {"depth": 0.35, "city": "Dunedin", "hit": true}, {"depth": 0.45, "city": "Invercargill", "hit": true}, {"depth": 0.55, "city": "Hamilton", "hit": true}, {"depth": 0.65, "city": "Wellington", "hit": true}, {"depth": 0.75, "city": "Blenheim", "hit": true}, {"depth": 0.85, "city": "Christchurch", "hit": true}, {"depth": 0.95, "city": "Napier", "hit": true}], "source_run": "hy3-ladder/results/iq2m/results.jsonl"}
3
+ {"target_tokens": 524288, "prompt_tokens": 522347, "score": 10, "needles": 10, "wall_seconds": 2143.5, "completion_tokens": 321, "depths": [{"depth": 0.05, "city": "Nelson", "hit": true}, {"depth": 0.15, "city": "Blenheim", "hit": true}, {"depth": 0.25, "city": "Dunedin", "hit": true}, {"depth": 0.35, "city": "Whangarei", "hit": true}, {"depth": 0.45, "city": "Auckland", "hit": true}, {"depth": 0.55, "city": "Wellington", "hit": true}, {"depth": 0.65, "city": "Invercargill", "hit": true}, {"depth": 0.75, "city": "Rotorua", "hit": true}, {"depth": 0.85, "city": "Hamilton", "hit": true}, {"depth": 0.95, "city": "Christchurch", "hit": true}], "source_run": "hy3-ladder/results/iq2m/results.jsonl"}
4
+ {"target_tokens": 786432, "prompt_tokens": 783593, "score": 10, "needles": 10, "wall_seconds": 4493.8, "completion_tokens": 495, "depths": [{"depth": 0.05, "city": "Whangarei", "hit": true}, {"depth": 0.15, "city": "Blenheim", "hit": true}, {"depth": 0.25, "city": "Timaru", "hit": true}, {"depth": 0.35, "city": "Queenstown", "hit": true}, {"depth": 0.45, "city": "Auckland", "hit": true}, {"depth": 0.55, "city": "Rotorua", "hit": true}, {"depth": 0.65, "city": "Hamilton", "hit": true}, {"depth": 0.75, "city": "Tauranga", "hit": true}, {"depth": 0.85, "city": "Napier", "hit": true}, {"depth": 0.95, "city": "Invercargill", "hit": true}], "source_run": "hy3-ladder/results/iq2m/results.jsonl"}
5
+ {"target_tokens": 524288, "prompt_tokens": 522445, "score": 10, "needles": 10, "wall_seconds": 2036.9, "completion_tokens": 87, "depths": [{"depth": 0.05, "city": "Nelson", "hit": true}, {"depth": 0.15, "city": "Invercargill", "hit": true}, {"depth": 0.25, "city": "Dunedin", "hit": true}, {"depth": 0.35, "city": "Christchurch", "hit": true}, {"depth": 0.45, "city": "Blenheim", "hit": true}, {"depth": 0.55, "city": "Whangarei", "hit": true}, {"depth": 0.65, "city": "Hamilton", "hit": true}, {"depth": 0.75, "city": "Wellington", "hit": true}, {"depth": 0.85, "city": "Napier", "hit": true}, {"depth": 0.95, "city": "Queenstown", "hit": true}], "source_run": "hy3-ladder/results/q4km/results.jsonl"}
6
+ {"target_tokens": 1048576, "prompt_tokens": 1045957, "score": 9, "needles": 10, "wall_seconds": 8508.3, "completion_tokens": 2602, "depths": [{"depth": 0.05, "city": "Hamilton", "hit": true}, {"depth": 0.15, "city": "Nelson", "hit": true}, {"depth": 0.25, "city": "Wellington", "hit": true}, {"depth": 0.35, "city": "Christchurch", "hit": true}, {"depth": 0.45, "city": "Napier", "hit": false}, {"depth": 0.55, "city": "Auckland", "hit": true}, {"depth": 0.65, "city": "Rotorua", "hit": true}, {"depth": 0.75, "city": "Tauranga", "hit": true}, {"depth": 0.85, "city": "Gisborne", "hit": true}, {"depth": 0.95, "city": "Invercargill", "hit": true}], "source_run": "hy3-1m-q8/q8_all_seeds.jsonl"}
7
+ {"target_tokens": 1048576, "prompt_tokens": 1045924, "score": 6, "needles": 10, "wall_seconds": 8246.5, "completion_tokens": 2634, "depths": [{"depth": 0.05, "city": "Nelson", "hit": true}, {"depth": 0.15, "city": "Rotorua", "hit": true}, {"depth": 0.25, "city": "Tauranga", "hit": false}, {"depth": 0.35, "city": "Invercargill", "hit": false}, {"depth": 0.45, "city": "Whangarei", "hit": false}, {"depth": 0.55, "city": "Auckland", "hit": true}, {"depth": 0.65, "city": "Napier", "hit": true}, {"depth": 0.75, "city": "Hamilton", "hit": true}, {"depth": 0.85, "city": "Queenstown", "hit": false}, {"depth": 0.95, "city": "Dunedin", "hit": true}], "source_run": "hy3-1m-q8/q8_all_seeds.jsonl"}
8
+ {"target_tokens": 1048576, "prompt_tokens": 1045924, "score": 6, "needles": 10, "wall_seconds": 8253.7, "completion_tokens": 2634, "depths": [{"depth": 0.05, "city": "Nelson", "hit": true}, {"depth": 0.15, "city": "Rotorua", "hit": true}, {"depth": 0.25, "city": "Tauranga", "hit": false}, {"depth": 0.35, "city": "Invercargill", "hit": false}, {"depth": 0.45, "city": "Whangarei", "hit": false}, {"depth": 0.55, "city": "Auckland", "hit": true}, {"depth": 0.65, "city": "Napier", "hit": true}, {"depth": 0.75, "city": "Hamilton", "hit": true}, {"depth": 0.85, "city": "Queenstown", "hit": false}, {"depth": 0.95, "city": "Dunedin", "hit": true}], "source_run": "hy3-1m-q8/q8_all_seeds.jsonl"}
9
+ {"target_tokens": 1048576, "prompt_tokens": 1045957, "score": 9, "needles": 10, "wall_seconds": 7292.7, "completion_tokens": 228, "depths": [{"depth": 0.05, "city": "Hamilton", "hit": true}, {"depth": 0.15, "city": "Nelson", "hit": true}, {"depth": 0.25, "city": "Wellington", "hit": false}, {"depth": 0.35, "city": "Christchurch", "hit": true}, {"depth": 0.45, "city": "Napier", "hit": true}, {"depth": 0.55, "city": "Auckland", "hit": true}, {"depth": 0.65, "city": "Rotorua", "hit": true}, {"depth": 0.75, "city": "Tauranga", "hit": true}, {"depth": 0.85, "city": "Gisborne", "hit": true}, {"depth": 0.95, "city": "Invercargill", "hit": true}], "source_run": "hy3-ladder/results_1M_kvq4.jsonl"}