Skip to content

fix(speculative): add the Muse Glimmer final norm for streaming EAGLE3/DFlash training - #3076

Draft
aniskumar-nv wants to merge 1 commit into
NVIDIA:mainfrom
aniskumar-nv:aniskumar/muse-glimmer-final-norm
Draft

aniskumar-nv wants to merge 1 commit into
NVIDIA:mainfrom
aniskumar-nv:aniskumar/muse-glimmer-final-norm

Conversation

@aniskumar-nv

Copy link
Copy Markdown

What does this PR do?

Type of change: Bug fix.

Streaming EAGLE3/DFlash training on meta-models/Muse-Glimmer-30B fails because its text stack is nested as text_config with model_type: muse_glimmer_text, which _FINAL_NORM_TYPE_BY_MODEL_TYPE does not list, so FakeBaseModel cannot reconstruct the base logits from the streamed pre-norm hidden state.

This registers muse_glimmer_text (and muse_glimmer, for a text-only checkpoint) as plain rmsnorm. The model is a Gemma-2 derivative whose per-layer sandwich norms carry the (1 + weight) offset, but its final norm does not: on the released checkpoint, normed * weight reproduces HF hidden_states[-1] at cos 0.999999 (max-abs 0.21, bf16 noise), while the (1 + weight) form gives cos 0.9207 / max-abs 62.7. Same pattern as the Gemma 4 entries.

Usage

No new flags. Streaming training on this target works once the entry exists.

Testing

pytest tests/unit/torch/speculative/plugins/test_modeling_final_norm.py -q
  • 21 passed (CPU, PyTorch 2.13.0, transformers 5.15.1); the parametrized test_select_final_norm_type gains both keys.
  • Norm form measured on meta-models/Muse-Glimmer-30B (bf16, B300): forward hook on the final MuseGlimmerRMSNorm input, both candidate forms compared with the module output and with hidden_states[-1].

Before your PR is "Ready for review"

  • Is this change backward compatible?: ✅
  • If you copied code from any other sources or added a new PIP dependency, did you follow guidance in CONTRIBUTING.md: N/A
  • Did you write any new necessary tests?: ✅
  • Did you update Changelog?: ✅
  • Did you get Claude approval on this PR?: ❌ (not run yet)

Additional Information

Draft until a Muse Glimmer EAGLE3/DFlash training smoke with this entry has run end to end.

🤖 Generated with Claude Code

…3/DFlash training

meta-models/Muse-Glimmer-30B nests its text stack as text_config with model_type
muse_glimmer_text, which _FINAL_NORM_TYPE_BY_MODEL_TYPE did not list, so FakeBaseModel
could not reconstruct the base logits from the streamed pre-norm hidden state. The per-layer
sandwich norms of this Gemma-2 derivative carry the (1 + weight) offset but the final norm does
not: plain normed * weight reproduces HF hidden_states[-1] at cos=0.999999 (max-abs 0.21, bf16
noise) while the (1 + weight) form gives cos=0.9207 / max-abs 62.7, measured on the released
checkpoint. Register both the nested and the text-only model type as plain rmsnorm.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Signed-off-by: Anish Kumar <[email protected]>
@copy-pr-bot

copy-pr-bot Bot commented Oct 28, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant