| [Feature][model]: Add MiniMax-M3 W8A8 quant Co-authored-by: tanxiangyuu<tanxiangyu2@huawei.com> # message auto-generated for no-merge-commit merge: !720 merge minimax_m3_master into master [Feature][model]: Add MiniMax-M3 W8A8 quant Created-by: tanxiangyuu Commit-by: tanxiangyuu Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [CONTRIBUTING.md](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](https://msmodelslim.readthedocs.io/zh-cn/latest/zh/development_guide/integrating_models) PR 标题前缀:[Feature](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 **输出件变更(按需):** 无 **非兼容变更(按需):** 无 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景:** MiniMax-M3(VL)是 MiniMax 最新发布的多模态大模型,采用稀疏 MoE + Dense 混合架构,支持 text/image/video 多模态输入。需要在 msmodelslim 中适配以支持 W8A8 量化。 **修改目的:** 支持 MiniMax-M3 模型的 W8A8 量化,包括 MoE 专家权重展开、RMSNorm 精度保持、稀疏注意力层检测、导出命名对齐等功能。 **修改内容:** - infra/模型适配:新增 MiniMax-M3 模型适配器,包括: - msmodelslim/model/minimax_m3/model_adapter.py — 核心适配器(layer-wise 加载、iter_smooth/QuaRot/导出等接口实现) - msmodelslim/model/minimax_m3/moe_utils.py — MoE 工具模块,将 transformers 原生 3D 专家权重展开为 per-expert nn.Linear(gate_proj/up_proj/down_proj) - msmodelslim/model/minimax_m3/loader.py — 适配器加载器 - config/config.ini — 注册 MiniMax-M3 模型类型映射 - app/最佳实践量化:新增 W8A8 最佳实践配置 lab_practice/minimax_m3/minimax_m3_w8a8.yaml,包含 iter_smooth + linear_quant 流程 - infra/子图配置:修复 iter_smooth 子图路径不匹配问题,yield 内部名而非保存名 - infra/稀疏层检测:修复 _is_sparse_layer 从自定义字段读取失败的问题,改为直接从原始 config.json 解析 sparse_attention_freq - infra/导出命名对齐:在 ascendv1_save_module_preprocess 中实现完整 SAVE 方向命名转换(model.language_model.* → language_model.model.*、mlp → block_sparse_moe、gate_proj → w1/w3/w2、vision_tower 嵌套展开、multi_modal_projector → patch_merge_mlp 等) - infra/RMSNorm 精度:将 Gemma-style RMSNorm 的 +1/-1 转换统一在 float32 精度下进行,消除 bf16 精度损失 - infra/e_score_correction_bias:修复 MoE 层 e_score_correction_bias 导出问题,buffer 转 parameter 确保被导出 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - **infra:模型适配、调优计划/历史/缓存、测评服务等** - utils:日志、错误处理、插件等 ## 3. 功能验证 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** bash # 量化命令 msmodelslim quant \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --device npu \ --model_type MiniMax-M3 \ --quant_type w8a8 \ --trust_remote_code True # 验证命令 mstool cmp --good-path ${GOOD_PATH} --eval-path ${SAVE_PATH} --backend msit ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [x] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [ ] 是否具备 UT 测试用例看护(路径:用例路径;未添加请说明原因) - [x] 是否需要添加冒烟:否(若「是」请说明冒烟场景及对应用途) See merge request: Ascend/msmodelslim!720 | 6 天前 |