| 【msmodelslim】【Feature】support hy3 w8a8 quant Co-authored-by: anreywmh<18845895998@163.com> # message auto-generated for no-merge-commit merge: !712 merge hy_3.0_a2_a3 into master 【msmodelslim】【Feature】support hy3 w8a8 quant Created-by: anreywmh Commit-by: anreywmh 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]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:若无变更请保留「无」;涉及 CLI、API、YAML 等请在此项补充说明。 **输出件变更(按需):** 无 > 备注:若无变更请保留「无」;涉及导出格式、产物路径等请在此项补充说明。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):**(问题现象、使用场景等) 0Day 支持HY3 W8A8 量化 **修改目的:**(本 PR 要达成什么目标) 0Day 支持HY3 W8A8 量化 **修改内容:**(按「概念 - 变化」分条,示例:core/算法:新增 SmoothQuant 离群值抑制) 1、接入HY3 model_adpter.py 2、给出HY3 W8A8量化最佳实践 3、补充支持HY3 W8A8量化资料 关键细节: 1、checkpoint中mlp.experts.*.gate_proj.weight + up_proj.weight是独立的, from_pretrained 读 safetensors 时被 fuse 为 gate_up_proj 是Parameter 的,无法量化需要转换 .解决手段:在量化某一 decoder layer 之前,如果该层的 MLP 还是 融合 MoE 结构,就先把它拆成逐专家的 nn.Linear,否则 linear_quant 无法按专家粒度量化,量化到第 N 层时才拆第 N 层的 MoE,有利于控制显存峰值。Hy3 约有 192 个专家,单层 MoE 权重量很大。在 NPU 上做 copy_ 通常比 CPU 更快。注意要将transformers处理后的e_score_correction_bias、shared_experts和gate,变为expert_bias、shared_mlp和router.gate 2、mtp在model.layers.80,但是config.num_hidden_layers等于80,需要处理MTP和mlp_layer_types 3、e_score_correction_bias要从buffer转为Parameter 4、mlp.gate要回退 5、名字得换回去: model.layers.1.mlp.expert_bias - model.layers.1.mlp.router.gate.weight - model.layers.1.mlp.shared_mlp.down_proj.weight - model.layers.1.mlp.shared_mlp.gate_proj.weight - model.layers.1.mlp.shared_mlp.up_proj.weight **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。  md5值一致  - [x] 功能自验 - [x] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** bash msmodelslim quant \ --model_path ${model_path} \ --save_path ${save_path} \ --device npu \ --model_type Hy3 \ --quant_type w8a8 \ --trust_remote_code True ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 NA - [ ] 是否未采集或打印敏感信息 NA - [ ] 是否已正确设置文件权限 NA - [ ] 是否充分考虑浮点运算溢出、除零等异常场景 NA - [ ] 是否已对正则表达式做 ReDos 检查 NA **DT** - [ ] 是否具备 UT 测试用例看护(路径:用例路径;未添加请说明原因) NA - [ ] 是否需要添加冒烟:否(若「是」请说明冒烟场景及对应用途) NA See merge request: Ascend/msmodelslim!712 | 21 天前 |