Qwopus3.8-27B-Flash NVFP4

A native NVIDIA ModelOpt NVFP4 conversion of Jackrong/Qwopus3.8-27B-Flash, made for NVIDIA Blackwell GPUs.

This conversion uses NVFP4 for the transformer weights while intentionally retaining the language-model head in BF16. The complete vision stack and the model's native MTP speculative head are also preserved in BF16.

The precision map is deliberate: the LM head directly determines next-token logits, so preserving it at BF16 is a quality-first choice for instruction following, structured output, and tool use. This is a fresh conversion from the pinned BF16 source checkpoint, not a requantization of another quantized release.

Parameter count: 27.78B logical model parameters. Hugging Face may display a smaller "Model size" figure for this repository because its automatic scanner counts packed NVFP4 U8 storage elements, rather than unpacked 4-bit weight values. The safetensors index records the full logical parameter count.

Included

  • NVFP4 transformer weights in ModelOpt mixed-precision format
  • BF16 lm_head
  • BF16 visual encoder and projector
  • Native MTP / NextN speculative head
  • Original tokenizer, processor, generation config, and model configuration

Serving: SGLang + DFlash2

The tested single-GPU path is a current Blackwell-capable SGLang build with FlashInfer, ModelOpt FP4 support, and a matching Qwen3.8 27B DFlash2 NVFP4 draft model. The draft model is required for the DFlash configuration below; do not use an arbitrary Qwen drafter.

python3 -m sglang.launch_server \
  --trust-remote-code \
  --model-path /models/Qwopus3.8-27B-Flash-NVFP4 \
  --served-model-name qwopus3.8-27b-flash-nvfp4 \
  --host 127.0.0.1 \
  --port 8000 \
  --mem-fraction-static 0.80 \
  --attention-backend flashinfer \
  --chunked-prefill-size 2048 \
  --disable-prefill-cuda-graph \
  --kv-cache-dtype fp8_e4m3 \
  --max-running-requests 4 \
  --context-length 262144 \
  --mamba-full-memory-ratio 11.93 \
  --mamba-radix-cache-strategy extra_buffer \
  --mamba-ssm-dtype bfloat16 \
  --default-chat-template-kwargs '{"enable_thinking":false}' \
  --chat-template /models/Qwopus3.8-27B-Flash-NVFP4/chat_template.jinja \
  --mm-feature-transport cpu \
  --tool-call-parser qwen \
  --sampling-defaults model \
  --enable-metrics \
  --enable-cache-report \
  --speculative-algorithm DFLASH \
  --speculative-draft-model-path /models/Qwen3.8-27B-DFlash2-NVFP4 \
  --speculative-draft-model-quantization modelopt_fp4 \
  --speculative-draft-attention-backend flashinfer \
  --speculative-num-draft-tokens 10 \
  --speculative-attention-mode prefill

This profile is intended for a Blackwell-class GPU with enough memory for the target model, draft model, FP8 KV cache, and runtime overhead. Start at a smaller context or lower --mem-fraction-static on less capable hardware.

For multimodal use, keep the bundled chat_template.jinja so image tokens are rendered correctly. For function calling, use SGLang's Qwen tool parser. The default profile disables thinking for predictable interactive tool use; enable it per request only when your application expects and budgets for reasoning.

OpenCode / OpenWorker agent loops

The bundled chat template produces valid native tool calls; do not replace it to solve an agent that stops after a sentence such as "I will inspect the file." Some OpenCode-derived clients send tool_choice: "auto" for every turn, including a fresh user request that clearly requires a tool. Under auto, the model is allowed to answer with a plan and end the agent loop.

For a reliable unattended coding-agent setup, enforce tool_choice: "required" at the client or a small OpenAI-compatible gateway only when all three are true:

  1. the request has at least one tool;
  2. tool_choice is absent or "auto";
  3. the last message is a new user message.

Leave turns whose last message is a tool result on auto. That lets the model either make the next necessary call or provide its final answer, without forcing an unnecessary tool call after every result.

Example request:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "qwopus3.8-27b-flash-nvfp4",
    "messages": [{"role": "user", "content": "Reply exactly: OK"}],
    "temperature": 0.6,
    "top_p": 0.95,
    "max_tokens": 2048,
    "chat_template_kwargs": {"enable_thinking": false}
  }'

Provenance

Base model: Jackrong/Qwopus3.8-27B-Flash

Thanks to Kyle Hessling for creating Qwopus3.8-27B-Flash and making the original model available to the community.

Conversion Details

  • Source revision: 44d24e8cb20ceb3cdf4fe200b5a0afd970ee748a
  • Quantization: NVIDIA ModelOpt NVFP4 mixed precision
  • LM head: BF16
  • Vision and MTP weights: BF16
  • Format: safetensors

This repository contains converted model weights. Please follow the base model's license and usage terms.

Downloads last month
983
Safetensors
Model size
19B params
Tensor type
BF16
·
F8_E4M3
·
U8
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for sojufx/Qwopus3.8-27B-Flash-NVFP4

Base model

Qwen/Qwen3.8-27B
Quantized
(35)
this model