Afterglow DFlash drafter for Muse Glimmer 30B

The agent-tuned DFlash drafter from Afterglow (Muse Glimmer Afterglow: your local model keeps learning after you go to sleep).

A fine-tune of Meta's official DFlash drafter for Muse Glimmer 30B (meta-models/Muse-Glimmer-30B-assistant, revision e8192f3a). We tuned it on Glimmer's own replies to personal-assistant style prompts, to see whether a workload-tuned drafter speeds up speculative decoding on one RTX 4090.

Trained on 14 October 2026. The code that made it is in oneiron-dev/afterglow, under drafter/; the release notes are drafter/RELEASE.md.

Short answer: it is not faster overall than Meta's drafter. It is about 3.5% faster on short agent turns than the same drafter put through our converter, level with Meta's file there, and slower on long public chat. Use it as a starting point for retraining after you fine-tune the target, not as a drop-in speedup.

Files

File Bytes sha256 Use
dflash-tuned-lr2e-05-Q4_K_M.gguf 1,631,205,408 d78021f9d342266f720377b9f3633152ad4ccad51aa90761e033671f40d8a717 llama.cpp drafter (-md) for the official Glimmer Q4_K_M target
model.safetensors 5,111,976,608 39db46a1cb627b8a7898fe49949be9ea4ecae1ec7f36e0f90e58c58270c95d78 bf16 weights in Hugging Face format, for further training
config.json 878 3aaa82631c4410c581babf3b709724bdf33862e5feb9166c8f9a6a40714dc69b goes with model.safetensors (MuseGlimmerAssistantModel, transformers 5.17)
dflash-stockmine-Q4_K_M.gguf (control) 1,631,205,408 8dbc4f0313a6a1afca38fb69f81ff2ad06845c641a5edd2176236d1bdd1a19d4 Meta's drafter through our converter and quant: the fair baseline for the tune

Check a download with sha256sum -c SHA256SUMS.

Fetch

From a clone of oneiron-dev/afterglow, hf_fetch.py downloads both GGUF files and checks each sha256 against Hugging Face (it needs aria2c):

python3 drafter/scripts/hf_fetch.py oneiron-dev/afterglow-dflash-drafter main $M \
  dflash-tuned-lr2e-05-Q4_K_M.gguf dflash-stockmine-Q4_K_M.gguf

Without the repo: hf download oneiron-dev/afterglow-dflash-drafter dflash-tuned-lr2e-05-Q4_K_M.gguf dflash-stockmine-Q4_K_M.gguf SHA256SUMS --local-dir .

Use with llama.cpp

Target: Muse-Glimmer-30B-KQuant-17GB-Q4_K_M.gguf from meta-models/Muse-Glimmer-30B-GGUF at 70bf1b61.

llama-server -m Muse-Glimmer-30B-KQuant-17GB-Q4_K_M.gguf -ngl 99 -fa on -np 1 -c 8192 --metrics \
  -md dflash-tuned-lr2e-05-Q4_K_M.gguf -ngld all --spec-type draft-dflash \
  --spec-draft-n-max 15 --spec-draft-n-min 0 --spec-draft-p-min 0 --spec-draft-sampling greedy

The bf16 checkpoint does not include the embedding table or lm_head. DFlash shares them with the target.

How it was tuned

  • Data: no real user data. 1,964 prompts: 976 chat turns and 488 recall questions from 488 fictional personas (synthetic "lives" with notes, sessions and tool output, in English, Japanese and Ukrainian), plus 500 first turns from UltraChat-200k train_sft (MIT). The prompts were split by persona before any generation. The 25 eval prompts come from 20 held-out personas and UltraChat test_sft.
  • Training signal: Glimmer's own greedy replies (official Q4_K_M target, โ‰ค512 tokens; 237,611 reply tokens) and its hidden states at blocks 1, 13, 25, 37 and 49. The hidden states came from the NF4 checkpoint unsloth/Muse-Glimmer-30B-unsloth-bnb-4bit at ecedda39.
  • Recipe (DFlash paper, offline features): start from the official weights; all 2.556 B drafter parameters train, with Glimmer's embedding and lm_head frozen. Each block is an anchor inside Glimmer's reply plus 15 mask tokens. Loss is CE on raw lm_head logits, weighted exp(โˆ’(kโˆ’1)/7) over slots 1 to 15. AdamW (0.9, 0.95), no weight decay, clip 1.0, cosine schedule with 10% warmup, batch 16, one epoch (113 steps), lr 2e-5. We also tried lr 6e-5 and rejected it on the validation split.
  • GGUF: llama.cpp 69f201a, convert_hf_to_gguf.py --outtype bf16, then llama-quantize Q4_K_M --tensor-type attn_v=q6_k --tensor-type ffn_down=q6_k. This copies the official file's layout: 26 Q4_K, 10 Q6_K and 22 F32 tensors.

Results (one RTX 4090 at 400 W, llama.cpp 69f201a, 25 held-out prompts, greedy, concurrency 1)

Drafter Mean acceptance length Decode tok/s Speedup over target alone (51.3 tok/s)
Meta's official Q4_K_M file 2.91 83.4 1.62ร—
Meta's weights, our conversion (fair baseline, dflash-stockmine-Q4_K_M.gguf) 2.88 82.0 1.60ร—
This drafter 2.83 81.2 1.58ร—
  • On the 20 agent-turn prompts: 1.41ร— for this drafter, against 1.36ร— for the same-converter baseline and 1.40ร— for Meta's file.
  • All four drafter files gave identical outputs to each other on 25/25 prompts. With DFlash on, the output matched target-only decoding on 14/25 prompts in this llama.cpp build. A fault in the speculative verify path is not ruled out, so use target-only decoding when you need exact output.

Licence and use policy

This model is a modification of Meta's Muse Glimmer DFlash assistant, which Meta releases under the Apache License 2.0 (LICENSE, copied from Meta's release). Our changes are released under the same licence. Use of this model is also subject to the Muse Glimmer Usage Policy, copied from Meta's release; the current version is at https://huggingface.co/meta-models/Muse-Glimmer-30B/blob/main/USAGE_POLICY.md. Muse Glimmer is not intended for anyone under 18.

If you redistribute these files, keep NOTICE, LICENSE and USAGE_POLICY.md with them, and say that the model was modified from Meta's release.

Downloads last month
136
Safetensors
Model size
3B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for oneiron-dev/afterglow-dflash-drafter

Finetuned
(2)
this model