Kimi-K2.6 DSpark speculator

Overview

A DSpark speculator model for the Kimi-K2.6 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). Trained with a vendored fork of the speculators library through the Camelot-Ray online pipeline (draft consumes hidden states streamed from a live Kimi-K2.6 vLLM server).

Model Specifications

  • Base Model: Kimi-K2.6
  • 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 built from training-distribution assistant-turn token frequencies
  • 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

Offline teacher-forced (training distribution, frozen final checkpoint):

metric value
mean accepted length (tau, /8) 3.97
greedy acceptance (pos 1-7) 0.618

Per-position acceptance (positions 1-7): 0.816 / 0.720 / 0.652 / 0.598 / 0.553 / 0.512 / 0.474

Online (vLLM nightly spec-decode, greedy, num_speculative_tokens=7), per-benchmark mean accepted length:

benchmark online accept_len offline tau /8
gsm8k 4.45 5.13
math500 4.25 5.00
aime 3.81 4.44
humaneval 3.72 4.60
mtbench 2.82 3.41
mmstar 2.53 2.87
ceval 1.55 1.99

Cross-model transfer: serving Kimi-K2.7-Code with this K2.6-trained speculator loses only ~11% accepted length (same architecture family).

Serving with vLLM

Requires vLLM nightly (DSpark support):

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

vllm serve <path-or-id-of-Kimi-K2.6> \
    --tensor-parallel-size 8 \
    --max-model-len 20000 \
    --trust-remote-code \
    --speculative-config '{
        "model": "novita/kimi-k2.6-dspark",
        "num_speculative_tokens": 7,
        "method": "dspark"
    }'

Known vLLM-nightly (0.23.1rc1.dev786) caveats, with workarounds:

  1. Draft-side FA3 AOT scheduling crashes with scheduler_metadata must have shape (metadata_size) — the GPU-worker spec-decode path misses fast_build=True when building draft attention metadata. Patch vllm/v1/worker/gpu/spec_decode/speculator.py / vllm/v1/worker/gpu/attn_utils.py to pass fast_build=True (mirrors build_for_drafting() on the legacy proposer path).
  2. CUDA-graph capture fails 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

  • Data: Regenerated open-perfectblend dataset — the open-perfectblend instruction mix with all assistant turns regenerated by Kimi-K2.6 itself (raw hidden states streamed from the live verifier); seq 20000
  • Steps: 20000 (16.0h, zero restarts); loss 1.656 → 0.363 (1000-step window)
  • 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: post-norm last hidden captured at rollout (apply_verifier_norm=False), hidden_states = concat of aux layers [1, 29, 57]
Downloads last month
224
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.6-dspark

Finetuned
(16)
this model