[GPT-OSS] Save extra_weight_attrs and use at load_weights time for Marlin kernel#25694
[GPT-OSS] Save extra_weight_attrs and use at load_weights time for Marlin kernel#25694SumanthRH wants to merge 1 commit into
extra_weight_attrs and use at load_weights time for Marlin kernel#25694Conversation
Signed-off-by: SumanthRH <sumanthrh99@gmail.com>
|
This pull request has merge conflicts that must be resolved before it can be |
|
👋 Hi! Thank you for contributing to the vLLM project. 💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels. Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run You ask your reviewers to trigger select CI tests on top of Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging. To run CI, PR reviewers can either: Add If you have any questions, please reach out to us on Slack at https://slack.vllm.ai. 🚀 |
|
After merging the latest changes from �[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m Size of the original param: torch.Size([32, 192, 6144]) and size of the weights: torch.Size([32, 2880, 2880]). Weight name layers.0.mlp.experts.w13_weight, shard id: None, expert id: None
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] Error executing method 'update_weight'. This might cause deadlock in distributed execution.
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] Traceback (most recent call last):
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/worker/worker_base.py", line 267, in execute_method
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] return run_method(self, method, args, kwargs)
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/utils/__init__.py", line 3120, in run_method
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] return func(*args, **kwargs)
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] ^^^^^^^^^^^^^^^^^^^^^
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/tmp/ray/session_2025-09-22_21-51-17_467991_5804/runtime_resources/working_dir_files/_ray_pkg_0f73825f40a62504/rlhf_utils.py", line 61, in update_weight
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] self.model_runner.model.load_weights(weights=[(name, weight)])
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/model_executor/models/gpt_oss.py", line 698, in load_weights
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] return loader.load_weights(weights, mapper=self.hf_to_vllm_mapper)
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/model_executor/models/utils.py", line 291, in load_weights
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] autoloaded_weights = set(self._load_module("", self.module, weights))
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/model_executor/models/utils.py", line 249, in _load_module
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] yield from self._load_module(prefix,
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/model_executor/models/utils.py", line 222, in _load_module
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] loaded_params = module_load_weights(weights)
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/model_executor/models/gpt_oss.py", line 612, in load_weights
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] return self._load_weights_mxfp4(ep_rank_end, ep_rank_start,
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/model_executor/models/gpt_oss.py", line 379, in _load_weights_mxfp4
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] weight_loader(param,
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] File "/home/ray/default/vllm/vllm/model_executor/layers/fused_moe/layer.py", line 1405, in weight_loader
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] param.data[:, :dim1, :dim2].copy_(loaded_weight)
�[36m(MyLLM pid=3289321)�[0m �[1;36m(EngineCore_DP0 pid=3289559)�[0;0m �[36m(RayWorkerWrapper pid=3290143)�[0m ERROR 09-25 17:50:00 [worker_base.py:275] RuntimeError: The size of tensor a (192) must match the size of tensor b (2880) at non-singleton dimension 1will update the PR with a fix for this |
|
@SumanthRH Do you have an update on this? Seeing issues related to running vLLM in huggingface with GRPOTrainer that is related to this i believe. |
|
@SumanthRH Any update on this issue? |
|
Any updates @KirillShmilovich @SumanthRH |
Purpose
Weight loading with GPT-OSS is broken : #23577
The issue is that we assign
weight_loaderattributes to the parameters inGPTOSSModuleat init time, but while loading new weights, we create a newParameterobject which no longer has this attribute.This PR resolves the above issue, and weights can be loaded successfully now. However, the responses are garbage because weight loading for the bias terms in experts
gate_up_proj_biasanddown_proj_biasare broken.This PR has only tested weight syncing when the quantization method is of type
Mxfp4MoEMethodwithuse_marlinTrue, since that seems to be the default path on Hopper. (correct me if I'm wrong)Test Plan
I modified the existing example
examples/offline_inference/rlhf.pyto use gpt-oss and simply reload the original weights.Test Result
On the latest vllm version, this will fail with the same error in #23577 . With the fixes in this PR, the script runs successfully.
Generations before weight loading
Generations after the fix in this PR
Generations after the fix in this PR, and skipping weight update for the bias terms
Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model.