mudler / mudler/vllm.cpp

record(MODEL-TEXT-qwen3-5-qwen3-5-for-causal-lm): the backbone-prefix comment cites a mapper that does not exist at ad5d29db70

Open Beginner friendly
#2,654 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
423
Forks
53
Avg merge
20h 26m
Merged PRs (30d)
310

Description

Row: MODEL-TEXT-qwen3-5-qwen3-5-for-causal-lm

Found by #2647 (PORT-NOW wave
PORTQ-3, tranche 81-120). Nothing was executed. This is a record defect, not a
behaviour defect: the code is correct and its citation is not.

The claim, and why it is false

include/vllm/model_executor/models/qwen3_5_weights.h:1050-1054 says:

Upstream normalizes the two with ONE mapper —
WeightsMapper(orig_to_new_prefix={"model.language_model.": "model."})
(vllm/model_executor/models/qwen3_5.py:296-300 @ ad5d29db7, PR #50210,
which is AHEAD OF our 555967922 parity pin and recorded as such)

At ad5d29db70 there is no such mapper. Read at the revision:

$ git show ad5d29db70:vllm/model_executor/models/qwen3_5.py | sed -n '290,300p'
    packed_modules_mapping = {
        "qkv_proj": [ "q_proj", "k_proj", "v_proj", ],
        "gate_up_proj": ["gate_proj", "up_proj"],
        # GDN fused projections.
        "in_proj_qkvz": ["in_proj_qkv", "in_proj_z"],
        "in_proj_ba": ["in_proj_b", "in_proj_a"],
    }

Lines 296-300 are the tail of packed_modules_mapping. The one
hf_to_vllm_mapper that exists at ad5d29db70 is at :214 on the model
class, and it carries orig_to_new_stacked GDN fusions, not a prefix rewrite.

The mapper the comment quotes is introduced by febea17f6a, PR #50355
("Fix weight prefix mapping for native Qwen3.5 text-only checkpoints"), at
qwen3_5.py:309:

    hf_to_vllm_mapper = WeightsMapper(
        orig_to_new_prefix={"model.language_model.": "model."},
    )

What is NOT wrong

The behaviour. This tree resolves the two namespaces by the opposite mechanism —
ResolveQwen3_5BackbonePrefix
(src/vllm/model_executor/models/qwen3_5_weights.cpp:1430-1448) picks the
prefix once from the shard index and threads it through the load, and it refuses
a mixed index, which is stricter than upstream's mapper. Both published
spellings load, so febea17f6a is ALREADY_SATISFIED for this tree and this
issue is only the citation.

Why it is worth an issue rather than a silent fix

The comment carries a specific and checkable assertion — a file, a line range, a
SHA and a PR number — and a reader grounding a Qwen3.5 loader decision in it
would read the wrong upstream. It is the same shape as the two stale comments
.agents/sync/2026-09-01-cdefd9d.md §13 records under "two comments whose
premise upstream falsified": the conclusion holds and the premise does not.

Fix

Re-anchor the comment to qwen3_5.py:305-311 @ febea17f6a, PR #50355, and say
that the tree reaches the same outcome by prefix resolution rather than by a
mapper. ~4 lines of comment.

.agents/porting-inventory.md:1665-1672 already owes re-anchoring of this row's
ad5d29db70 anchor to #2524,
and names febea17f6a in the list of eight commits that moved qwen3_5.py
after it. That passage records that the anchor is behind; it does not record
that this particular citation is wrong, which is what this issue adds.

Contributor guide

Open the contributing guide

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.

Research direction

Start at include/vllm/model_executor/models/qwen3_5_weights.h:1050-1054 and verify the cited upstream revision against febea17f6a, qwen3_5.py:305-311, and PR #50355. Done means the comment cites the mapper where it was introduced and accurately distinguishes it from this tree's ResolveQwen3_5BackbonePrefix path; no behavior change is needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
documentation
Issue type
Documentation
Difficulty
1/5
Estimated time
Under an hour
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
91/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.