record(MODEL-TEXT-qwen3-5-qwen3-5-for-causal-lm): the backbone-prefix comment cites a mapper that does not exist at ad5d29db70
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 our555967922parity 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
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.
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