_materialize_and_load_model 在模型参数完成 sharding 后调用 Transformers 模型自身的初始化逻辑。
_materialize_and_load_model
对于 Qwen3.5、Qwen3.5-MoE、Qwen3-Next 等包含 GatedDeltaNet 的模型, A_log 和 dt_bias 已经是本地 shard,但 Transformers _init_weights 仍按照全局 num_v_heads 创建临时 Tensor。
A_log
dt_bias
_init_weights
num_v_heads
例如:
init.copy_( module.A_log, torch.empty(module.num_v_heads, device=module.A_log.device) .uniform_(0.01, 16) .log_(), )
此时目标参数使用 local shape,源 Tensor 使用 global shape,导致 copy_ 报 shape mismatch。
此外,不同 Transformers 版本包含的模型集合不同。例如项目依赖的 Transformers 5.13 尚不包含 Qwen4Exp,直接导入相关实现会在测试收集或 运行期间触发 ModuleNotFoundError。
自定义初始化实现应位于对应模型目录中,避免引入跨模型共享的初始化组件。
Thanks for contributing 🎉!
Checklist
🐛 Describe the bug
_materialize_and_load_model在模型参数完成 sharding 后调用 Transformers模型自身的初始化逻辑。
对于 Qwen3.5、Qwen3.5-MoE、Qwen3-Next 等包含 GatedDeltaNet 的模型,
A_log和dt_bias已经是本地 shard,但 Transformers_init_weights仍按照全局
num_v_heads创建临时 Tensor。例如:
init.copy_( module.A_log, torch.empty(module.num_v_heads, device=module.A_log.device) .uniform_(0.01, 16) .log_(), )此时目标参数使用 local shape,源 Tensor 使用 global shape,导致
copy_ 报 shape mismatch。
此外,不同 Transformers 版本包含的模型集合不同。例如项目依赖的
Transformers 5.13 尚不包含 Qwen4Exp,直接导入相关实现会在测试收集或
运行期间触发 ModuleNotFoundError。
Expected behavior
Additional context
自定义初始化实现应位于对应模型目录中,避免引入跨模型共享的初始化组件。
Environment info
Thanks for contributing 🎉!