Instructions to use yuyijiong/speculative_pipeline_decoding with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use yuyijiong/speculative_pipeline_decoding with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="yuyijiong/speculative_pipeline_decoding")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("yuyijiong/speculative_pipeline_decoding", dtype="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use yuyijiong/speculative_pipeline_decoding with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "yuyijiong/speculative_pipeline_decoding" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "yuyijiong/speculative_pipeline_decoding", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/yuyijiong/speculative_pipeline_decoding
- SGLang
How to use yuyijiong/speculative_pipeline_decoding 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 "yuyijiong/speculative_pipeline_decoding" \ --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": "yuyijiong/speculative_pipeline_decoding", "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 "yuyijiong/speculative_pipeline_decoding" \ --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": "yuyijiong/speculative_pipeline_decoding", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use yuyijiong/speculative_pipeline_decoding with Docker Model Runner:
docker model run hf.co/yuyijiong/speculative_pipeline_decoding
Add metadata, paper/code links, and sample usage (#1)
Browse files- Add metadata, paper/code links, and sample usage (8dea2d08154e9d8cce9b6698ede7da9016cac450)
Co-authored-by: Niels Rogge <nielsr@users.noreply.huggingface.co>
README.md
CHANGED
|
@@ -1,90 +1,88 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
|
| 42 |
-
|
|
| 43 |
-
| `
|
| 44 |
-
| `
|
| 45 |
-
| `
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
###
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
#
|
| 57 |
-
|
| 58 |
-
`
|
| 59 |
-
|
| 60 |
-
``
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
```
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
}
|
| 90 |
-
```
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
library_name: transformers
|
| 4 |
+
pipeline_tag: text-generation
|
| 5 |
+
tags:
|
| 6 |
+
- speculative-decoding
|
| 7 |
+
- pipeline-parallelism
|
| 8 |
+
- llm-acceleration
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# Speculative Pipeline Decoding: Speculation Head Checkpoints
|
| 12 |
+
|
| 13 |
+
This repository contains pre-trained **pipeline speculation head** weights for the paper [Speculative Pipeline Decoding: Higher-Accruacy and Zero-Bubble Speculation via Pipeline Parallelism](https://huggingface.co/papers/2605.30852).
|
| 14 |
+
|
| 15 |
+
Speculative Pipeline Decoding (SPD) is a framework that unlocks the potential of pipeline parallelism for LLM decoding acceleration. By partitioning the target LLM into $n$ pipeline stages, SPD allows the model to process $n$ tokens in parallel, achieving higher acceptance rates and zero latency bubbles.
|
| 16 |
+
|
| 17 |
+
- **Paper:** [https://huggingface.co/papers/2605.30852](https://huggingface.co/papers/2605.30852)
|
| 18 |
+
- **Code:** [https://github.com/yuyijiong/speculative_pipeline_decoding](https://github.com/yuyijiong/speculative_pipeline_decoding)
|
| 19 |
+
|
| 20 |
+
## Quick Start (Inference)
|
| 21 |
+
|
| 22 |
+
To run inference using these checkpoints, clone the official repository and use the provided `pipeline_inference.py` script. You must pair the speculation head with the corresponding base model it was trained on.
|
| 23 |
+
|
| 24 |
+
```bash
|
| 25 |
+
python pipeline_inference.py \
|
| 26 |
+
--spec_head_ckpt /path/to/checkpoint.pt \
|
| 27 |
+
--base_model_path Qwen/Qwen3.5-4B \
|
| 28 |
+
--max_new_tokens 100 \
|
| 29 |
+
--temperature 0.0
|
| 30 |
+
```
|
| 31 |
+
|
| 32 |
+
## Checkpoint Information
|
| 33 |
+
|
| 34 |
+
Each `.pt` file is a single checkpoint produced by training. For more details on training and evaluation, see the [official repo](https://github.com/yuyijiong/speculative_pipeline_decoding).
|
| 35 |
+
|
| 36 |
+
### Filename format
|
| 37 |
+
|
| 38 |
+
Files are named:
|
| 39 |
+
`{model}_s{num_stages}_l{num_spec_layers}.pt`
|
| 40 |
+
|
| 41 |
+
| Part | Meaning |
|
| 42 |
+
|------|---------|
|
| 43 |
+
| `{model}` | Base model tag (e.g. `Qwen3.5-4B`, `Qwen3.5-9B`) |
|
| 44 |
+
| `s{...}` | `num_stages` — pipeline depth (number of target-model stages) |
|
| 45 |
+
| `l{...}` | `num_spec_layers` — number of Transformer layers in the speculation module |
|
| 46 |
+
|
| 47 |
+
Example: `Qwen3.5-9B_s16_l2.pt` → Qwen3.5-9B base, 16 stages, 2 spec layers.
|
| 48 |
+
|
| 49 |
+
### Checkpoint contents
|
| 50 |
+
|
| 51 |
+
Each file is a PyTorch archive with two top-level keys:
|
| 52 |
+
|
| 53 |
+
```python
|
| 54 |
+
{
|
| 55 |
+
"state_dict": ..., # weights of the speculation module
|
| 56 |
+
"config": { ... }, # hyperparameters and metadata
|
| 57 |
+
}
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
### `config` fields (always present)
|
| 61 |
+
|
| 62 |
+
| Field | Description |
|
| 63 |
+
|-------|-------------|
|
| 64 |
+
| `base_model_path` | Base model path recorded at training time (can be overridden via `--base_model_path` at load time) |
|
| 65 |
+
| `hidden_size` | Hidden size (matches base model) |
|
| 66 |
+
| `vocab_size` | Base model vocabulary size |
|
| 67 |
+
| `draft_vocab_size` | Draft head output size (full vocab or draft subset) |
|
| 68 |
+
| `num_stages` | Pipeline depth (same as `s` in filename) |
|
| 69 |
+
| `num_spec_layers` | Speculation module depth (same as `l` in filename) |
|
| 70 |
+
| `version` | Checkpoint format version (`10`) |
|
| 71 |
+
| `trained_with_use_deepest` | Whether training used deepest-layer features |
|
| 72 |
+
| `shallow_hidden_layer_indices` | Which base layers feed the speculation module |
|
| 73 |
+
|
| 74 |
+
## Citation
|
| 75 |
+
|
| 76 |
+
If you use this work, please cite our paper:
|
| 77 |
+
|
| 78 |
+
```bibtex
|
| 79 |
+
@misc{yu2026speculativepipelinedecodinghigheraccruacy,
|
| 80 |
+
title={Speculative Pipeline Decoding: Higher-Accruacy and Zero-Bubble Speculation via Pipeline Parallelism},
|
| 81 |
+
author={Yijiong Yu and Huazheng Wang and Shuai Yuan and Ruilong Ren and Ji Pei},
|
| 82 |
+
year={2026},
|
| 83 |
+
eprint={2605.30852},
|
| 84 |
+
archivePrefix={arXiv},
|
| 85 |
+
primaryClass={cs.CL},
|
| 86 |
+
url={https://arxiv.org/abs/2605.30852},
|
| 87 |
+
}
|
| 88 |
+
```
|
|
|
|
|
|