--- language: en pipeline_tag: text-generation base_model: - openbmb/MiniCPM5-2B-DSpark - openbmb/MiniCPM5-2B tags: - speculative-decoding - draft-model - minicpm5 - dspark - dflash license: other library_name: draftfit --- # Draftfit — MiniCPM5-2B-SFT DFlash DPACE [Draftfit](https://github.com/JayYun98/Draftfit) trains and adapts speculative-decoding draft models for a **frozen target LLM**. This checkpoint is the **DFlash DPACE branch** adapted to: - **Target:** [`openbmb/MiniCPM5-2B-SFT`](https://huggingface.co/openbmb/MiniCPM5-2B-SFT) - **Starting draft:** [`openbmb/MiniCPM5-2B-DSpark`](https://huggingface.co/openbmb/MiniCPM5-2B-DSpark) > Each Draftfit family has separate weights. DSpark, DFlash CE, DFlash DPACE and DFlash2 are **not one universal checkpoint**. ## Results ### MLX / M5 Pro | Draft | Overall tok/s | | --- | ---: | | Official DSpark | 105.38 | | Draftfit DSpark | **116.15** | | Draftfit DFlash CE | 89.61 | | Draftfit DFlash DPACE | 89.97 | | Draftfit DFlash2 | 80.75 | Validation set: **53 held-out conversations** - PerfectBlend: 35 - OpenCodeInstruct: 6 - APIGen-MT: 6 - Nemotron Agentic: 6 ## Domain results — MLX | Draft | PerfectBlend | OpenCode | APIGen-MT | Nemotron Agentic | | --- | ---: | ---: | ---: | ---: | | Official DSpark | 107.83 | 112.19 | 107.79 | 85.86 | | Draftfit DSpark | **118.29** | **122.28** | **116.04** | **91.99** | | Draftfit DFlash CE | 89.02 | 99.18 | 92.49 | 79.31 | | Draftfit DFlash DPACE | 89.84 | 103.20 | 91.62 | 76.97 | | Draftfit DFlash2 | 78.37 | 92.76 | 87.49 | 70.41 | Full prompt-free summary: [`evaluation-v4.json`](evaluation-v4.json) ## Which draft should I use? | Draft | Best use | | --- | --- | | DSpark | Best first choice when adapting an existing DSpark draft to a new target | | DFlash CE | Simple block-parallel DFlash baseline | | DFlash DPACE | Test position-weighted training objectives against CE | | DFlash2 | Research richer candidate ranking / grouped-convolution drafts | For this MiniCPM5-SFT experiment, **DSpark is the strongest practical baseline**. Draftfit DSpark reached **116.15 tok/s vs 105.38 tok/s** for the official DSpark in the tested MLX setup. These measurements do **not** establish a general speed advantage. ## Revisions | Revision | Description | | --- | --- | | `main` | DFlash DPACE, primary release | | `v5` | Additional 1,000-step continual-training stage on a fresh split | Different revisions used different held-out sets, so their measurements should not be used to rank revisions directly. ## Validation notes The models were trained for **1,000 steps per stage** using disjoint 1,000-conversation training sets. Training mixture per stage: | Dataset | Rows | | --- | ---: | | PerfectBlend deduplicated | 700 | | OpenCodeInstruct | 100 | | APIGen-MT-5k | 100 | | Nemotron-Agentic-v1 | 100 | Important limitations: - DSpark/DFlash serving correctness still requires exact token/state and acceptance-length validation. - DFlash2 was tested on MLX but not with SGLang 0.5.16. - A successfully loaded draft checkpoint does **not** prove correct speculative decoding. - Reported speed is specific to the tested target, hardware, verifier settings and prompt set. ## Download ```bash hf download jayyun98/MiniCPM5-2B-SFT-Draftfit-DFlash-DPACE \ --revision main \ --local-dir ./draft ``` The repository contains: ```text config.json model.safetensors ``` Use them with the pinned MiniCPM5-2B-SFT target and tokenizer. Training, conversion and benchmarking workflows are documented in: [Draftfit](https://github.com/JayYun98/Draftfit) ## License / data notice The training mixture includes **APIGen-MT-5k**, which is marked **CC BY-NC 4.0** and includes additional generator-provenance restrictions. Treat this release as **research / non-commercial** unless you have reviewed the source dataset terms. See [`SOURCE_TERMS.md`](SOURCE_TERMS.md) and `release_manifest.json`. --- **Experimental research artifact.** The reported numbers are not a general production speedup or correctness claim.