FlowDraft checkpoints

Drafter weights for FlowDraft: flow-map drafters for speculative decoding with Qwen3-4B. Code, reports and full instructions: https://github.com/ProtonPratt/FlowDraft-Main

A drafter guesses the next 15 tokens of Qwen3-4B in one forward pass. Qwen3-4B checks all 15 guesses in one pass and keeps the longest correct prefix. The output is exactly what Qwen3-4B writes alone. The score is ฯ„: tokens written per guess-and-check round.

Layout

This repo has the same layout as the GitHub repo. Download into the clone and every file is at the path the code reads:

git clone https://github.com/ProtonPratt/FlowDraft-Main.git && cd FlowDraft-Main
python scripts/hf_checkpoints.py fetch                 # DFlash-100K + the best drafter (4.1 GB)
python scripts/hf_checkpoints.py fetch --set all       # everything here (~62 GB)
sha256sum -c WEIGHTS_SHA256SUMS --ignore-missing

Run the code from the repo root. The export configs (dspark_config.json) hold repo-relative paths.

Exports (drafters)

Results: 480 benchmark answers (80 per set: GSM8K, MATH-500, HumanEval, MBPP, MT-Bench), one H100, batch size 1, overhead-free benchmark loop.

Path What it is greedy ฯ„ t1 ฯ„ greedy speed t1 speed
init/dflash100k_epoch6 DFlash-100K (baseline; also the start of every run) 4.78 4.08 3.59x 3.05x
runs/fmlm2_v3_6ep_bv/export/epoch_1 best: fmlm2 V3, 6 passes + BV pass 5.31 4.70 3.50x 3.11x
runs/fmlm2_v3_6ep_bv_lt/export/epoch_1 BV pass + Lafa learned time per slot 5.30 4.71
runs/fmlm2_v3_6ep_bv_emb/export/epoch_1 BV pass + Lafa embedding loss 5.27 4.65
runs/fmlm2_v3_6ep_bv_lt_sc/export/epoch_1 Lafa A + self-conditioning, two-step drafting
runs/fmlm2_v3_6ep_tv/export/epoch_1 6 passes + TV pass 5.26 4.70
runs/fmlm2_v3_6ep_ce/export/epoch_1 6 passes + CE pass (control) 5.17 4.37
runs/fmlm2_v3_6ep/export/epoch_6 fmlm2 V3 after 6 passes (start of every extra pass)
runs/fmlm2_v3/export/epoch_1 fmlm2 V3 at 1 pass
runs/dspark_joint_6p/export/epoch_6 DSpark (no flow) after 6 passes
runs/dspark_joint_6p_tv/export/epoch_1 DSpark 6 passes + TV pass 5.20 4.64 3.48x 3.09x
runs/dspark_a/export/epoch_1 Markov head on frozen DFlash-100K (head only) 5.04 4.36 3.37x 2.90x
runs/full_scratch/export/epoch_6 plain FMLM+ from scratch, 6 passes

Empty cells: see the reports in the GitHub repo (reports/README.md). An fmlm2 export has model.safetensors (DFlash layout), flow.safetensors (flow parts) and head.safetensors (joint head). A DSpark export has model.safetensors + head.safetensors.

Resume checkpoints

Full training state (weights, optimizer, schedule, data cursor). Use them only to continue training. Resume needs 8 GPUs and the same training settings; src/train.py checks both.

Path Size What it is
runs/fmlm2_v3_6ep/ckpt/epoch_6_step_17156.pt 12 GB fmlm2 V3 at the end of pass 6
runs/dspark_joint_6p/ckpt/epoch_6_step_17156.pt 6.8 GB DSpark at the end of pass 6
runs/fmlm2_v3_tv1p/ckpt/step_1250.pt 12 GB 1-pass matched TV run, paused at step 1,250

Limits

  • Trained on 99,999 greedy Qwen3-4B answers, one seed per run.
  • The target model, Qwen3-4B, is not in this repo. Download it from Qwen/Qwen3-4B (Apache-2.0).
  • The model code is upstream DFlash (z-lab/dflash, MIT).

Team TokenYahu: Vipen Loka, Dheeraj Hegde, Pratyush Jena.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for ProtonPrat/FlowDraft-checkpoints

Finetuned
Qwen/Qwen3-4B
Finetuned
(1217)
this model