Conversation
There was a problem hiding this comment.
Pull request overview
This PR fixes a compatibility break between ATOM’s Qwen3.5/Qwen3.5-MoE model configs and newer transformers RoPE validation logic by ensuring ignore_keys_at_rope_validation is provided as a set (so set-union operations in transformers don’t raise a TypeError).
Changes:
- Update Qwen3.5 text config to set
ignore_keys_at_rope_validationas asetinstead of alist. - Update Qwen3.5-MoE text config to set
ignore_keys_at_rope_validationas asetinstead of alist.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
atom/model_config/qwen3_5.py |
Switch ignore_keys_at_rope_validation from list to set to satisfy transformers RoPE validation expectations. |
atom/model_config/qwen3_5_moe.py |
Switch ignore_keys_at_rope_validation from list to set to satisfy transformers RoPE validation expectations. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Hi @valarLip @ganyi1996ppo, the CI checks have failed again on re-run. The consistently failing tests ( |
Fix Qwen3.5 RoPE validation ignore keys type
Summary
This PR fixes a compatibility issue in the Qwen3.5 and Qwen3.5-MoE model configs when running ATOM with newer versions of
transformers.The affected configs set
ignore_keys_at_rope_validationas alist, but the latesttransformersRoPE validation code treats this field as asetand performs a set union with{"partial_rotary_factor"}. This causes ATOM standalone mode to fail with:Upstream Context
This failure was exposed by Hugging Face Transformers PR #41250, which introduced stricter config attribute validation and updated the RoPE validation path to union
ignore_keys_at_rope_validationwith{"partial_rotary_factor"}.The upstream change is reasonable because the RoPE validation code now expects
ignore_keys_at_rope_validationto behave like a set. Instead of changing or pinningtransformers, this PR fixes ATOM's Qwen3.5 configs to provide the expected type.Root Cause
atom/model_config/qwen3_5.pyandatom/model_config/qwen3_5_moe.pyinitialized:In newer
transformers,modeling_rope_utils.pylater executes:That operation requires
self.ignore_keys_at_rope_validationto be a set-like value.Fix
Change both Qwen3.5 config definitions from list literals to set literals:
This preserves the same ignored RoPE validation keys while matching the type expected by
transformers.Reproduction
The issue can be reproduced with the standalone ATOM path using the following quick script:
With the list-based
ignore_keys_at_rope_validation, the config construction fails with:The reproducer also documents the impact scope: this affects ATOM standalone mode (
atom.entrypoints.openai_server) and does not affect the SGLang plugin mode, where SGLang handles config parsing.Validation