MTP: NextN layer가 있는 qwen35moe 파일에 draft가 없음 (Role::Unused)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- rust
- Domain
- machine-learning
Research direction
Start with crates/model/src/arch/qwen35moe/roles.rs and mtp.rs, then compare the existing Body38 MTP implementation in crates/app/src/arch/qwen3moe/mtp.rs with Body35 and the model spec. Extend MTP support for qwen35moe target and draft and connect the draft in the qwen3 seat; done when NextN layers are used for MTP drafting instead of remaining Role::Unused.
Written by the indexing model from the issue text.
Description
NextN(MTP) layer를 가진 qwen35moe GGUF 파일(예: Qwen3.8-35B-A3B distill)은 그 layer를 읽기만 하고 쓰지 않습니다(Role::Unused). MTP draft가 없어서 decode가 MTP로 얻을 수 있는 속도를 그대로 놓칩니다.
- 근거:
crates/model/src/arch/qwen35moe/roles.rs:173-175(trunk 뒤 layer는Role::Unused),crates/model/src/arch/qwen35moe/mtp.rs:70, 285(draft와 target 모두 qwen4exp만 받음),spec.rs:180(mtp: Vec::new()). MTP body는Body38에만 있습니다(crates/app/src/arch/qwen3moe/mtp.rs:16). - 할 일: qwen35moe target과 draft를 받도록
mtp.rs를 넓히고,Body35에MtpBody를 붙이고, qwen3 seat에 draft를 연결합니다. 공통 owner는 이미 있으니 모델 쪽 부분만 붙이면 됩니다.
메인테이너가 진행합니다. 관심 있으시면 댓글로 알려 주세요.
Checklist
Common first, then the model: the draft's mode and feed have one owner before Body35 attaches.
- The model side reads the NextN layer (
in_file, #165). - Lift the draft's walk mode and feed into one owner in
crates/gpu. Today each draft layer carries its own copy
of the same three modes (MtpModefor Qwen3.8,NextnModefor GLM: Eager, Graph, Store) and its own feed type,
and eachMtpBodyglue maps the sharedWalkMode/Feedonto them one to one (crates/app/src/arch/qwen3moe/mtp.rs
mtp_feed/mtp_mode,crates/app/src/arch/glm5next/mtp.rsnextn_feed/nextn_mode). After the lift, Mtp38, the
GLM NextN layer andmtp35.rstake the shared types directly, and both glue files lose their mappings. - Body35's
MtpBodyglue on top of that: only what the architecture differs in (the head, the hidden width, the
prompt calls), wired into the qwen3 seat.mtp35.rs(the draft layer on the card) is already on main. - M2b-1, mainline's MTP step taps as a reference set: the work is on branch
q35m2b(closed PR #242, head
a4e71119). Port it onto main in the same round, and fix its open review item first: an existing destination with
a trailing slash makes the dump installer delete both the old set and its replacement. - M2b-2: the card's draft step held to the M2b-1 set tap by tap in
gate_qwen35moe_mtp. - First measurement: the acceptance rate on this model, then decode with the draft on against off.
- Dominant language
- Rust
- Stars
- 21
- Forks
- 4
- Avg merge
- 2h 32m
- Merged PRs (30d)
- 530
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from midagedev/bloomery
-
review-bot
Difficulty 3/5 1-2 days Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
review-bot
Difficulty 3/5 1-2 days Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
model
Difficulty 5/5 Over a week Newbie friendliness 25/100
midagedev/bloomery#698 · 3 comments ·
Maintainers usually reply within 1 day
-
model
Difficulty 5/5 Over a week Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
model
Difficulty 5/5 Over a week Newbie friendliness 25/100
midagedev/bloomery#632 · 9 comments ·
Maintainers usually reply within 1 day
All issues in midagedev/bloomery
Similar issues
-
bug priority: P3 ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
shep-pm/shep-kelpie#1332 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ramensoftware/windhawk#1156 · 2 comments ·
-
units: No `#` in rustdoc headingPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 1/5 Under an hour Newbie friendliness 67/100
rust-bitcoin/rust-bitcoin#7089 · 1 comment · 1 reaction ·
Maintainers usually reply within 2 days
-
phase:3
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
pchrysostomou/ananke#183 ·
Maintainers usually reply within 1 day
-
area/tools bug session-analysis
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day