Downloads · 30 days
113
7% of all-time downloads
sakamakismile/Qwen3.6-27B-Fable-Fusion-MTP-NVFP4
Qwen3.6-27B-Fable-Fusion-MTP-NVFP4 is a image-text-to-text model from sakamakismile. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Publication status: P2c quality gates passed; approved for Hugging Face publication. The required runtime contract is to leave --kv-cache-dtype unset so vLLM uses auto / the model's BF16 dtype. Do not use FP8 KV cache…
Downloads · 30 days
113
7% of all-time downloads
All-time downloads
1.7K
Public
Parameters
16.7B
20.6 GB on disk
Likes
8
Public
Click a slice to open those files.
.safetensors20.6 GB · 100%
How the weights are stored.
U812.2B · 73%
From the Hugging Face model README
Publication status: P2c quality gates passed; approved for Hugging Face publication. The required runtime contract is to leave
--kv-cache-dtypeunset so vLLM usesauto/ the model's BF16 dtype. Do not use FP8 KV cache with the validated vLLM release.
This is an SM120-oriented NVFP4 conversion of
nightmedia/Qwen3.6-27B-Architect-Polaris2-Fable-B-F451-F32, an Apache-2.0
NuSLERP merge of Qwen3.6-27B-Architect-Polaris2-Fable-B and
Qwen3.6-27B-Architect-Polaris-Fable-F451. The language-model weights were
quantized directly from the F32 safetensors original. No GGUF, MLX, Q8, or
pre-existing NVFP4 checkpoint was used as a quantization source.
llmcompressor W4A4 NVFP4, targets="Linear".compressed-tensors, nvfp4-pack-quantized.The following ranges remain BF16:
lm_head: 1 tensor.conv1d / Gated DeltaNet special layers: 48 tensors.All 15 MTP module names are explicitly present in
quantization_config.ignore. Omitting these entries is known to produce 0%
MTP acceptance on this architecture.
The input merge contains 15 mtp.* tensors: mtp.fc.weight is BF16 and the
other 14 are F32. They were cast directly to BF16 and compared against a
self-extracted BF16 MTP head from Qwen/Qwen3.6-27B.
mtp.fc.weight was exactly identical.Matched TP=2, MTP k=2 A/B testing selected B, the official origin:
| MTP origin | Draft acceptance | First-position acceptance | Output tok/s |
|---|---|---|---|
| A — input-derived | 67.34% | 78.72% | 42.17 |
| B — official | 70.53% | 79.85% | 43.23 |
B improved full-draft acceptance by 3.19 percentage points and tok/s by 2.51% on the fixed eight-prompt single-stream workload. The final local directory therefore contains the official B MTP payload. Static verification confirms 15/15 BF16 tensors, exact expected payload hashes, index correctness, explicit ignore registration, and an unchanged language-model shard SHA-256 versus BASE.
The measured runtime was vllm/vllm-openai:v0.26.0, TP=2. On this host,
NCCL_P2P_DISABLE=1 and --disable-custom-all-reduce are required. Select two
compute GPUs and do not include the display GPU. Leave --kv-cache-dtype
unset: vLLM resolves it to auto with BF16 for this model. FP8 KV cache is not
a supported launch configuration for this release.
MODEL=/path/to/Qwen3.6-27B-Fable-Fusion-MTP-NVFP4
IMAGE=vllm/vllm-openai:v0.26.0
serve() {
docker run --rm \
--gpus '"device=0,1"' \
--ipc=host \
--shm-size=8g \
-e NCCL_P2P_DISABLE=1 \
-p 8000:8000 \
-v "$MODEL:$MODEL:ro" \
--entrypoint python3 \
"$IMAGE" \
-m vllm.entrypoints.openai.api_server \
--model "$MODEL" \
--served-model-name fable-fusion \
--trust-remote-code \
--tensor-parallel-size 2 \
--disable-custom-all-reduce \
--max-model-len 32768 \
--limit-mm-per-prompt '{"image":1,"video":0}' \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_xml \
--host 0.0.0.0 \
--port 8000 \
"$@"
}
Normal decoding / BASE mode:
serve
MTP k=2:
serve --speculative-config \
'{"method":"mtp","num_speculative_tokens":2}'
Suffix example:
serve --speculative-config \
'{"method":"suffix","num_speculative_tokens":8,"suffix_decoding_max_tree_depth":24,"suffix_decoding_max_cached_requests":10000,"suffix_decoding_max_spec_factor":1.0,"suffix_decoding_min_token_prob":0.1}'
N-gram example:
serve --speculative-config \
'{"method":"ngram","num_speculative_tokens":4,"prompt_lookup_min":2,"prompt_lookup_max":5}'
Suffix and N-gram commands are configuration examples, not P2-validated recommendations.
P2c compared the identical checkpoint and vLLM path with only the KV-cache
contract changed. With FP8 KV cache, the mandatory greedy 17×19 prompt used
all 16,384 completion tokens without </think> or a final answer. With the
flag omitted (auto, model BF16), it naturally terminated after 328 Thinking
tokens and answered 323. All five seeded greedy probes naturally terminated
and answered correctly:
| Probe | Thinking tokens | Finish |
|---|---|---|
| 17×19 | 328 | stop |
| 23×17 | 853 | stop |
| 144÷12 | 171 | stop |
| 1000−637 | 218 | stop |
| 248+175 | 797 | stop |
The specified sampling control also passed at 223 Thinking tokens. The F32 source control had previously terminated the original prompt at 303 Thinking tokens / 309 generated tokens. This controlled result identifies FP8 KV cache, not token budget or the NVFP4 weight bake, as the cause of the P2b regression.
The fixed single-stream workload generated 1,280 completion tokens over eight requests after warm-up with BF16/auto KV cache.
| Mode | Output tok/s | Peak VRAM/GPU | Relative to BASE |
|---|---|---|---|
| Normal decode | 26.73 | 14,453 MiB | 1.00x |
| MTP k=2 | 44.10 | 14,159 MiB | 1.65x |
P2c k=2 speculative metrics:
Absolute capability checks passed for both normal and MTP runs: GSM8K-style 8/8, HumanEval-style 4/4, JSON tool call, Japanese QA 5/5, red/blue image understanding, and 8,340-token long-context retrieval.
kv_cache_dtype=auto.The project contains:
src/mtp/extract_official_mtp.pysrc/mtp/graft_mtp.pysrc/mtp/verify_mtp.pysrc/benchmark/run_p2_quality_workload.pysrc/benchmark/run_p2b_thinking_probe.pysrc/benchmark/run_p2b_f32_cpu_probe.pysrc/benchmark/select_mtp_candidate.pysrc/benchmark/aggregate_p2_quality.pysrc/benchmark/aggregate_p2c_quality.pysrc/serve/run_p2_vllm_suite.shsrc/serve/run_p2c_thinking_probe.shreports/mtp_manifest.jsonreports/quality_gate.jsonreports/p2c_quality_gate.jsonreports/P2_REPORT.mdreports/P2B_REPORT.mdreports/P2C_REPORT.mdApache License 2.0, inherited from the source model card. Users must also follow the licenses and terms of the listed upstream base models.