vllm - 💡(How to fix) Fix [Bug]: In_proj_ba of GDN in Qwen3Next use MergeColumnParallelLinear may cause accuracy decrease? [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
vllm-project/vllm#37271Fetched 2026-04-08 00:48:25
View on GitHub
Comments
0
Participants
1
Timeline
1
Reactions
0
Participants
Timeline (top)
labeled ×1

Code Example

Your output of `python collect_env.py` here
RAW_BUFFERClick to expand / collapse

Your current environment

<details> <summary>The output of <code>python collect_env.py</code></summary>
Your output of `python collect_env.py` here
</details>

🐛 Describe the bug

I found that in_proj_ba is a MergeColumnParallelLinear now, and it was a ColumnParallelLinear before. It leads to a different way of weight loading. And it will cause accuracy decrease on gsm8k dataset.

Before submitting a new issue...

  • Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

extent analysis

Fix Plan

The fix involves modifying the weight loading process to accommodate the change from ColumnParallelLinear to MergeColumnParallelLinear.

Step-by-Step Solution

  • Identify the weight loading code for in_proj_ba and modify it to match the MergeColumnParallelLinear structure.
  • Update the weight loading logic to handle the merged columns.

Example code snippet:

# Assuming in_proj_ba is a MergeColumnParallelLinear module
in_proj_ba = MergeColumnParallelLinear(...)

# Load weights for in_proj_ba
def load_weights(state_dict, in_proj_ba):
    # Get the weight and bias for the merged column
    weight = state_dict['in_proj_ba.weight']
    bias = state_dict['in_proj_ba.bias']
    
    # Split the weight and bias into separate columns
    num_columns = in_proj_ba.num_columns
    weight_list = torch.split(weight, num_columns, dim=0)
    bias_list = torch.split(bias, num_columns, dim=0)
    
    # Load the weights and biases into the in_proj_ba module
    for i, (weight_col, bias_col) in enumerate(zip(weight_list, bias_list)):
        in_proj_ba.columns[i].weight.data.copy_(weight_col)
        in_proj_ba.columns[i].bias.data.copy_(bias_col)

# Call the load_weights function
load_weights(state_dict, in_proj_ba)

Verification

Verify that the accuracy on the gsm8k dataset has improved after applying the fix. Run the model with the updated weight loading code and compare the results with the previous accuracy.

Extra Tips

  • Make sure to update the documentation and tests to reflect the changes in the weight loading process.
  • Consider adding a check to ensure that the in_proj_ba module is indeed a MergeColumnParallelLinear instance before attempting to load the weights.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING