|
Download README.md from Capicua25x/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill-MXFP4-Vision: direct link, hf CLI and curl.
- Browser
- Download file 5.02 kB
-
https://huggingface.co/Capicua25x/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill-MXFP4-Vision/resolve/4cdd29e8872ee549228dae16cb20c6c68e3cbcfc/README.md
- Command line
-
hf download hf://Capicua25x/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill-MXFP4-Vision@4cdd29e8872ee549228dae16cb20c6c68e3cbcfc/README.md
-
curl -L -o README.md https://huggingface.co/Capicua25x/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill-MXFP4-Vision/resolve/4cdd29e8872ee549228dae16cb20c6c68e3cbcfc/README.md
5.02 kB
| license: apache-2.0 | |
| base_model: nerkyor/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill | |
| base_model_relation: quantized | |
| language: | |
| - en | |
| - zh | |
| pipeline_tag: image-text-to-text | |
| tags: | |
| - mxfp4 | |
| - quantized | |
| - compressed-tensors | |
| - rocm | |
| - rdna4 | |
| - moe | |
| - qwen3 | |
| - distillation | |
| - deepseek-v4 | |
| - reasoning | |
| - thinking | |
| - agentic | |
| - multimodal | |
| - vision | |
| # Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill — MXFP4 + Vision (RDNA4 / R9700) | |
| The **vision-enabled sibling** of | |
| [`Capicua25x/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill-MXFP4`](https://huggingface.co/Capicua25x/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill-MXFP4): | |
| the same MXFP4 quant of nerkyor's DeepSeek-V4-Pro thinking distill, **with the Qwen3.6 base | |
| vision tower grafted back in** — so it's **text + reasoning + vision + MTP**, all on the | |
| RDNA4 [`tcclaviger/vllm-rocm-mxfp4-nvfp4`](https://hub.docker.com/r/tcclaviger/vllm-rocm-mxfp4-nvfp4) container. | |
| The distill shipped text-only (nerkyor dropped the vision tower on export). This build restores it. | |
| Recipe + tooling: **https://github.com/Capicua25x/qwen3.6-mxfp4-rdna4** | |
| ## How image support was added (the vision graft) | |
| nerkyor's distill is `Qwen3_5MoeForCausalLM` (text-only) — no vision tower. But the base | |
| `Qwen/Qwen3.6-35B-A3B` is multimodal, and its vision tower is **architecturally independent** of | |
| the language model: the vision encoder → merger projects image features to `out_hidden_size: 2048`, | |
| which is exactly the LM's `hidden_size`. So the tower bolts straight on — the same trick used to | |
| graft MTP back: | |
| 1. **Copy the base's 333 `model.visual.*` tensors** (BF16, ~0.9 GB) from a known-good multimodal | |
| build into a new shard. | |
| 2. **Add `model.visual.*` to `quantization_config.ignore`** so vLLM loads them as BF16 (the vision | |
| tower is never quantized), and keep the multimodal `Qwen3_5MoeConfig` (with `vision_config`). | |
| 3. **Serve without `--language-model-only`** (that flag had been stubbing the tower out), with the | |
| base's `chat_template` + `preprocessor_config` for image-token handling. | |
| **Why it works:** the DeepSeek-V4-Pro distill is a *light* LoRA (text-only reasoning traces); it | |
| shifted the LM but didn't break its ability to interpret the base vision tower's embedding space. | |
| **Verified empirically** — fed a generated image (text "VISION 7", a red circle, a blue rectangle), | |
| the model read the **text, shapes, colors, and spatial positions** correctly, while still reasoning. | |
| (Vision is *not* lossless like MTP — a heavier-finetuned LM might fail to ground the embeddings — so | |
| this is a measured result, not a guarantee for arbitrary distills.) | |
| ## Serving (vLLM, 2× R9700, TP2) | |
| ```bash | |
| vllm serve Capicua25x/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill-MXFP4-Vision \ | |
| --tensor-parallel-size 2 --gpu-memory-utilization 0.92 --max-model-len 262144 \ | |
| --enable-prefix-caching --max-num-seqs 64 \ | |
| --enable-auto-tool-choice --tool-call-parser qwen3_xml --reasoning-parser qwen3 \ | |
| --speculative-config '{"method":"mtp","num_speculative_tokens":3}' | |
| ``` | |
| **Do NOT pass `--language-model-only`** here (that disables vision). Send images via the standard | |
| OpenAI `image_url` content blocks. Thinking-on: `temperature=0.6 / top_p=0.95`. | |
| ## Validation — identical to the text-only build, plus vision | |
| | Gate | This (vision) build | Text-only sibling | | |
| |---|---|---| | |
| | SQL regression | **136/137, 0 FAIL** | 136/137, 0 FAIL | | |
| | Agent eval (tool-calling, thinking-on) | **27/27, 0 FAIL** | 26/27 | | |
| | Single-stream / ceiling (short) | **108.9 tok/s / ~128** | 107 / ~128 | | |
| | MTP draft acceptance (MTP-3) | **~57%** | ~56% | | |
| | Image understanding | ✅ | ❌ (none) | | |
| | Cost of vision | **+0.9 GB VRAM, 0 text-perf** | — | | |
| The vision tower only fires on image input, so text/agentic throughput is unchanged. | |
| ## Notes | |
| - The "8-bit precision" badge is a HuggingFace artifact of MXFP4's `uint8` packing — this model | |
| is genuinely **4-bit** (`config.json` → `num_bits: 4`, `mxfp4-pack-quantized`). | |
| - Built/tested only on **gfx1201 (RDNA4, R9700)** with `tcclaviger/vllm-rocm-mxfp4-nvfp4`. | |
| ## Credits | |
| Same chain as the text-only build, plus the vision tower from Qwen's base: | |
| - **Qwen team (Alibaba)** — [Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) base + the vision tower (Apache-2.0). | |
| - **nerkyor / "Lynn"** — the [DSV4Pro-Thinking distill](https://huggingface.co/nerkyor/Qwen3.6-35B-A3B-DSV4Pro-Thinking-Distill) (the reasoning). | |
| - **DeepSeek-AI** — DeepSeek-V4-Pro, the distillation teacher. | |
| - **olka** — [qstream](https://github.com/olka/qstream), the MXFP4 quantizer. | |
| - **kallepahajoki** — the qstream Qwen3.6 fix + reference MXFP4 recipe ([`pahajokiconsulting/Qwen3.6-35B-A3B-MXFP4`](https://huggingface.co/pahajokiconsulting/Qwen3.6-35B-A3B-MXFP4)), the source of the BF16 vision-tower weights grafted here. | |
| - **tcclaviger** — the [RDNA4/gfx12 MXFP4 vLLM container & kernel](https://hub.docker.com/r/tcclaviger/vllm-rocm-mxfp4-nvfp4). | |
| Quantization + RDNA4 packaging (config-wrap, MTP graft, vision graft) by **Capicua25x**. Apache-2.0. | |