--- library_name: transformers license: apache-2.0 license_name: qwen-community-1.0 license_link: LICENSE pipeline_tag: image-text-to-text base_model: - Qwen/Qwen3.8-Flash-Next tags: - amd - rdna4 - r9700 - mxfp4 ---
NOTICE: This will only run on AMD AI PRO R9700 GPUs
Activation-aware MXFP4 / FP8 quantization — 116 GB totalCalibrated FP8 KV-cache scales are included.
AMD RAM offload has been enabled.
FP8 KV cache has been enabled, as well as FP8 KV scale use.
docker run --rm -it \
--network host --shm-size 32g \
--ulimit memlock=-1:-1 \
--cap-add SYS_PTRACE --security-opt seccomp=unconfined \
--device /dev/kfd --device /dev/dri \
--group-add video \
-v <path>/Qwen3.8-Flash-Next-MXFP4-FP8-GPTQ:/app/models \
-v <path>/tunableop:/tunableop \
-v <path>/cache/triton:/cache/triton \
-v <path>/cache/vllm:/cache/vllm \
-v <path>/cache/inductor:/cache/inductor \
-e TRITON_CACHE_DIR=/cache/triton \
-e VLLM_CACHE_ROOT=/cache/vllm \
-e TORCHINDUCTOR_CACHE_DIR=/cache/inductor \
-e OMP_NUM_THREADS=8 \
-e PYTORCH_TUNABLEOP_ENABLED=1 \
-e PYTORCH_TUNABLEOP_TUNING=0 \
-e PYTORCH_TUNABLEOP_RECORD_UNTUNED=0 \
-e VLLM_ROCM_USE_AITER=0 \
-e GPU_MAX_HW_QUEUES=1 \
-e HSA_ENABLE_INTERRUPT=1 \
-e HSA_ENABLE_MWAITX=1 \
-e VLLM_PLE_CPU_OFFLOAD=1 \
-e ROCR_VISIBLE_DEVICES=0,1,2,3 \
tcclaviger/vllm:latest \
/app/models \
--tensor-parallel-size 4 \
--tool-call-parser qwen3_coder \
--enable-auto-tool-choice \
--max-num-seqs 16 \
--enable-chunked-prefill \
--max-num-batched-tokens 8192 \
--gpu-memory-utilization 0.97 \
--host 0.0.0.0 \
--port 8078 \
--kv-cache-dtype fp8 \
--served-model-name Qwen3.8-Flash-Next \
--max-model-len 524288 \
--reasoning-parser qwen3 \
--override-generation-config '{"max_tokens": 65536, "temperature": 0.8, "top_p": 0.95, "top_k": 40, "presence_penalty": 1}' \
--compilation-config '{"cudagraph_capture_sizes": [4], "max_cudagraph_capture_size": 4}' \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}' \
--hf-overrides '{"text_config": {"rope_parameters": {"rope_type": "yarn", "factor": 2.0, "original_max_position_embeddings": 262144, "mrope_section": [11, 11, 10], "mrope_interleaved": true, "partial_rotary_factor": 0.25, "rope_theta": 10000000}}}'
2 x R9700 — the image's best measured TP2 recipe (--recipes tp2-expert-mem-60gb-ple-cache-8gb): routed experts that do not fit VRAM live in 60 GiB of system RAM behind a device-side LRU, the n-gram table streams from NVMe with an 8 GiB row cache; 82 GiB of system RAM at runtime, 100 tok/s single-request decode, 323 tok/s response at 16 concurrent.
docker run --rm -it \
--network host --shm-size 32g \
--ulimit memlock=-1:-1 \
--cap-add SYS_PTRACE --security-opt seccomp=unconfined \
--device /dev/kfd --device /dev/dri \
--group-add video \
-v <path>/Qwen3.8-Flash-Next-MXFP4-FP8-GPTQ:/app/models \
-v <path>/tunableop:/tunableop \
-v <path>/lru_store:/lru_store \
-v <nvme path>/plecache:/app/pleoffload \
-e OMP_NUM_THREADS=8 \
-e PYTORCH_TUNABLEOP_ENABLED=1 \
-e PYTORCH_TUNABLEOP_TUNING=0 \
-e PYTORCH_TUNABLEOP_RECORD_UNTUNED=0 \
-e VLLM_ROCM_USE_AITER=0 \
-e GPU_MAX_HW_QUEUES=1 \
-e HSA_ENABLE_INTERRUPT=1 \
-e HSA_ENABLE_MWAITX=1 \
-e VLLM_PLE_CPU_OFFLOAD=1 \
-e ROCR_VISIBLE_DEVICES=0,1 \
tcclaviger/vllm:latest \
/app/models \
--tensor-parallel-size 2 \
--enable-expert-offload \
--expert-offload-mem 60 \
--expert-cache-dir /lru_store \
--ple-nvme-offload \
--ple-nvme-dir /app/pleoffload \
--ple-cache-gb 8 \
--ple-cache-reuse true \
--tool-call-parser qwen3_coder \
--enable-auto-tool-choice \
--max-num-seqs 16 \
--enable-chunked-prefill \
--max-num-batched-tokens 4096 \
--gpu-memory-utilization 0.95 \
--host 0.0.0.0 \
--port 8078 \
--kv-cache-dtype fp8 \
--served-model-name Qwen3.8-Flash-Next \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--override-generation-config '{"max_tokens": 65536, "temperature": 0.8, "top_p": 0.95, "top_k": 40, "presence_penalty": 1}' \
--compilation-config '{"cudagraph_capture_sizes": [4], "max_cudagraph_capture_size": 4}' \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 3}' \
--hf-overrides '{"text_config": {"rope_parameters": {"rope_type": "yarn", "factor": 1.0, "original_max_position_embeddings": 262144, "mrope_section": [11, 11, 10], "mrope_interleaved": true, "partial_rotary_factor": 0.25, "rope_theta": 10000000}}}'
Full report: Next-INT6PLE-28.04.8-Throughput.pdf
Serve with tcclaviger/vllm:latest; no other image reads this checkpoint.
The MXFP4 expert and shared-expert weights were produced with activation-aware quantization: a layer-serial calibration pass over a 2M-token, 27-domain corpus at 8192-token sequences, with activation-weighted scale selection and GPTQ error feedback (256-wide blocks), the FP8 attention quantized inline so every layer's statistics were gathered through the shipped attention, and the quantized layer propagated forward through the same libr4d kernels that serve it.
The 51B n-gram (PLE) table is stored as int6 with fp16 group-32 scales, 41.6 GB against 51.3 GB for FP8 e4m3, and is served through a fused dequant kernel that is bit-exact against the fp64 reference. Against the BF16 source table its mean per-row relative L2 error is 0.0218 versus 0.0267 for FP8, 18% lower error in a 19% smaller table.
How this checkpoint was quantized (AA2)
This is the second activation-aware build. The experts were re-quantized from the BF16 source with a revised GPTQ pass; the MTP block, the int6 n-gram table and the calibrated KV scales were carried over unchanged from the first build. Every step ran inside the same tcclaviger/vllm image that serves the result, on 4 x R9700.
What changed from the first activation-aware build: scale selection moved from a searched per-block choice to a static floor-or-ceil snap, and the GPTQ error feedback moved from 256-wide blocks to a single full-row pass per module. The gain is concentrated where the first build had regressed: grade-school and competition math, code breadth and summarization recover, while retrieval, knowledge and instruction-following domains stay at the noise floor.
| Qwen3.8-Flash-Next | Qwen3.8-27B | Qwen3.7-Plus | DeepSeek-V4-Flash-0731 | Claude-Opus-4.6 (Max) | |
|---|---|---|---|---|---|
# Params |
125B | 27B | 397B | 284B | -- |
# Activated params |
6B | 27B | 17B | 13B | -- |
# N-gram embedding params |
51B | -- | -- | -- | -- |
| Coding | |||||
Agentic coding DeepSWE 1.1 |
58.7 | 42.2 | 16.5 | 54.4 | -- |
Agentic coding SWE-bench Pro |
62.5 | 61.7 | 55.8 | 56.0 | 53.4 |
Multilingual software engineering SWE-bench Multilingual |
81.0 | 73.8 | 75.8 | -- | 77.5 |
Repo-level code generation NL2Repo-Bench |
48.1 | 42.3 | 41.1 | 54.2 | 47.6 |
| Agent | |||||
Long-horizon office work CoWorkBench |
73.9 | 70.7 | 65.1 | 45.1 | 68.2 |
Professional job tasks JobBench |
55.7 | 33.4 | 27.6 | 41.3 | 36.6 |
Frontier agentic tasks Agents' Last Exam |
Pass@1 24.3 Score 51.2 |
Pass@1 20.4 Score 42.9 |
Pass@1 13.2 Score 33.6 |
Pass@1 25.2 Score -- |
-- |
Real-world tool use Toolathlon Verified (Pass@1) |
73.5 | 67.1 | 50.6 | 70.3 | -- |
| General | |||||
Instruction following IFBench |
81.3 | 79.5 | 79.1 | 79.2 | 62.5 |
Scientific reasoning GPQA Diamond |
91.7 | 89.2 | 90.3 | 90.8 | 91.3 |
Multidisciplinary reasoning HLE |
35.9 | 30.8 | 34.7 | 33.8 | 40.0 |
Competitive coding LiveCodeBench v6 |
91.9 | 90.3 | 89.6 | 90.6 | 88.8 |
1. DeepSWE 1.1: evaluated with the Claude Code and mini-SWE-agent harnesses, temp=1.0, top_p=0.95, 256K context window. We report the highest score across the two harnesses; notably, Qwen3.8-Flash-Next performs best on mini-SWE-agent.
2. SWE-bench Pro: except for Claude-Opus-4.6 (Max), for which we report the officially published score, all models are evaluated with the Claude Code harness, temp=1.0, top_p=0.95, 256K context window. Problematic tasks were corrected and all baseline models were re-evaluated on the refined benchmark.
3. SWE-bench Multilingual: evaluated with the mini-SWE-agent harness, temp=1.0, top_p=0.95, 256K context window.
4. NL2Repo-Bench: evaluated with the Claude Code harness. To prevent reward hacking, we disable Bash commands that attempt to access the specific repository, such as pip download, pip install and git clone.
5. CoWorkBench: an in-house cowork benchmark for evaluating long-horizon office and productivity agent tasks across computer science, finance, law, medical and other productivity domains.
6. HLE: judged by GPT-4o.
7. The best result in each row is shown in bold.
8. Empty cells (--): scores are not yet available or are not applicable.
| Qwen3.8-Flash-Next | Qwen3.8-27B | Qwen3.7-Plus | Claude-Opus-4.6 (Max) | |
|---|---|---|---|---|
| Agentic Multimodal Intelligence | ||||
Multimodal tool use ClawEval-MM |
Pass@3 64.4 Average 60.4 |
Pass@3 57.4 Average 56.9 |
Pass@3 57.4 Average 60.1 |
Pass@3 52.5 Average 54.7 |
Application recreation RecreationBench |
49.9 | 47.1 | 30.2 | -- |
Mobile use AndroidWorld |
84.5 | 81.9 | 81.0 | 62.0 |
Computer use OSWorld 2.0 |
Binary 19.4 Partial 52.3 |
Binary 19.4 Partial 48.0 |
Binary 2.8 Partial 21.5 |
-- |
Visual web development Vision2Web |
64.0 | 62.9 | 42.1 | -- |
| General Multimodal Intelligence | ||||
Embodied intelligence ERQA |
72.3 | 65.5 | 69.8 | 40.8 |
Long video understanding LVBench |
76.6 | 72.4 | 76.2 | 63.0 |
Real-world perception RealWorldQA |
88.5 | 85.9 | 86.9 | 73.9 |
Visual math problem solving MathVision |
Without CI 90.6 With CI 95.7 |
Without CI 90.0 With CI 94.6 |
Without CI 90.3 With CI 88.7 |
Without CI 65.5 |
Scientific chart analysis CharXiv (RQ) |
Without CI 84.6 With CI 90.6 |
Without CI 83.7 With CI 90.2 |
Without CI 85.8 With CI 85.9 |
Without CI 66.0 |
1. ClawEval-MM: scores are reported as "pass@3 / average score". Pass@3 measures the percentage passed in at least one of three trials, and the average score is the mean score across the three trials.
2. RecreationBench: an in-house long-horizon application-recreation benchmark for evaluating hybrid-agent abilities spanning five platforms — desktop (Ubuntu, macOS, Windows), mobile (Android) and web.
3. OSWorld 2.0: scores are reported as "binary / partial". The binary score is the percentage of tasks that receive the full task reward, while the partial score aggregates the partial rewards obtained across all tasks.
4. Vision2Web: scores are reported as the average over the frontend, webpage and website categories, using the Claude Code harness and judged by gpt-5.4-2026-03-05.
5. MathVision, CharXiv (RQ): scores are reported as "without CI / with CI". A small number of incorrect ground-truth annotations in MathVision were corrected after manual verification. Our model's score is evaluated using a fixed prompt, e.g. "Please reason step by step, and put your final answer within \boxed{}." For other models, we report the higher score between runs with and without the \boxed{} formatting.
6. The best result in each row is shown in bold.
7. Empty cells (--) indicate scores not yet available or not applicable.