k-l-lambda's picture
Update README for 32K vocab
cf71d08 verified
|
Raw
History Blame Contribute Delete
1.53 kB
metadata
license: apache-2.0
base_model: moonshotai/Kimi-K2.7-Code
tags:
  - speculative-decoding
  - eagle3
  - mla
  - draft-model

Kimi-K2.7-Code Eagle3-MLA draft (32K-truncated vocab)

Eagle3-MLA speculative-decoding draft model for Kimi-K2.7-Code, with the output lm_head truncated from the full 163,840 vocabulary to the top-32,000 highest-frequency tokens (by real K2.7-Code serving-traffic token distribution), plus the 256 special/template tokens force-included.

What changed vs the full-vocab draft

  • lm_head.weight: [163840, 7168] -> [32000, 7168]
  • added d2t (draft-local id -> target global id, delta-encoded) so vLLM scatters the 32K draft logits back into the 163,840 target space
  • embed_tokens kept full ([163840, 7168]) — draft input lookups are unaffected
  • config.json: draft_vocab_size: 32000 (was 163840)
  • token coverage of the real draft-token distribution: 0.9927

Architecture

Single-layer Eagle3 decoder on the DeepSeek-V2/V3 MLA attention (Eagle3DeepseekV2ForCausalLM), hidden_size=7168. Loads in vLLM via --speculative-config '{"method":"eagle3","model":"<this repo>","num_speculative_tokens":3}'.

Notes

The 32K truncation reduces the lm_head GEMM ~4x in isolation and is a clear win at batch=1 / on-device decoding (memory-bandwidth-bound). At high-concurrency EP+DP serving (e.g. c=128) the end-to-end gain is small, because the lm_head is not the bottleneck there. Output correctness is unaffected — the target model verifies every speculated token.