Instructions to use incoai/Ornith-1.5-122B-DFlash2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use incoai/Ornith-1.5-122B-DFlash2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="incoai/Ornith-1.5-122B-DFlash2")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("incoai/Ornith-1.5-122B-DFlash2") model = AutoModel.from_pretrained("incoai/Ornith-1.5-122B-DFlash2", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use incoai/Ornith-1.5-122B-DFlash2 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "incoai/Ornith-1.5-122B-DFlash2" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "incoai/Ornith-1.5-122B-DFlash2", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/incoai/Ornith-1.5-122B-DFlash2
- SGLang
How to use incoai/Ornith-1.5-122B-DFlash2 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 "incoai/Ornith-1.5-122B-DFlash2" \ --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": "incoai/Ornith-1.5-122B-DFlash2", "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 "incoai/Ornith-1.5-122B-DFlash2" \ --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": "incoai/Ornith-1.5-122B-DFlash2", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use incoai/Ornith-1.5-122B-DFlash2 with Docker Model Runner:
docker model run hf.co/incoai/Ornith-1.5-122B-DFlash2
Ornith-1.5-122B-DFlash2
This repository contains the DFlash 2 draft model for
ornith-ai/Ornith-1.5-122B.
It is not a standalone language model: it runs inside a speculative
decoding server and drafts tokens for the target model to verify.
DFlash 2 is a block-diffusion drafter for speculative decoding. It predicts a whole block of tokens in a single pass and keeps the top candidates at every position. A lightweight selector then traces one coherent path through them. Two-tap dynamic convolutions in the backbone keep the draft from decaying toward the end of the block. Decoding is lossless: greedy output matches the target model exactly, and sampling preserves its distribution.
Quick Start
Serve with SGLang 0.5.21:
pip install "sglang[all]==0.5.21"
sglang serve \
--model-path ornith-ai/Ornith-1.5-122B \
--tp 2 \
--enable-flashinfer-allreduce-fusion \
--attention-backend trtllm_mha \
--mamba-radix-cache-strategy extra_buffer \
--mem-fraction-static 0.8 \
--speculative-algorithm DFLASH \
--speculative-draft-model-path incoai/Ornith-1.5-122B-DFlash2 \
--speculative-num-draft-tokens 16
See the blog post for more details.
Evaluation
- Runtime: SGLang 0.5.21 on two NVIDIA GB300 GPUs (TP2), with TensorRT-LLM for target attention and FlashAttention 4 for DFlash 2 draft attention
- Speculation block size: 16 (15 draft tokens per verification step)
- Sampling: Ornith's default parameters (temperature 0.6, top-p 0.95, top-k 20), with thinking enabled
- Maximum new tokens: 4096
- Samples: 128 per task
- Prompts: benchmark formatting from
z-lab/dflash; MT-Bench uses the first turn only
We compare autoregressive decoding and DFlash 2, which proposes fifteen draft tokens per verification step.
Acceptance Length
Acceptance length is the per-request mean of completion tokens divided by verification steps at concurrency 1. Higher is better.
| Task | DFlash 2 |
|---|---|
| GSM8K | 8.33 |
| MATH-500 | 9.20 |
| HumanEval | 8.64 |
| MBPP | 6.37 |
| MT-Bench | 5.41 |
Throughput
Throughput is total output tokens divided by end-to-end wall time.
Each cell shows output tok/s (speedup vs. autoregressive).
Concurrency 1
| Task | Autoregressive | DFlash 2 |
|---|---|---|
| GSM8K | 257.9 | 585.5 (2.27×) |
| MATH-500 | 265.8 | 705.5 (2.65×) |
| HumanEval | 265.2 | 672.1 (2.53×) |
| MBPP | 262.4 | 519.4 (1.98×) |
| MT-Bench | 265.0 | 355.0 (1.34×) |
Concurrency 8
| Task | Autoregressive | DFlash 2 |
|---|---|---|
| GSM8K | 994.8 | 1,866.8 (1.88×) |
| MATH-500 | 1,020.0 | 2,378.4 (2.33×) |
| HumanEval | 1,076.3 | 2,295.0 (2.13×) |
| MBPP | 984.1 | 1,562.3 (1.59×) |
| MT-Bench | 1,001.9 | 1,173.5 (1.17×) |
Concurrency 32
| Task | Autoregressive | DFlash 2 |
|---|---|---|
| GSM8K | 1,358.5 | 4,043.1 (2.98×) |
| MATH-500 | 1,845.4 | 4,440.1 (2.41×) |
| HumanEval | 1,930.6 | 4,811.0 (2.49×) |
| MBPP | 1,570.7 | 3,124.7 (1.99×) |
| MT-Bench | 1,691.6 | 2,287.1 (1.35×) |
Citation
If you find DFlash 2 useful, please cite:
@misc{inco2026dflash2,
title = {{DFlash 2: Keep Drafting Parallel}},
author = {{Inco AI}},
year = {2026},
month = {August},
url = {https://inco.ai/blog/dflash2/}
}
Please also cite the original DFlash paper:
@inproceedings{chen2026dflash,
title = {{DFlash: Block Diffusion for Flash Speculative Decoding}},
author = {Chen, Jian and Liang, Yesheng and Liu, Zhijian},
booktitle = {International Conference on Machine Learning (ICML)},
year = {2026}
}
- Downloads last month
- 2