Skip to content

[Feature] Support HASS (speculative decoding) - #4595

Closed
amosyou wants to merge 3 commits into
sgl-project:mainfrom
amosyou:hass
Closed

amosyou wants to merge 3 commits into
sgl-project:mainfrom
amosyou:hass

Conversation

@amosyou

@amosyou amosyou commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Motivation

Adds support for HArmonized Speculative Sampling (HASS), ICLR 2025 paper: https://arxiv.org/abs/2408.15766

Modifications

  • Add HASS speculative method to server args
  • Inherit draft model architecture from EAGLE
  • Test for HASSEngine

Benchmarks

using test script from #2150

Autoregressive (normal)

python3 -m sglang.launch_server --model meta-llama/Llama-3.1-8B-Instruct --mem-fraction 0.7 --dtype float16 --port 30000
speed: 50.70 token/s

EAGLE-2

python3 -m sglang.launch_server --model meta-llama/Llama-3.1-8B-Instruct --speculative-algo EAGLE --speculative-draft lmsys/sglang-EAGLE-LLaMA3-Instruct-8B --speculative-num-steps 5 --speculative-eagle-topk 8 --speculative-num-draft-tokens 64 --cuda-graph-max-bs 1 --mem-fraction 0.7 --dtype float16 --port 30000
speed: 84.80 token/s

HASS

python3 -m sglang.launch_server --model meta-llama/Llama-3.1-8B-Instruct --speculative-algo HASS --speculative-draft amosyou/sglang-HASS-LLaMA3-Instruct-8B --speculative-num-steps 5 --speculative-eagle-topk 8 --speculative-num-draft-tokens 64 --cuda-graph-max-bs 1 --mem-fraction 0.7 --dtype float16 --port 30000
speed: 91.10 token/s

running Engine unit tests under test/

EAGLE-3

acc_length=2.7675675675675677

HASS

acc_length=3.710144927536232

Checklist

@merrymercy

Copy link
Copy Markdown
Collaborator

if the implementation is the same, we do not need to change any code

@merrymercy merrymercy closed this Apr 21, 2025
nvpohanh added a commit to nvpohanh/sglang that referenced this pull request Nov 2, 2026
…in c5e8b9b3

Mirror the SemiAnalysis InferenceX AgentX SGLang / Dynamo+SGLang lanes at
InferenceX main c5e8b9b3 (MiniMax-M3.1-Flash GB300 SGLang and Dynamo+SGLang
from InferenceX sgl-project#4676 / sgl-project#4698, DeepSeek-V4.1-Flash GB300 Dynamo+SGLang from
sgl-project#4595, now from their dashboard runs), with InferenceX PRs sgl-project#4726
(MiniMax-M3.1-Flash B300), sgl-project#4695 (MiniMax-M3.1-Flash GB200 Dynamo+SGLang),
sgl-project#4725 sgl-project#4724 sgl-project#4707 sgl-project#4670 (Muse Spark Open B300 / GB300 / B200 / GB200),
sgl-project#4683 (Qwen3.8-Flash-Next B300 NVFP4, /use run 41117066222) and sgl-project#4603
(DeepSeek-V4.1-Flash GB300) overlaid. This replaces the MiniMax data
that sgl-project#47623, sgl-project#47699 and sgl-project#47791 edited by hand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants