Views
No views yet
Qwen3.6-27B-PRISM-PRO; also validated on stock
Qwen/Qwen3.6-27B.| variant | draft vocab | size | use |
|---|---|---|---|
full/ | 248 320 (full) | 3.1 GB | resume-training base; widest compatibility |
compressed/ | 32 000 (+ d2t map) | 1.1 GB | recommended for serving — fastest |
| target | engine · drafter | no-spec tok/s | EAGLE-3 tok/s | speedup |
|---|---|---|---|---|
| Qwen3.6-27B-PRISM-PRO | SGLang · compressed drafter | 93 | 183 | 1.97× |
| Qwen3.6-27B-PRISM-PRO | SGLang · full drafter | 93 | 171 | 1.84× |
Qwen/Qwen3.6-27B (stock) | SGLang · compressed drafter | 93 | 171 | 1.84× |
| Qwen3.6-27B-PRISM-PRO | vLLM · full drafter | 90 | 130 | 1.44× |
--speculative-eagle-topk 4)
raises accept length to ~3.35 but is throughput-neutral on this hybrid
GatedDeltaNet target (the tree-build + recurrent-verify cost cancels the
acceptance gain) — chain is recommended.Qwen3_5ForConditionalGeneration) ships
DFlash/MTP aux-hidden capture but not the EAGLE-3 target hook. A one-shot,
idempotent patch adds it (two methods, qwen3_5.py only — see below).1pip install "sglang>=0.5.12"
2
3# 1. patch SGLang for EAGLE-3 on Qwen3.6 (auto-locates your install, writes a .bak)
4python3 patch_sglang_eagle3.py
5
6# 2. serve at the validated fast config (compressed drafter, chain)
7MODEL=Qwen/Qwen3.6-27B DRAFTER=./compressed ./serve_sglang.sh1SGLANG_ENABLE_SPEC_V2=1 python3 -m sglang.launch_server \
2 --model-path Qwen/Qwen3.6-27B \
3 --speculative-algorithm EAGLE3 \
4 --speculative-draft-model-path ./compressed \
5 --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4 \
6 --mamba-scheduler-strategy extra_buffer \
7 --mm-attention-backend sdpa \
8 --dtype bfloat16 --trust-remote-code--mamba-scheduler-strategy extra_buffer + SGLANG_ENABLE_SPEC_V2=1 — the V2
scheduler; SGLang rejects spec decoding + radix cache without it.--mm-attention-backend sdpa — the default fa4 vision kernel asserts
SM 10.x/11.x and rejects newer Blackwell (sm_103); sdpa is arch-agnostic.patch_sglang_eagle3.py adds set_eagle3_layers_to_capture to
Qwen3_5ForCausalLM (the dense decoder) and overrides it on
Qwen3_5ForConditionalGeneration (the multimodal wrapper) so EAGLE-3 aux-hidden
capture routes through the Qwen3.6 decoder's per-layer _is_layer_to_capture
mechanism. Without it, the inherited Qwen3-VL hook sets a layers_to_capture
list the Qwen3.6 decoder never reads — capture silently no-ops and the forward
pass crashes. The patch is anchor-based, idempotent (keys on an [EAGLE3-PATCH]
marker), writes a .eagle3-bak backup, AST-validates the result, and is verified
against SGLang 0.5.12 and main. It touches qwen3_5.py only.fc layer fusing auxiliary
hidden states from target layers [1, 31, 60] (low/mid/high), sharing the
target's embed_tokens and lm_head. architectures: ["LlamaForCausalLMEagle3"],
hidden_size 5120. It runs against any Qwen3.6-27B target — output correctness
is gated entirely on the target's own argmax (the verify step), so the drafter
is purely a speed lever and can never change what the target would have produced.full/ — a standard LlamaForCausalLMEagle3 EAGLE-3
checkpoint loadable by SpecForge or
NVIDIA TensorRT Model-Optimizer
(which trained this drafter). It was self-distilled on Qwen3.6-27B-PRISM-PRO
completions (REAP + UltraChat + tulu-3 corpus). The current drafter is
chain-trained (parallel_draft_step: 1); tree-aware retraining is the main lever
for further gains.full/ config.json + model.safetensors — 248K-vocab drafter
compressed/ config.json + model.safetensors — 32K-vocab drafter (+ d2t)
patch_sglang_eagle3.py — one-shot SGLang EAGLE-3 patch
serve_sglang.sh — validated fast-config launcherQwen/Qwen3.6-27B (Apache-2.0).