Repository navigation
qwen38 serve and qwen4exp MTP gates: the floor band and the deep plain walk rest on premises that hold - #1147
Conversation
…n walk rest on premises that hold The saved-state reserve the host floor counts now follows the context, so the two-slot floor at one position no longer sits over the one-slot floor at the gate's full context. The paged clause's band is now between the one-slot and two-slot floors at one position, where a second slot is what raises the floor. (z) plain rounds needed a drafted pass that keeps more than one row right before a plain pass, which the fixed passes left to where the draft's acceptances fell. Each slot's passes now end with the drafted passes its window run alone takes to its first acceptance, then a plain pass that walks those rows.
There was a problem hiding this comment.
Verdict: CLEAN: The changed gates preserve their assertions; no must-fix defect was found.
Non-blocking
⚠ MTP run evidence: crates/gpu-gates/src/bin/gate_qwen4exp_mtp.rs:6665.
The PR records only the serve plain arm. Add real- and fixture-tier just gate-gpu-qwen4exp-mtp output, the old schedule's failure, and the repaired (z) result at the reviewed commits. This establishes the multirow case before other changes rely on it.
Checked
Duplicates: 3 new items checked (Pass, DEEP_TRIES, plain_passes); none duplicated. No dryer pairs were available.
Complexity: slots_windows 60 → 61; added schedule iteration, with no new decision policy.
Silent failure: 3 sites followed. No acceptance produces no tail; the real-tier deep > 0 assertion still fails when no multirow walk ran. Missing tail entries intentionally omit that slot.
Tests: static mutation audit only. Dropping the floor refusal at crates/placement/src/placement/room.rs:764 makes floor discovery error. Truncating gathered tokens at crates/app/src/mtp.rs:686 to one row makes the real-tier draft-store comparison fail.
Gates: one floor-band edge moved with PIN(2026-11-03), reason and card output. All 12 fixed MTP passes and the deep-walk assertion remain.
Adversarial: inactive-pass compaction and all bounded tail alignments preserve per-slot order; the supplied prompts leave context room for the probes. No engine hot path changed.
Escape catalog: no C1–C4 match.
Notes
Dryer did not run: diagnostics says no changed Rust file is under crates/, although both changed files are there.
GPU gates were not run here. The recorded run hashes differ from the supplied base/head, and no MTP run output is present.
Card check: needs-gpu. This pull request changes crates/gpu-gates/src/bin/gate_qwen38_serve.rs, crates/gpu-gates/src/bin/gate_qwen4exp_mtp.rs and carries no gate run on a card (CONTRIBUTING's evidence list); a maintainer adds gpu-verified after one.
🔨 Shingler, bloomery's review bot: approves a clean pull request and requests changes on a must-fix (how it works)
|
The review is done and the contribution check passed, so I'm merging this. |
Qwen3.8 서빙 게이트의 하한 구간과 MTP 게이트의 plain 걷기가 입력 내용에 기대지 않도록 고친 PR입니다.
What and why
Two Qwen3.8 gates assumed things that do not hold on every card or input. In
gate_qwen38_serve, the paged clause's band started at the one-slot floor atCTX. The saved-state reserve the floor counts follows the context, so the two-slot floor at one position fell under that edge and the band was empty. The band now starts at the one-slot floor at one position, so both edges use the same context and the band is what the second slot adds. Ingate_qwen4exp_mtp, the (z) plain rounds needed a drafted pass keeping more than one row right before a plain pass of the same slot, and the fixed schedule left that to where the draft's acceptances fell. A newplain_passesreads the passes each window takes when run alone and appends the first one that keeps more than one row, followed by a plain pass.Refs #1143
Release notes: internal: two gate clauses stop depending on card-specific floors and on where the draft's acceptances fall.
Code shape
The review reads these first. A box left unticked needs one line of why.
copying it (
AGENTS.md"Common code first",docs/rust-quality.mdR14). Where I found an existing copy, Inamed it below.
(tensor shapes, the attention kind, the quant). A common owner gained no per-model branch, flag or trait method.
tools/check-comments.sh).PIN(YYYY-MM-DD):and its reason.
cargo fmtandcargo clippyare clean on what I touched; the lint count did not go up.Duplication found or removed (
path:line), or "none": none.What I ran
Base
e845a6a67a83ea677965f2c29045278898164e86, PR head6eceeb66b63cac8a29a4697f317759474d97b23a.Clippy ratchet on the head (
cargo clippy --workspace --all-targetswith the gate feature set):Card:
Model:
Qwen3.8-Flash-Next-UD-Q4_K_XL-0000[1-4]-of-00004.gguffromunsloth/Qwen3.8-Flash-Next-GGUFat revision766911a6b7369840a91dbcd95f9f997acaab6cd6, folderUD-Q4_K_XL. SHA-256 of shard 1:4448186216b3af4cc558bbce2c3213f01608f8f8b2e5267a9767971dd3ec8082.The paged clause, real tier, plain arm:
The one-slot floor at one position (10,641,443,968 B) is under the two-slot floor (10,975,971,584 B), so the band is non-empty. The failure #1143 reported was the two-slot floor under the one-slot floor at
CTX.Hardware (if the change is for a machine)
NVIDIA GeForce RTX 5090, driver 595.99.02, CUDA 13.2, 32607 MiB.
AI help
AI 코딩 에이전트가 코드를 작성한 후 설명을 썼고, 테스트를 마쳤습니다. diff 리뷰와 PR 초안 리뷰는 제가 직접 했습니다.