Kimi-K2.7-Code DSpark speculator

Overview

A DSpark speculator model for the Kimi-K2.7-Code base model, enabling faster inference through speculative decoding. DSpark extends the DFlash parallel draft backbone with two lightweight heads: a Markov logit-bias head (low-rank intra-block token dependency) and a per-position confidence head (accept-rate prediction). This checkpoint was trained in the Camelot-Ray online pipeline, where the draft consumes hidden states streamed from a live Kimi-K2.7-Code vLLM server.

This export is from Camelot exp38 checkpoint 3.

Model Specifications

  • Base Model: Kimi-K2.7-Code
  • Format: Safetensors (single-file bf16, 6.3 GB, 44 tensors)
  • Draft: 3 layers (Qwen3-style GQA), hidden 7168, 56 heads / 8 KV heads, head_dim 128, FFN 18432, rope_theta 50000, block_size=8
  • Vocabulary: pruned draft vocab 32,000 (d2t/t2d remap tables shipped in the weights), target vocab 163,840; mappings reused from the Kimi-K2.6/K2.7 compatible tokenizer setup
  • DSpark heads: Markov rank 256 (vanilla), confidence head (with-markov), mask_token_id=163608
  • Aux hidden-state layers: [1, 29, 57]
  • Trained context: seq 20000

Evaluation Results

Online vLLM nightly spec-decode, greedy decoding, TP=8, Kimi-K2.7-Code verifier, max_model_len=20000, cudagraphs enabled, and fuse_allreduce_rms=false.

The table also includes Novita's public Eagle3-MLA draft novita/kimi-k2.7-code-eagle3-mla under the same Kimi-K2.7-Code verifier, TP=8, cudagraph, and fusion-off serving setup. Cells show tok/s / speedup / accept_len. The standard rows use 6 prompts per benchmark; code-extra rows use the full LiveCodeBench and SPEED-Bench coding manifests with max_tokens=512.

benchmark rows baseline tok/s DSpark n=3 DSpark n=7 Novita Eagle3 n=3 Novita Eagle3 n=7 best
gsm8k 6 132.0 282.2 / 2.14x / 2.937 309.1 / 2.34x / 3.659 281.7 / 2.13x / 2.941 277.3 / 2.10x / 3.595 DSpark n=7
math500 6 132.0 317.1 / 2.40x / 3.249 367.4 / 2.78x / 4.303 288.6 / 2.19x / 3.026 294.5 / 2.23x / 3.851 DSpark n=7
aime 6 131.5 276.8 / 2.10x / 2.778 318.4 / 2.42x / 3.716 263.2 / 2.00x / 2.766 275.3 / 2.09x / 3.626 DSpark n=7
humaneval 6 132.1 285.1 / 2.16x / 2.875 336.6 / 2.55x / 3.953 285.9 / 2.17x / 3.029 291.8 / 2.21x / 3.850 DSpark n=7
livecodebench 121 129.8 227.5 / 1.75x / 2.306 231.0 / 1.78x / 2.696 219.5 / 1.69x / 2.342 198.5 / 1.52x / 2.593 DSpark n=7
speedbench_coding 80 131.2 282.0 / 2.15x / 2.837 303.7 / 2.31x / 3.530 272.1 / 2.06x / 2.886 281.6 / 2.13x / 3.693 DSpark n=7

Use DSpark with num_speculative_tokens=7 as the default for code, math, and most reasoning traffic.

Serving with vLLM

Requires a vLLM nightly with DSpark support:

uv pip install vllm --extra-index-url https://wheels.vllm.ai/nightly

vllm serve moonshotai/Kimi-K2.7-Code \
    --tensor-parallel-size 8 \
    --max-model-len 20000 \
    --trust-remote-code \
    --compilation-config='{"pass_config": {"fuse_allreduce_rms": false}}' \
    --speculative-config '{
        "model": "novita/kimi-k2.7-code-dspark",
        "num_speculative_tokens": 7,
        "method": "dspark"
    }'

Known vLLM-nightly caveats, with workarounds:

  1. Draft-side FA3 AOT scheduling can crash with scheduler_metadata must have shape (metadata_size) because the GPU-worker spec-decode path misses fast_build=True when building draft attention metadata. Patch vllm/v1/worker/gpu/spec_decode/speculator.py and vllm/v1/worker/gpu/attn_utils.py to pass fast_build=True.
  2. CUDA-graph capture can fail with a flashinfer allreduce workspace-size error under spec-decode token expansion; disable the fusion: --compilation-config='{"pass_config": {"fuse_allreduce_rms": false}}'.

Training Details

  • Initialization: continued from the Kimi-K2.7-Code DSpark exp37 checkpoint
  • Data: Kimi-K2.7-Code training mix with public Kimi-MTP data and hidden states streamed from the live Kimi-K2.7-Code verifier; seq 20000
  • Steps: 20000 optimizer steps
  • Schedule: lr 3e-4 cosine, warmup 300, global batch 8, accumulation 2
  • Loss: 0.1 CE + 0.9 TV over block-diffusion anchors, decay_gamma 4.0, max_anchors 3072
  • Semantics: apply_verifier_norm=False, hidden_states = concat of aux layers [1, 29, 57]
Downloads last month
501
Safetensors
Model size
3B params
Tensor type
BF16
I64
BOOL
Inference Providers NEW
This model isn't deployed by any Inference Provider. 馃檵 Ask for provider support

Model tree for novita/kimi-k2.7-code-dspark

Finetuned
(8)
this model