This is not the official Transformers / vLLM / SGLang checkpoint. The official repo is BF16 safetensors (~55 GB) for Hugging Face Transformers and dedicated servers. This repo is a quantized GGUF split: NVFP4 language + trained MTP, plus an F16 CLIP projector, with GGUF metadata patched so runners that honor n_ctx_train will accept 1,048,576 tokens (official static YaRN).
Separate F16 mmproj GGUF (already converted; not fused into the 27B file)
MTP
Trained in the model
Kept in the language GGUF (draft-mtp)
Native context
262,144
262,144 (unchanged weights)
1M context
YaRN in config.json / engine flags
YaRN written into GGUF KV
Typical serve
vLLM, SGLang, TokenSpeed, Transformers
llama.cpp, Ollama
License is the same Apache License 2.0 as Qwen/Qwen3.8-27B. The LICENSE file in this repo is a verbatim copy of that official text (including the Alibaba Cloud 2026 appendix notice).
The projector is not inside the 27B GGUF. That file is qwen35 language + MTP. CLIP lives in its own mmproj GGUF (general.type = mmproj, F16). You do not convert the official tower, merge tensors, or use ADAPTER (that is LoRA). Point the runner at the file we already shipped: --mmproj or a second FROM.
mmproj/ is only a folder so Hugging Face indexes the 27B language file (Ollama app filter, ~27B / qwen35) instead of the 0.5B CLIP file. Same projector weights; not a second copy you have to “embed.”
NVFP4 applies only to language (and MTP) matmuls. The vision tower stays F16. 1M context is not extra trained weights; it is rope/context metadata so the runner will allocate a 1M window.
Why this pack exists
Qwen3.8-27B is a native VLM (images and video) with thinking on by default, trained MTP, 262,144 native context, and an official path to 1,000,000 tokens via static YaRN (factor: 4.0, original_max_position_embeddings: 262144). Qwen’s hosted API is expected to default to 1M; the open Transformers card still ships 262K in config.json and documents YaRN as an override.
Goal for local serve (DGX Spark / Ollama 0.32 / llama.cpp):
Keep NVFP4 so ~27B fits in ~16 GB instead of ~55 GB BF16.
Keep MTP so speculative decode works (--spec-type draft-mtp).
Keep vision (official CLIP projector).
Make 1M actually loadable in Ollama, which caps num_ctx at GGUF n_ctx_train.
Strategy (what we did and did not do)
What we did not do
We did not retrain Qwen3.8.
We did not NVFP4-quantize from BF16 on this tree. Current llama.cpp llama-quantizehas no NVFP4 target in QUANT_OPTIONS (NVFP4 exists as a runtime ftype). Do not run llama-quantize … NVFP4 and expect a good file.
We did not bake 1M into the tensors. KV at 1M is still ~61–64 GiB FP16 plus the ~16 GB weights.
We did not put vision into the NVFP4 blob. That would be the wrong precision and the wrong packaging.
Ollama is assembled with two FROM lines (language blob + projector blob). ADAPTER is LoRA and is the wrong instruction. RENDERER/PARSERqwen3-vl is for the older qwen3-vl arch, not qwen35.
Why the YaRN rewrite
On Ollama 0.32, PARAMETER num_ctx 1048576 against the stock 262K NVFP4 GGUF is rejected:
requested context size too large for model num_ctx=1048576 n_ctx_train=262144
Unified memory was not the limiter. After the KV patch, ollama show reports context length 1048576. The shipped Modelfile still defaults to num_ctx 262144 so a casual chat does not allocate a 1M KV cache. Pass options.num_ctx: 1048576 only when you want that window.
Qwen’s own card: static YaRN can hurt short prompts. Prefer 8K–262K for chat; use 1M for long jobs.
Use
Needs a llama.cpp / Ollama build that understands qwen35, NVFP4, mmproj, and draft-mtp.
draft_num_predict 4 → --spec-type draft-mtp on Ollama 0.32.x.
Thinking is on by default (same as the official model). A vision request with thinking enabled can return HTTP 200 and empty content. Use instruct / "think": false for images.
Open WebUI: leaving num_ctx as Default uses the Modelfile (262K). Toggling the control pre-fills 2048 and will silently shrink the window. Set num_ctx to 1048576 on this model only if you intend a ~64 GiB KV alloc. Do not raise a global Ollama OLLAMA_CONTEXT_LENGTH to 1M.
Sampling (from the official card)
Mode
temperature
top_p
top_k
min_p
presence_penalty
repetition_penalty
Thinking (default)
1.0
0.95
20
0
0
1.0
Instruct (no think)
0.7
0.80
20
0
1.5
1.0
Official reasoning_effort (xhigh / medium / low) and preserve_thinking are Transformers / Qwen Cloud features. GGUF+Ollama exposes thinking on/off more coarsely.
Validation (DGX Spark, GB10, Ollama 0.32.11)
Check
Result
Offload
66/66 GPU, --mmproj + --spec-type draft-mtp
Text
short ping OK
Vision
red|blue PNG described correctly with think: false
This repo (mixbits) — YaRN/1M GGUF KV, official CLIP mmproj attach, Ollama dual-FROM layout, Spark validation
bibtex
1@misc{qwen38,
2 title = {{Qwen3.8-Max}: A New Bar for Coding and Cowork},
3 url = {https://qwen.ai/blog?id=qwen3.8},
4 author = {{Qwen Team}},
5 month = {August},
6 year = {2026}
7}