Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

MTP: NextN layer가 있는 qwen35moe 파일에 draft가 없음 (Role::Unused)

Open
#30 3 comments 0 reactions 0 assignees View on GitHub

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

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

enhancement

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 (MtpMode for Qwen3.8, NextnMode for GLM: Eager, Graph, Store) and its own feed type,
    and each MtpBody glue maps the shared WalkMode/Feed onto them one to one (crates/app/src/arch/qwen3moe/mtp.rs
    mtp_feed/mtp_mode, crates/app/src/arch/glm5next/mtp.rs nextn_feed/nextn_mode). After the lift, Mtp38, the
    GLM NextN layer and mtp35.rs take the shared types directly, and both glue files lose their mappings.
  • Body35's MtpBody glue 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from midagedev/bloomery

All issues in midagedev/bloomery

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.