Instructions to use nebius/MTP-DeepSeek-V3-0324 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nebius/MTP-DeepSeek-V3-0324 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="nebius/MTP-DeepSeek-V3-0324")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("nebius/MTP-DeepSeek-V3-0324") model = AutoModelForCausalLM.from_pretrained("nebius/MTP-DeepSeek-V3-0324") - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use nebius/MTP-DeepSeek-V3-0324 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nebius/MTP-DeepSeek-V3-0324" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nebius/MTP-DeepSeek-V3-0324", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/nebius/MTP-DeepSeek-V3-0324
- SGLang
How to use nebius/MTP-DeepSeek-V3-0324 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 "nebius/MTP-DeepSeek-V3-0324" \ --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": "nebius/MTP-DeepSeek-V3-0324", "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 "nebius/MTP-DeepSeek-V3-0324" \ --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": "nebius/MTP-DeepSeek-V3-0324", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use nebius/MTP-DeepSeek-V3-0324 with Docker Model Runner:
docker model run hf.co/nebius/MTP-DeepSeek-V3-0324
Model Description
This model is a fine-tuned version of DeepSeek-V3's native MTP module, optimized for speculative decoding using LK losses — training objectives that directly target acceptance rate rather than using KL divergence as a proxy.
The original DeepSeek-V3 MTP module was trained primarily for first-token prediction and reused autoregressively for later positions, causing degraded acceptance rates at later draft positions. Our fine-tuning addresses this mismatch, substantially improving multi-token speculation performance.
Training Details
- Base model: deepseek-ai/DeepSeek-V3-0324
- Draft architecture: MTP
- Training data: Infinity-Instruct-0625 with DeepSeek-V3 generated responses
- Training objective: Hybrid LK loss with adaptive λ scheduling (η=3)
- Training: 1 epoch from pretrained MTP weights
- Draft length: K = 6 speculative tokens
Performance
Average acceptance length (τ) measured across MT-bench, HumanEval, and GSM8K with K = 7:
| Configuration | Temperature = 0 | Temperature = 1 |
|---|---|---|
| Original MTP | 3.20 | 3.09 |
| MTP + KL fine-tuning | 4.79 | 4.43 |
| MTP + LK fine-tuning (ours) | 4.83 | 4.68 |
Note: Earlier vLLM versions sampled draft tokens greedily regardless of temperature, which underestimated acceptance rates at temperature > 0. Stochastic draft sampling was introduced in v0.18.0, and from v0.21.0 it can be enabled via
speculative_configusingrejection_sample_methodanddraft_sample_method. The acceptance metrics reported above were measured under standard rejection sampling and are reproducible with the configuration below.
Usage with vLLM
from vllm import LLM, SamplingParams
llm = LLM(
model="deepseek-ai/DeepSeek-V3-0324",
speculative_config={
"method": "deepseek_mtp",
"model": "nebius/MTP-DeepSeek-V3-0324",
"num_speculative_tokens": 6,
"rejection_sample_method": "standard",
"draft_sample_method": "gumbel",
},
tensor_parallel_size=8,
max_num_seqs=1
)
sampling_params = SamplingParams(temperature=0.7)
outputs = llm.generate(["Explain speculative decoding in simple terms."], sampling_params)
License
Citation
@misc{samarin2026lklosses,
title = {LK Losses: Direct Acceptance Rate Optimization for Speculative Decoding},
author = {Alexander Samarin and Sergei Krutikov and Anton Shevtsov and Sergei Skvortsov and Filipp Fisin and Alexander Golubev},
year = {2026},
eprint = {2602.23881},
archivePrefix = {arXiv},
primaryClass = {cs.LG},
url = {https://arxiv.org/abs/2602.23881}
}
- Downloads last month
- 92
Model tree for nebius/MTP-DeepSeek-V3-0324
Base model
deepseek-ai/DeepSeek-V3-0324Dataset used to train nebius/MTP-DeepSeek-V3-0324
Collection including nebius/MTP-DeepSeek-V3-0324
Paper for nebius/MTP-DeepSeek-V3-0324
Evaluation results
- Acceptance Length on MT-Benchself-reported3.880
- Acceptance Length on GSM8Kself-reported5.510
- Acceptance Length on HumanEvalself-reported4.640