执行摘要
本PR修复了Qwen3-Next FP8模型在加载权重时因weight_loader属性为只读而导致的AttributeError,通过引入助手函数_override_weight_loader正确处理量化参数,使模型能正常启动,影响限于该模型类型。
功能与动机
Issue #21638报告了在加载Qwen/Qwen3-Coder-Next-FP8权重时出现的bug,错误信息为AttributeError: property 'weight_loader' of 'ModelWeightParameter' object has no setter。原因是BasevLLMParameter.weight_loader是只读属性,无法直接赋值,导致量化模型加载失败。
实现拆解
修改文件python/sglang/srt/models/qwen3_next.py,主要改动包括:
评论区精华
由于没有正式review评论,Issue评论中ranjiewen提出:“how to deal with 'weight_scale_inv' parameter?”,该问题未在PR中直接解决,表明可能还有其他量化相关参数需后续处理。
风险与影响
风险:助手函数需准确区分量化与非量化参数,否则可能引发其他模型加载错误;但现有测试(如test_qwen3_next_models.py)已覆盖,回归风险低。
影响:修复后,Qwen3-Coder-Next-FP8模型可正常加载,提升了量化模型支持;系统其他部分不受影响,团队解决了特定部署问题。
关联脉络
与PR #21234(支持AMD MXFP4 Qwen3.5模型)相关联,两者都涉及Qwen系列模型的量化权重加载,显示了项目在扩展量化格式支持上的持续努力。近期历史PR中,量化相关变更频繁,如PR #21625和#18461,反映了对FP8、MXFP等量化技术的重视。
参与讨论