| --- |
| license: apache-2.0 |
| library_name: pytorch |
| tags: |
| - mixture-of-experts |
| - deepseek-vl2 |
| - expert-prediction |
| - prefetch |
| base_model: deepseek-ai/deepseek-vl2-tiny |
| --- |
| |
| # SpecPrefetch — DeepSeek-VL2-Tiny Future-Expert Predictor (single-horizon) |
|
|
| A lightweight predictor head trained on top of a frozen **DeepSeek-VL2-Tiny** |
| MoE model. It consumes the hidden state at an anchor layer `l` and predicts |
| the **Top-K expert set** that the *teacher router* will select **one layer |
| later** (`l+1`). The predictions are used at inference time to |
| **prefetch experts** before the router gets there, hiding cold-load latency |
| on GPUs with limited expert cache. |
|
|
| This checkpoint is a **single-horizon** (l+1 only) variant trained with the |
| fusion mode. (https://github.com/wei390/SpecPrefetch) |
|
|
| ## Training spec |
|
|
| - Base model: `deepseek-ai/deepseek-vl2-tiny` (12 layers, 64 routed experts, top-6, layer 0 dense) |
| - Predictor: 2-layer residual MLP, hidden=1280, dropout=0.1 |
| - Anchor layers: all 11 MoE layers (1..11) |
| - Horizon: 1 (predicts `l+1`) |
| - Fusion mode: `lora` (rank=64) |
| - Loss: KL between predictor distribution and teacher router softmax |
| - Frozen: backbone, experts, router, lm_head, embeddings |
| |
| ## Files |
| |
| | File | Size | Purpose | |
| | --- | --- | --- | |
| | `model.safetensors` | 6.4 GB | Full model weights (frozen base + trained predictor + LoRA) | |
| | `config.json` | — | DeepSeek-VL2 config | |
| | `tokenizer.json` / `tokenizer_config.json` / `special_tokens_map.json` | — | Tokenizer | |
|
|
| ## Reference numbers (full-set, next1) |
|
|
| | Dataset | n | recall@3 | recall@6 | recall@8 | exact@6 | |
| | ----------------- | ----- | -------- | -------- | -------- | ------- | |
| | ChartQA_TEST | 2500 | 0.4963 | 0.8961 | 0.9683 | 0.4653 | |
| | OCRBench | 1000 | 0.4936 | 0.8929 | 0.9645 | 0.4690 | |
| | HallusionBench | 1129 | 0.4925 | 0.8872 | 0.9596 | 0.4488 | |
| | GSM8K | 1319 | 0.4836 | 0.8435 | 0.9247 | 0.3282 | |
| | openai_humaneval | 164 | 0.4761 | 0.8151 | 0.9065 | 0.2653 | |
|
|
| (Recall is averaged over `decode_tokens × anchor_layers` per sample. Random |
| baseline for recall@3 with 6/64 ground-truth experts ≈ 0.094.) |
|
|
| ## Usage |
|
|
| Load the checkpoint into the [SpecPrefetch](https://github.com/wei390/SpecPrefetch) model: |
|
|
| ```python |
| from huggingface_hub import snapshot_download |
| from model.configuration_deepseek_vl2 import DeepseekVL2DraftRouterConfig |
| from model.modeling_deepseek_vl2 import ( |
| DeepseekVL2DraftRouterForConditionalGeneration, |
| load_pretrained_weights, |
| ) |
| |
| ckpt = snapshot_download("jinwei001/SpecPrefetch_deepseekvl2") |
| config = DeepseekVL2DraftRouterConfig.from_pretrained( |
| ckpt, |
| future_expert_predictor_enabled=True, |
| future_expert_fusion_mode="lora", |
| ) |
| model = DeepseekVL2DraftRouterForConditionalGeneration(config) |
| load_pretrained_weights(model, ckpt) |
| ``` |
|
|