Skip to main content
Speculators logo

License Python Versions docs PyPI tests

Overview

Speculators is a library for training speculative decoding draft models that deploy directly to LLM inference engines like vLLM. Speculative decoding is a lossless technique that speeds up LLM inference by using a smaller, faster draft model (i.e. "the speculator") to propose tokens, which are then verified by the larger base model, reducing latency without compromising output quality. The speculator intelligently drafts multiple tokens ahead of time, and the base model verifies them in a single forward pass. This approach boosts performance without sacrificing output quality, as every accepted token is guaranteed to match what the main model would have generated on its own.

Speculators standardizes this process by providing a productionized end-to-end framework to train draft models with reusable formats and tools. Trained models can seamlessly run in vLLM, enabling the deployment of speculative decoding in production-grade inference servers.

Speculators user flow diagram


💬 Join us on the vLLM Community Slack and share your questions, thoughts, or ideas in:

  • #speculators
  • #feat-spec-decode

🎥 Watch our Office Hours presentation: Video | Slides


🚀 What's New!

Big updates have landed in Speculators! To get a more in-depth look, check out the Speculators documentation.

Some of the exciting new features include:

  • DSpark Training Algorithm: Added support for the DSpark training algorithm, which extends DFlash's anchored-block drafting with a Markov head that conditions each draft position on the previous token within the block, plus a confidence head that predicts per-position acceptance probability. DSpark checkpoints can warm-start from existing DFlash checkpoints.
  • P-EAGLE Training Support: Added support for the P-EAGLE training algorithm, which extends EAGLE-3's architecture with parallel multi-token prediction via Conditional-On-Distribution (COD) sampling. Rather than generating draft tokens sequentially, P-EAGLE predicts multiple tokens in a single forward pass, reducing drafting latency. The Red Hat team published a P-EAGLE speculator for Qwen3-8B.
  • MTP Finetuning Support: Added support for finetuning the native Multi-Token Prediction (MTP) heads of models like Qwen3-Next on domain-specific data, following the FastMTP approach. Because the MTP head is small (~100M–400M params), it can be trained on pre-extracted hidden states without loading the full verifier
  • Sliding Window Attention for DFlash and DSpark: DFlash and DSpark speculators use sliding window attention on all draft layers by default. Use --sliding-window to set the window size and --full-attention-indices to opt specific layers into full attention. Sliding window attention reduces KV cache allocation for long-context sequences and can improve per-position acceptance rates compared to full attention.
  • DFlash Training Algorithm: Added support for the DFlash training algorithm with anchored-block drafting, using auxiliary hidden states from multiple verifier layers. Includes CLI options for block size and max anchors, plus DFlash metrics, utilities, and draft model. DFlash models trained through Speculators can now run seamlessly in vLLM as of vLLM PR #38300.
  • Online Training Support: Added support for online training using the new vLLM hidden extraction system, enabling real-time hidden state generation during training without requiring separate offline data generation steps.

Key Features

  • Offline Training Data Generation using vLLM: Enable the generation of hidden states using vLLM. Data samples are saved to disk and can be used for draft model training.
  • Draft Model Training Support: E2E training support of single and multi-layer draft models. Training is supported for MoE, non-MoE, and Vision Language models.
  • Standardized, Extensible Format: Provides a Hugging Face-compatible format for defining speculative models, with tools to convert from external research repositories into a standard speculators format for easy adoption.
  • Seamless vLLM Integration: Built for direct deployment into vLLM, enabling low-latency, production-grade inference with minimal overhead.

[!TIP] Read more about Speculators features in this vLLM blog post.

Supported Models

The following table summarizes the models that have been trained end-to-end by our team as well as others in the roadmap:

Verifier Architecture Verifier Size Training Support vLLM Deployment Support
Llama 8B-Instruct EAGLE-3
70B-Instruct EAGLE-3
Qwen3 8B EAGLE-3
DFlash
P-EAGLE
14B EAGLE-3
32B EAGLE-3
gpt-oss 20b EAGLE-3
120b EAGLE-3
Qwen3 MoE 30B-Instruct EAGLE-3
DFlash
30B DFlash
235B-Instruct EAGLE-3
235B EAGLE-3
Qwen3-VL 235B-A22B EAGLE-3
Mistral Small 4 119B DFlash
Gemma 4 31B-it EAGLE-3
DFlash
Gemma 4 MoE 26B-A4B-it EAGLE-3
NVIDIA Nemotron 3 Ultra 550B-A55B DFlash
NVIDIA Nemotron 3 Super 120B-A12B DFlash

✅ = Supported, ⏳ = In Progress, ❌ = Not Yet Supported

vLLM Inference

Models trained through Speculators can run seamlessly in vLLM using a simple vllm serve <speculator_model> command. This will run the model in vLLM using default arguments, defined in the speculator_config of the model's config.json.

vllm serve RedHatAI/Qwen3-8B-speculator.eagle3

Served models can then be benchmarked using GuideLLM. Below, we show sample benchmark results where we compare our speculator with its dense counterpart. We also additionally compare quantization to explore additional performance improvements by swapping the dense verifier, Qwen/Qwen3-8B with the quantized FP8 model, RedHatAI/Qwen3-8B-FP8-dynamic in the speculator_config.

GuideLLM Logo

Additional Utility Scripts

Getting Started

Installation

Prerequisites

Before installing, ensure you have the following:

  • Operating System: Linux or macOS
  • Python: 3.10 or higher
  • Package Manager: pip (recommended) or conda

Install from PyPI (Recommended)

Install the latest stable release from PyPI:

pip install speculators

Install from Source

For the latest development version or to contribute to the project:

git clone https://github.com/vllm-project/speculators.git
cd speculators

pip install -e .

For development with additional tools:

pip install -e ".[dev]"

Verify Installation

You can verify your installation by checking the version:

speculators --version

Or by importing the package in Python:

import speculators
print(speculators.__version__)

License

Speculators is licensed under the Apache License 2.0.

Cite

If you find Speculators helpful in your research or projects, please consider citing it:

@misc{speculators2025,
  title={Speculators: A Unified Library for Speculative Decoding Algorithms in LLM Serving},
  author={Red Hat},
  year={2025},
  howpublished={\url{https://github.com/vllm-project/speculators}},
}

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speculators-0.7.0.1.tar.gz (168.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

speculators-0.7.0.1-py3-none-any.whl (192.9 kB view details)

Uploaded Python 3

File details

Details for the file speculators-0.7.0.1.tar.gz.

File metadata

  • Download URL: speculators-0.7.0.1.tar.gz
  • Upload date:
  • Size: 168.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for speculators-0.7.0.1.tar.gz
Algorithm Hash digest
SHA256 577f6a117c3c0b783ae9eff7a85fda0758588ba4182e1a195581d7b06495d2ff
MD5 2585f18dd73ddf50059e5ccce248eadc
BLAKE2b-256 ca0a1c09612f5baaff16b0e3b27775046700aea4fef14531f0b25838ba8d9497

See more details on using hashes here.

Provenance

The following attestation bundles were made for speculators-0.7.0.1.tar.gz:

Publisher: speculators-upload.yml on neuralmagic/llm-compressor-testing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file speculators-0.7.0.1-py3-none-any.whl.

File metadata

  • Download URL: speculators-0.7.0.1-py3-none-any.whl
  • Upload date:
  • Size: 192.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for speculators-0.7.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc729b474f634a78c6aafff15d3214e5ed636554cf11fd97b00d964614827fa1
MD5 b92e8e575b587b480e20c954f045d134
BLAKE2b-256 7ea15a9cfda07a227bf79af128f934e245f028b0d768a1937b06f5c7f60f3abf

See more details on using hashes here.

Provenance

The following attestation bundles were made for speculators-0.7.0.1-py3-none-any.whl:

Publisher: speculators-upload.yml on neuralmagic/llm-compressor-testing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page