Skip to content

feat(e5): MTP-aux distillation rung — registered + implemented - #114

Merged
ronaldtse merged 1 commit into
mainfrom
feat/e5-mtp-aux
Aug 31, 2026
Merged

feat(e5): MTP-aux distillation rung — registered + implemented#114
ronaldtse merged 1 commit into
mainfrom
feat/e5-mtp-aux

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Pre-registered in EXPERIMENTS.md (gate before launch): control = run-006-r7-muon verbatim, single delta = a 3-step multi-token-prediction head on the student decoder (~1.1M params / 0.4 percent), aux CE at beta 0.15. The head is discarded at inference — the shipped student stays vanilla and size-identical; mtp_head.pt is saved beside student.pt for training resume and copied under best/ for provenance only. Source: Tencent Hy4's native MTP mapped as a TRAINING auxiliary (TODO 07-hy4; serving-side speculation stays parked — decode measured non-binding at our sizes). Spec: ara-diac-small-2-mtp -> run-007-r7-muon-mtp. 3 unit tests cover shift/mask semantics, the uniform-logit baseline, and Muon-facing param naming. Gate: adopt at <=4.5218; honest report in [4.5218, 4.8218). Prediction: 4.5-4.75.

EXPERIMENTS.md E5: control = run-006-r7-muon verbatim, single delta =
a 3-step multi-token-prediction head (~1.1M params, 0.4%) on the
student decoder, aux CE at beta 0.15, head discarded at inference so
the shipped artifact stays vanilla and size-identical. Source: Hy4's
native MTP mapped as a TRAINING auxiliary (TODO 07-hy4) — serving-side
speculation stays parked, decode measured non-binding.

gpu/mtp.py (MTPHead + build/mtp_named), distill_sequence wiring
(head before optimizer so Muon sees its matrices; mtp_head.pt saved
beside student.pt for resume; provenance-only copy under best/),
spec ara-diac-small-2-mtp -> run-007-r7-muon-mtp. 3 unit tests
(shift/mask semantics, uniform-logit baseline, naming).

Gate (pre-agreed): adopt at <=4.5218 full-set windowed DER; honest
report in [4.5218, 4.8218). Prediction: 4.5-4.75.
@ronaldtse
ronaldtse merged commit c8673c3 into main Aug 31, 2026
3 checks passed
ronaldtse pushed a commit that referenced this pull request Sep 2, 2026
…still

The F821 was a real latent bug: MTP checkpoint lines from the #114
wiring were pasted into the logit-mode distiller save block where
mtp_head never exists — any logit-mode run would NameError at its
first step checkpoint. The lines belong only in distill_sequence.
The rest: import sorting, unused zipfile, quoted annotation, E501
signature wraps, zip strict=, context manager for models.yaml.
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