Instructions to use RadixArk/Qwen3.8-27B-DSpark with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use RadixArk/Qwen3.8-27B-DSpark with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="RadixArk/Qwen3.8-27B-DSpark", trust_remote_code=True)# Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("RadixArk/Qwen3.8-27B-DSpark", trust_remote_code=True) model = AutoModel.from_pretrained("RadixArk/Qwen3.8-27B-DSpark", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use RadixArk/Qwen3.8-27B-DSpark with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "RadixArk/Qwen3.8-27B-DSpark" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "RadixArk/Qwen3.8-27B-DSpark", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/RadixArk/Qwen3.8-27B-DSpark
- SGLang
How to use RadixArk/Qwen3.8-27B-DSpark with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "RadixArk/Qwen3.8-27B-DSpark" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "RadixArk/Qwen3.8-27B-DSpark", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "RadixArk/Qwen3.8-27B-DSpark" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "RadixArk/Qwen3.8-27B-DSpark", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use RadixArk/Qwen3.8-27B-DSpark with Docker Model Runner:
docker model run hf.co/RadixArk/Qwen3.8-27B-DSpark
[BUG] DSpark slower than EAGLE + severe cold-start penalty
Setup
- Backend: NVIDIA GPU B200
- Serving framework: SGLang 0.5.17
- Model:
Qwen3.8-27B-FP8 - Workload: streaming
/v1/completions,temperature=0, prompt ~512 tokens,max_tokensβ {128, 512, 1024}
Observation
After switching from EAGLE to DSpark, the first ~5 requests after (re)start exhibit a ~12Γ throughput collapse, while steady-state performance is slightly below EAGLE rather than above it.
| Stage | EAGLE | DSpark (cold) | DSpark (warm) |
|---|---|---|---|
| TTFT | ~0.29 s | ~0.95 s | ~0.30 s |
| Decode throughput (1024 tok) | ~96 tok/s | ~7 tok/s | ~84 tok/s |
| Stability across runs | low variance | high variance | low variance |
Issues
- Cold-start penalty β DSpark's first requests run at 7β16 tok/s (vs ~90 tok/s warm). EAGLE showed no such warmup sensitivity under the same protocol. This suggests DSpark performs on-the-fly graph compilation / cache population on the first requests instead of pre-warming at server startup.
- Steady-state regression β even after warmup, DSpark decode (~84 tok/s) is ~12% slower than EAGLE (~96 tok/s), which contradicts the expected speedup from a more advanced spec-decoding method.
- Variance β during the cold phase, identical requests produce wildly different timings (e.g. 1024-tok run: 21 s vs 65 s vs 9 s), indicating nondeterministic compilation/lookup behavior.
Expected
- DSpark warmup should happen at server boot (or first idle request), not penalize real user traffic.
- Steady-state throughput should match or exceed EAGLE; if it doesn't, this is a regression worth investigating (draft acceptance rate, target length, or overhead per step may be misconfigured for this model).
Drafter is trained on hiden states of a fp8 model. It does not really work for different models.
A bf16 drafter against a 4-bit target is structurally uncompetitive β it would need 91.7 % sustained across seven positions. The better the target is quantized, the more a fat drafter costs relatively. This is the reason recommendations tuned on FP8 targets do not transfer.
Am I better off switching from Qwen-27B-FP8 to the RadixArk NVFP4 variant? Thank you.
No, there is no DFlash for nvfp4. This artifact is strictly fp8.
The data I have provided is for FP8 version.
Tested on vLLM, and no faster than with MTP
vllm: #50851 seams to break everything: dflash does not get hidden states and starts to guess token. Currently retesting with fixed vllm.
Testing finished. Drafter is like it is, works at optimum
β MTP n=3 β DSpark k=7 ββ
β NVFP4-Target β 87,2 % β 62,4 % β β24,8 pp β
β FP8-Target β 83,4 % β 65,0 % β β18,4 pp β
The high acceptance rate in some posts are caused by simple prompts. Breaks down with real data.