Continual FT from lightseek kimi-k2.6-eagle3-mla (Camelot, 10k steps): val_loss -27%, weak-position acc +45-116%
Browse files- README.md +59 -1
- config.json +47 -0
- model.safetensors +3 -0
README.md
CHANGED
|
@@ -1,3 +1,61 @@
|
|
| 1 |
---
|
| 2 |
-
license:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
license: other
|
| 3 |
+
base_model: lightseekorg/kimi-k2.6-eagle3-mla
|
| 4 |
+
tags:
|
| 5 |
+
- text-generation
|
| 6 |
+
- speculative-decoding
|
| 7 |
+
- eagle3
|
| 8 |
+
- kimi-k2.6
|
| 9 |
+
- mla
|
| 10 |
+
- camelot
|
| 11 |
---
|
| 12 |
+
|
| 13 |
+
# kimi-k2.6-eagle3-mla (continual fine-tune)
|
| 14 |
+
|
| 15 |
+
Eagle3 MTP draft model with MLA (Multi-Latent Attention) for accelerating
|
| 16 |
+
inference of [Kimi-K2.6](https://huggingface.co/moonshotai/Kimi-K2.6).
|
| 17 |
+
|
| 18 |
+
This checkpoint is a **continual fine-tune** of
|
| 19 |
+
[lightseekorg/kimi-k2.6-eagle3-mla](https://huggingface.co/lightseekorg/kimi-k2.6-eagle3-mla),
|
| 20 |
+
further trained on an in-house instruction distribution. The architecture,
|
| 21 |
+
config, and tensor layout are identical to the base model, so it is a drop-in
|
| 22 |
+
replacement in the same vLLM serving path.
|
| 23 |
+
|
| 24 |
+
## Training Setup
|
| 25 |
+
|
| 26 |
+
- **Init**: continual FT from `lightseekorg/kimi-k2.6-eagle3-mla`.
|
| 27 |
+
- **Framework**: Camelot online speculative-decoding training — concurrent
|
| 28 |
+
FSDP training + vLLM rollout with cross-node hidden-state transfer over
|
| 29 |
+
Mooncake (RDMA).
|
| 30 |
+
- **Topology**: 1 datagen node (Kimi-K2.6, TP=8) -> Mooncake -> 1 trainer GPU.
|
| 31 |
+
- **Data**: online-generated hidden states from a ~100k-prompt instruction set
|
| 32 |
+
(each sample consumed once; ~10k samples over the run).
|
| 33 |
+
- **Steps**: 10,000 (global batch size 1), LR 2e-5 cosine, seq len 4096,
|
| 34 |
+
Eagle3 TTT steps 3.
|
| 35 |
+
|
| 36 |
+
## Validation (training-time, teacher-forced)
|
| 37 |
+
|
| 38 |
+
Per-position draft accuracy on a fixed held-out val split, measured during
|
| 39 |
+
training (teacher-forced argmax match; this is a *training-time* metric and is
|
| 40 |
+
not directly comparable to runtime accept-length). Continual FT lifts the
|
| 41 |
+
weaker later positions most:
|
| 42 |
+
|
| 43 |
+
| metric | init | final | rel. |
|
| 44 |
+
| --- | --- | --- | --- |
|
| 45 |
+
| val_loss | 7.69 | 5.62 | -27% |
|
| 46 |
+
| full_acc@1 | 0.253 | 0.367 | +45% |
|
| 47 |
+
| full_acc@2 | 0.085 | 0.184 | +116% |
|
| 48 |
+
| cond_acc@1 | 0.412 | 0.559 | +36% |
|
| 49 |
+
| cond_acc@2 | 0.336 | 0.499 | +49% |
|
| 50 |
+
|
| 51 |
+
A runtime `accept_length` benchmark (vLLM 0.20, `num_speculative_tokens=3`) is
|
| 52 |
+
pending and will be added once measured.
|
| 53 |
+
|
| 54 |
+
## Quick Start (vLLM >= 0.20.0)
|
| 55 |
+
|
| 56 |
+
```bash
|
| 57 |
+
vllm serve moonshotai/Kimi-K2.6 \
|
| 58 |
+
--tensor-parallel-size 8 \
|
| 59 |
+
--speculative-config '{"model": "k-l-lambda/kimi-k2.6-eagle3-mla", "method": "eagle3", "num_speculative_tokens": 3}' \
|
| 60 |
+
--trust-remote-code
|
| 61 |
+
```
|
config.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"Eagle3DeepseekV2ForCausalLM"
|
| 4 |
+
],
|
| 5 |
+
"model_type": "kimi_k2",
|
| 6 |
+
"hidden_size": 7168,
|
| 7 |
+
"intermediate_size": 18432,
|
| 8 |
+
"num_hidden_layers": 1,
|
| 9 |
+
"num_attention_heads": 64,
|
| 10 |
+
"num_key_value_heads": 64,
|
| 11 |
+
"q_lora_rank": 1536,
|
| 12 |
+
"kv_lora_rank": 512,
|
| 13 |
+
"qk_nope_head_dim": 128,
|
| 14 |
+
"qk_rope_head_dim": 64,
|
| 15 |
+
"v_head_dim": 128,
|
| 16 |
+
"hidden_act": "silu",
|
| 17 |
+
"rms_norm_eps": 1e-05,
|
| 18 |
+
"vocab_size": 163840,
|
| 19 |
+
"draft_vocab_size": 163840,
|
| 20 |
+
"torch_dtype": "bfloat16",
|
| 21 |
+
"rope_theta": 50000.0,
|
| 22 |
+
"rope_scaling": {
|
| 23 |
+
"beta_fast": 1.0,
|
| 24 |
+
"beta_slow": 1.0,
|
| 25 |
+
"factor": 64.0,
|
| 26 |
+
"mscale": 1.0,
|
| 27 |
+
"mscale_all_dim": 1.0,
|
| 28 |
+
"original_max_position_embeddings": 4096,
|
| 29 |
+
"type": "yarn"
|
| 30 |
+
},
|
| 31 |
+
"eagle_config": {
|
| 32 |
+
"eagle_aux_hidden_state_layer_ids": [
|
| 33 |
+
2,
|
| 34 |
+
30,
|
| 35 |
+
58
|
| 36 |
+
],
|
| 37 |
+
"use_aux_hidden_state": true,
|
| 38 |
+
"use_input_layernorm_in_first_layer": true,
|
| 39 |
+
"use_last_layernorm": true,
|
| 40 |
+
"use_mtp_layernorm": false
|
| 41 |
+
},
|
| 42 |
+
"bos_token_id": 163584,
|
| 43 |
+
"eos_token_id": 163585,
|
| 44 |
+
"pad_token_id": 0,
|
| 45 |
+
"_torchspec_version": "0.1.0",
|
| 46 |
+
"max_position_embeddings": 262144
|
| 47 |
+
}
|
model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cc5e532f4dd84a3a3f58898a226ee8b1052f5cff4d542e02722d0cb7659c6df7
|
| 3 |
+
size 6031210296
|