0
stars
3
commits
1
linked in READMEs
Jun 26, 2026
updated
An EAGLE3 speculative-decoding draft for mattbucci/Devstral-Small-2-24B-AWQ (Mistral/Ministral3 dense 24B coder). Format: generic LlamaForCausalLMEagle3 (1 draft layer, hidden 5120, draft_vocab 32000). The draft ships without embed_tokens — the serving stack supplies the target's embedding (standard EAGLE3).
Trained on the 3090 stack for the R9700 cross-team (they serve it on 32 GB RDNA4); also serviceable on the AWQ target directly.
--speculative-num-steps 3 (ceiling 4 → ~83% efficiency).ttt/num-steps is capped at 3 by 24 GB training memory (the TTT-unroll activation makes ttt≥5 exceed 24 GB regardless of context). Serve at --speculative-num-steps 3; deeper serving does not help (the draft is trained to depth 3).--max-length 16384), 2 epochs, lr 1e-4, 8-bit AdamW.norm; no per-aux fc_norm) — the serving loader treats fc_norm as optional.⚠ Serve against the Devstral text decoder (Ministral3ForCausalLM), not the full VLM wrapper. In sglang the full mattbucci/Devstral-Small-2-24B-AWQ loads as LlavaForConditionalGeneration, whose top-level class lacks set_eagle3_layers_to_capture → EAGLE3 fails to attach. The text-decoder weights are identical, so serve the decoder (or apply a wrapper-delegation patch).
# v0.5.13: set these to dodge an overlap-spec-v2 tvm_ffi ROCm-misdetect crash on NVIDIA
export TVM_FFI_GPU_BACKEND=cuda SGLANG_ENABLE_SPEC_V2=0
python -m sglang.launch_server \
--model-path <Devstral text-decoder (Ministral3ForCausalLM) AWQ> --quantization awq_marlin \
--speculative-algorithm EAGLE3 \
--speculative-draft-model-path mattbucci/Devstral-Small-2-24B-AWQ-EAGLE3 \
--speculative-num-steps 3 --speculative-eagle-topk 4 --speculative-num-draft-tokens 8 \
--speculative-draft-model-quantization unquant --tp-size 2
3 commits
0
stars
3
commits
1
linked in READMEs
Jun 26, 2026
updated
An EAGLE3 speculative-decoding draft for mattbucci/Devstral-Small-2-24B-AWQ (Mistral/Ministral3 dense 24B coder). Format: generic LlamaForCausalLMEagle3 (1 draft layer, hidden 5120, draft_vocab 32000). The draft ships without embed_tokens — the serving stack supplies the target's embedding (standard EAGLE3).
Trained on the 3090 stack for the R9700 cross-team (they serve it on 32 GB RDNA4); also serviceable on the AWQ target directly.
--speculative-num-steps 3 (ceiling 4 → ~83% efficiency).ttt/num-steps is capped at 3 by 24 GB training memory (the TTT-unroll activation makes ttt≥5 exceed 24 GB regardless of context). Serve at --speculative-num-steps 3; deeper serving does not help (the draft is trained to depth 3).--max-length 16384), 2 epochs, lr 1e-4, 8-bit AdamW.norm; no per-aux fc_norm) — the serving loader treats fc_norm as optional.⚠ Serve against the Devstral text decoder (Ministral3ForCausalLM), not the full VLM wrapper. In sglang the full mattbucci/Devstral-Small-2-24B-AWQ loads as LlavaForConditionalGeneration, whose top-level class lacks set_eagle3_layers_to_capture → EAGLE3 fails to attach. The text-decoder weights are identical, so serve the decoder (or apply a wrapper-delegation patch).
# v0.5.13: set these to dodge an overlap-spec-v2 tvm_ffi ROCm-misdetect crash on NVIDIA
export TVM_FFI_GPU_BACKEND=cuda SGLANG_ENABLE_SPEC_V2=0
python -m sglang.launch_server \
--model-path <Devstral text-decoder (Ministral3ForCausalLM) AWQ> --quantization awq_marlin \
--speculative-algorithm EAGLE3 \
--speculative-draft-model-path mattbucci/Devstral-Small-2-24B-AWQ-EAGLE3 \
--speculative-num-steps 3 --speculative-eagle-topk 4 --speculative-num-draft-tokens 8 \
--speculative-draft-model-quantization unquant --tp-size 2
3 commits