MindStudio-ModelSlim(msModelSlim)是MindStudio全流程工具链推出的模型量化压缩工具。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Feature] 引入基于 DevContainer 的高效开发环境 Co-authored-by: LeeQT<liqitong@huawei.com> # message auto-generated for no-merge-commit merge: !940 merge dev/devcontainer-env into master [Feature] 引入基于 DevContainer 的高效开发环境 Created-by: LeeQT Commit-by: LeeQT Merged-by: ascend-robot Description: PR 标题前缀:[Feature] ## 1. 影响面评估 **接口变更:** 无 **输出件变更:** 无 **非兼容变更:** 无 **SIG 评审结论:** 无 ## 2. 修改描述 **修改背景:** 开发者需按 MSOT 指南手动拉镜像并用 ctr_in.py 初始化,才能复现与 CI 一致的环境,成本高。 **修改目的:** 提供 VS Code Dev Container 底座,在 MindStudio 标准构建镜像中一键拉起与 CI 一致的环境。 **修改内容:** - devcontainer:新增 .devcontainer(devcontainer.json / initialize.sh / init.sh / post-create.sh / README.md),引用 SWR 预置镜像、固定 /workspace 挂载、缓存 bind 持久化、初始化分步日志与 pre-commit 后台预热 - .vscode:新增 tasks / launch / settings,封装构建、UT、Lint 任务与 Python 调试 - 治理:补充 .gitignore;.gitattributes 强制 *.sh 用 LF;.pre-commit-config.yaml 对 devcontainer/.vscode 的 JSONC 豁免 check-json - 单测:UT 任务自动先装测试依赖,规避 No module named pytest ## 3. 功能验证 - [x] 功能自验(离线:bash -n、JSONC 解析、文档公共清单已通过;容器内 UT 冒烟待真机验证) - [x] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤:** bash # VS Code:Dev Containers: Reopen in Container # Terminal → Run Task → msmodelslim: UT reduced (modelslim_v1) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据:N/A(仅 shell/JSONC 配置,无外部输入解析) - [x] 是否未采集或打印敏感信息:是(仅把宿主 git 身份同步到容器内 .gitconfig) - [x] 是否已正确设置文件权限:是(脚本 100755、.host-gitconfig 600、容器内数据副本 640) - [x] 是否充分考虑浮点运算溢出、除零等异常场景:N/A - [x] 是否已对正则表达式做 ReDos 检查:N/A(仅 openEuler repo URL 前缀替换) **DT** - [x] 是否具备 UT 测试用例看护:未新增(改动仅 devcontainer/构建脚本,不影响产品逻辑;既有 UT 与 CI 冒烟不变) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!940 | 1 个月前 | |
[Doc] 重组中文资料目录并同步导航与链接 Co-authored-by: joejoezhou<zhourongchen1@huawei.com> # message auto-generated for no-merge-commit merge: !761 merge feature/docs-dirs into master [Doc] 重组中文资料目录并同步导航与链接 Created-by: joejoezhou Commit-by: joejoezhou Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 **输出件变更(按需):** 无 **非兼容变更(按需):** 无 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景(可选):** 中文资料目录层级混乱,流程与概念混杂,导航与相对链接随历史迁移积累了失效路径。 **修改目的:** 重组 docs/zh 目录结构,统一以流程指南/知识库/案例参考三类文档分层,并同步导航、索引与全库相关链接。 **修改内容:** - docs:新增推理加速知识库 knowledge_base,按 knowledge_base / user_guide / contributing / api_reference / best_practices / legal 重组中文资料 - docs:每个算法单独子目录、每个调优策略单独子目录、每个量化格式单独子目录 - docs:更新流程指南,区分业务流程和工具使用流程;算法总览补齐子算法 - docs:修复迁移后失效/过时链接,同步 mkdocs 导航(仅改路径,顶层序号与 master 一致) - docs:按评审意见修正相对路径、书名号外层、文档链接书名号与完整句句号 - docs:PR 模板中模型接入路径对齐新目录;清除 V0 案例残留 ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据(N/A) - [x] 是否未采集或打印敏感信息(N/A) - [x] 是否已正确设置文件权限(N/A) - [x] 是否充分考虑浮点运算溢出、除零等异常场景(N/A) - [x] 是否已对正则表达式做 ReDos 检查(N/A) **DT** - [x] 是否具备 UT 测试用例看护(路径:用例路径;未添加请说明原因):文档重组,无代码逻辑变更,不新增 UT - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!761 | 3 个月前 | |
[Feature] 引入基于 DevContainer 的高效开发环境 Co-authored-by: LeeQT<liqitong@huawei.com> # message auto-generated for no-merge-commit merge: !940 merge dev/devcontainer-env into master [Feature] 引入基于 DevContainer 的高效开发环境 Created-by: LeeQT Commit-by: LeeQT Merged-by: ascend-robot Description: PR 标题前缀:[Feature] ## 1. 影响面评估 **接口变更:** 无 **输出件变更:** 无 **非兼容变更:** 无 **SIG 评审结论:** 无 ## 2. 修改描述 **修改背景:** 开发者需按 MSOT 指南手动拉镜像并用 ctr_in.py 初始化,才能复现与 CI 一致的环境,成本高。 **修改目的:** 提供 VS Code Dev Container 底座,在 MindStudio 标准构建镜像中一键拉起与 CI 一致的环境。 **修改内容:** - devcontainer:新增 .devcontainer(devcontainer.json / initialize.sh / init.sh / post-create.sh / README.md),引用 SWR 预置镜像、固定 /workspace 挂载、缓存 bind 持久化、初始化分步日志与 pre-commit 后台预热 - .vscode:新增 tasks / launch / settings,封装构建、UT、Lint 任务与 Python 调试 - 治理:补充 .gitignore;.gitattributes 强制 *.sh 用 LF;.pre-commit-config.yaml 对 devcontainer/.vscode 的 JSONC 豁免 check-json - 单测:UT 任务自动先装测试依赖,规避 No module named pytest ## 3. 功能验证 - [x] 功能自验(离线:bash -n、JSONC 解析、文档公共清单已通过;容器内 UT 冒烟待真机验证) - [x] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤:** bash # VS Code:Dev Containers: Reopen in Container # Terminal → Run Task → msmodelslim: UT reduced (modelslim_v1) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据:N/A(仅 shell/JSONC 配置,无外部输入解析) - [x] 是否未采集或打印敏感信息:是(仅把宿主 git 身份同步到容器内 .gitconfig) - [x] 是否已正确设置文件权限:是(脚本 100755、.host-gitconfig 600、容器内数据副本 640) - [x] 是否充分考虑浮点运算溢出、除零等异常场景:N/A - [x] 是否已对正则表达式做 ReDos 检查:N/A(仅 openEuler repo URL 前缀替换) **DT** - [x] 是否具备 UT 测试用例看护:未新增(改动仅 devcontainer/构建脚本,不影响产品逻辑;既有 UT 与 CI 冒烟不变) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!940 | 1 个月前 | |
【msmodelslim】刷新文件头部声明和版权 Co-authored-by: caishengcheng<caishengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !28 merge license into master 【msmodelslim】刷新文件头部声明和版权 Created-by: caishengcheng Commit-by: caishengcheng Merged-by: ascend-robot Description: 【msmodelslim】刷新文件头部声明和版权 See merge request: Ascend/msmodelslim!28 | 9 个月前 | |
【Feature】支持GLM5.3-Flash W8A8 量化 (A3/A5) Co-authored-by: qq_46439621<wanlongze1@huawei.com> # message auto-generated for no-merge-commit merge: !912 merge glm53_flash_quant into master 【Feature】支持GLM5.3-Flash W8A8 量化 (A3/A5) Created-by: qq_46439621 Commit-by: qq_46439621 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) **PR 标题**:[Feature] 新增 GLM-5.3-Flash(glm_5_next)模型适配、量化配置与文档及 UT **对应提交**: - 771bcdd8102d5172a3a222ca8c7e570667c9851c [Feature] 新增 GLM-5.3-Flash(glm_5_next)模型适配、量化配置与文档及 UT - 6434cad668fa2c512c3b91589e01b93277a09291 【Fix】glm_5_next KDA 门控投影与 kpool compress_gate 补入平滑/fold/旋转 targets,包装 gate 为 nn.Linear 修复 DTS 校验 ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:新增模型为纯增量注册(config/config.ini 新增 glm_5_next 条目),不修改既有模型条目、CLI 参数与处理器接口;QuaRotProcessor 等公共代码零改动(含后置 Fix 提交,全部改动收敛在 msmodelslim/model/glm_5_next/ 目录与配置/文档内)。 **输出件变更(按需):** 无 > 备注:量化产物格式沿用现有 ascendv1_saver(分片 + index + description);visual 塔不参与量化,以 BF16/FLOAT 权重随常规分片导出,与 qwen3_vl / glm4_6v 等多模态模型导出方式一致。DSA 层 indexer.index_kpool_compress_gate 导出 key 与原始 checkpoint 完全一致(无 .weight 后缀),由保存前置钩子拆回裸 Parameter 保证。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):** GLM-5.3-Flash 为混合架构多模态大模型(DSA/MLA 注意力层 + Linear Attention 层 + MoE 稀疏层 + MTP 预测层 + ViT 视觉塔),且 HF 侧发布 FP8 checkpoint。原先 msModelSlim 不支持该模型,无法量化与部署;其混合注意力结构(per-expert unstack、HC 残差、indexer、MTP)也无法直接复用 glm_5 / glm_5_2 适配器。适配过程中另发现两类阻塞量化流程的结构问题:KDA/DSA 层门控投影未参与平滑补偿与 γ-fold(导出后门控分数错误)、DSA 层 indexer 的 index_kpool_compress_gate 为裸 nn.Parameter,触发 DTS 依赖校验失败(SchemaValidateError 203),已在后置 Fix 提交一并修复。 **修改目的:** 接入 GLM-5.3-Flash,支持 W8A8 动态量化与 BF16/FP8 浮点权重 → MXFP8(W8A8) 离线权重转换,量化产物可在 vLLM_Ascend(Atlas A2 / A3)部署推理。 **修改内容:**(按「概念 - 变化」分条) - infra/模型适配:新增 msmodelslim/model/glm_5_next/ 模型目录 - loader.py:Glm5NextAdapterLoader 注册入口; - model.py:Transformer 结构定义,骨架模型仅含 1 层模板 + 按需懒加载各层,避免一次性加载全部层的内存开销; - model_adapter.py:模型适配器(层懒加载调度、MTP 预处理、FP8→BF16 权重自动转换、indexer 旋转移除等);visual 塔经 _attach_visual_module 挂载为纯 Parameter 树(model.visual.*),不参与量化,导出为 FLOAT 权重; - quarot.py:QuaRot 旋转映射,覆盖 DSA/Linear Attention 双路注意力、MoE per-expert、MTP 层、mHC 残差与 indexer 路径; - mtp_quant_module.py:MTP 层量化模块。 - infra/模型适配(Fix,KDA 层):Linear Attention 层的三个门控投影 b_proj / forget_gate.f_a_proj / g_a_proj 与 q/k/v 同吃 input_layernorm 输出,补入 input_norm_targets 与 get_ln_fuse_map,平滑迁移与 γ-fold 后导出权重不再缺失 norm 折叠补偿;同时移除 KDA 层非法 ov 子图(o_norm 的逐头 RMS 归一化对 per-channel scale 不满足线性,v/o 间 scale 迁移无法保持数学等价,且 _apply_standard_ov_smooth 的 DSA/MLA 头参数分组与 KDA 的 linear_num_heads 结构不符),KDA 层仅保留 norm-linear + linear-linear 子图。 - infra/模型适配(Fix,DSA 层 kpool gate):indexer.index_kpool_compress_gate 为裸 nn.Parameter(deploy 侧 F.linear(norm(x), compress_gate),等价无 bias Linear),与 wk/weights_proj 同吃 input_layernorm 输出。新增 _layer_has_kpool_compress() 判断(config index_kpool > 1 且 index_kpool_compress 为 True),将其补入 input_norm_targets、get_ln_fuse_map 与 get_rotate_map 右旋条目,不参与补偿/旋转则导出后 kpool 门控分数错误。 - infra/模型适配(Fix,裸 Parameter 与 DTS 校验):加载后将裸 Parameter gate 包装为 nn.Linear,保存前拆回,修复 DTS submit 校验(get_submodule 对非 nn.Module 抛 SchemaValidateError 203): - _wrap_bare_param_gate():在 init_model / load_decoder_if_not_exist 的 load_state_dict 与 auto_convert 之后包装(get_state_dict 仍按裸参数名对齐 weight_map,加载语义不变),形状 (head_dim, hidden_size) 与 nn.Linear(hidden_size, head_dim).weight 对齐;新版 torch __setattr__ 禁止向已注册为 Parameter 的名字赋 Module,先解除 _parameters 注册再赋值。包装后 DTS submit/run 校验、flex_smooth 平滑、QuaRot 旋转、LN fold 等公共链路均按标准 nn.Linear 路径工作; - ascendv1_save_module_preprocess():saver 遍历到 Indexer 时拆回裸 Parameter,导出 key(index_kpool_compress_gate,无 .weight 后缀)与原始 checkpoint 一致;分布式 saver 物化列表中的残留 gate 条目替换为哑模块,避免多写出一份 .weight。 - infra/模型注册:config/config.ini 新增 glm_5_next = GLM-5.3-Flash 模型条目、loader entry point 与 transformers==5.16.0 版本约束。 - app/最佳实践:新增 lab_practice/glm_5_next/ 两份配置 - glm_5_next_w8a8.yaml:W8A8 动态量化(quarot 离线旋转 + flex_smooth_quant + linear_quant,per_token/per_channel int8 对称 minmax),verified_tags 覆盖 vLLM_Ascend × Atlas A2/A3; - glm_5_next_convert_mxfp8.yaml:BF16/FP8 → MXFP8(W8A8) 纯权重离线转换。match 列表精确对齐到仓库实际的 FP8 线性节点(mlp / shared_experts / experts / q_a / q_b / kv_a),不引入对 BF16 节点(如 o_proj、kv_b_proj、indexer.*、f_*/g_*/b_*、k/q/v_conv1d、norm、embed、lm_head、ViT)的额外量化。FP8 输入下基本无损:源 F32 scale 全为 2 的整数幂可精确映射 E8M0、指数范围不溢出、元素同为 E4M3、block 128→32 重排无信息丢失;BF16 输入走标准 BF16 → MXFP8 路径。 - docs:补充 GLM-5.3-Flash 中文资料 - example/GLM-5/README.md:支持矩阵新增 GLM-5.3-Flash 行;新增 W8A8 一键量化、浮点权重转 MXFP8 命令小节;标注 transformers==5.16.0 依赖; - docs/zh/knowledge_base/model/README.md:GLM5-MOE 系列行 rowspan 由 3 改为 4,并新增 GLM-5.3-Flash 行; - docs/zh/knowledge_base/parallel/README.md:EP 适配器表新增 GLM5NextModelAdapter → GLM-5.3-Flash。 关键设计点(不修改公共代码): - visual merger 输出投影左旋放入主阶段 rot_pairs,由 post_run 的裸 Parameter 回退分支执行;pre_run 首命令保持 embed_tokens 模块路径,global_rotation 导出 hook 注入逻辑与 qwen2_5_vl 等 VL 模型一致,公共 QuaRotProcessor 无需改动。 - 裸 Parameter gate 的兼容完全收敛在模型适配层:量化链路运行期间 gate 为标准 nn.Linear,保存时经 ascendv1_save_module_preprocess 钩子(AscendV1SaveInterface 正式接口)拆回,平滑/旋转/fold/调度等公共处理器零改动。 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 (本 PR 涉及概念域:infra/模型适配、app/最佳实践、docs) ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** 输入支持 BF16 与 FP8 两种 checkpoint,FP8 权重由适配器自动转 BF16 后再量化或转换。 bash # 0. 环境准备(拉取本 PR 分支并安装) git clone https://gitcode.com/qq_46439621/msmodelslim.git cd msmodelslim git fetch origin git checkout glm53_flash_quant bash install.sh cd .. # 1. A3:W8A8 量化(8 卡 NPU) export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 msmodelslim quant \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --device npu:0,1,2,3,4,5,6,7 \ --model_type GLM-5.3-Flash \ --quant_type w8a8 \ --trust_remote_code True # 2. 浮点权重(BF16 / FP8)→ MXFP8 离线权重转换(modelslim_convert 协议) # 2a. CPU 转换(纯权重重排无需 NPU,YAML 内 parallel.workers: 8 为 CPU 进程数) msmodelslim convert \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --config_path lab_practice/glm_5_next/glm_5_next_convert_mxfp8.yaml \ --device cpu # 2b. NPU 多卡转换(CLI 指定卡号时进入 npu_multi 模式:每卡一个子进程、组间动态 # 负载均衡,AscendV1 落盘时 worker 直接写盘,适合更快转换大模型) msmodelslim convert \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --config_path lab_practice/glm_5_next/glm_5_next_convert_mxfp8.yaml \ --device npu:0,1,2,3,4,5,6,7 W8A8 多卡量化链路已验证通过:DSA 层 kpool gate 包装后 DTS submit/run 依赖校验正常(此前 SchemaValidateError 203 已消除),flex_smooth 平滑、QuaRot 旋转与 LN fold 全流程走通。 ## 4. 自检(请逐项确认,不适用标 N/A) **精度验证结果** GPU基线 AIME2026 93.33 A3 VLLM 93.33 SGLANG 96.67 A5 VLLM 93.33 多模态A3 VLLM 验证无乱码,精度正常 **典型安全编码问题** - [x] 是否已校验外部数据:模型权重经 safetensors safe_open 按需读取,配置经既有 Pydantic Schema 校验 - [x] 是否未采集或打印敏感信息:仅输出常规量化日志与权重统计 - [ ] 是否已正确设置文件权限:N/A(无新增文件写入,产物权限由既有 saver 管理) - [ ] 是否充分考虑浮点运算溢出、除零等异常场景:N/A(FP8→MXFP8 已逐维论证 scale 范围不溢出;量化计算复用既有处理器,无新增浮点风险路径) - [ ] 是否已对正则表达式做 ReDos 检查:N/A(未新增正则表达式) **DT** - [x] 是否具备 UT 测试用例看护(路径:test/cases/model/glm_5_next/,3 个文件共 809 行 53 个用例,覆盖 loader、mtp_quant_module、model_adapter 的 visual 挂载 / merger 主阶段旋转 / KDA 与 kpool gate 的平滑/fold/旋转 targets 名单 / MTP 调度等核心逻辑,本地全部通过) - [x] 是否需要添加冒烟:否(新模型接入,lab_practice 配置随仓发布,CI 既有 quant 冒烟框架可复用该配置) See merge request: Ascend/msmodelslim!912 | 1 个月前 | |
[Doc] 按检视意见修正权重转换文档跳转、书名号与多卡量化用词 节内引用改为可点击锚点,书名号放到链接外层,并将「量化多卡」统一为「多卡量化」。 Co-authored-by: Cursor <cursoragent@cursor.com> | 1 个月前 | |
【Feature】支持GLM5.3-Flash W8A8 量化 (A3/A5) Co-authored-by: qq_46439621<wanlongze1@huawei.com> # message auto-generated for no-merge-commit merge: !912 merge glm53_flash_quant into master 【Feature】支持GLM5.3-Flash W8A8 量化 (A3/A5) Created-by: qq_46439621 Commit-by: qq_46439621 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) **PR 标题**:[Feature] 新增 GLM-5.3-Flash(glm_5_next)模型适配、量化配置与文档及 UT **对应提交**: - 771bcdd8102d5172a3a222ca8c7e570667c9851c [Feature] 新增 GLM-5.3-Flash(glm_5_next)模型适配、量化配置与文档及 UT - 6434cad668fa2c512c3b91589e01b93277a09291 【Fix】glm_5_next KDA 门控投影与 kpool compress_gate 补入平滑/fold/旋转 targets,包装 gate 为 nn.Linear 修复 DTS 校验 ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:新增模型为纯增量注册(config/config.ini 新增 glm_5_next 条目),不修改既有模型条目、CLI 参数与处理器接口;QuaRotProcessor 等公共代码零改动(含后置 Fix 提交,全部改动收敛在 msmodelslim/model/glm_5_next/ 目录与配置/文档内)。 **输出件变更(按需):** 无 > 备注:量化产物格式沿用现有 ascendv1_saver(分片 + index + description);visual 塔不参与量化,以 BF16/FLOAT 权重随常规分片导出,与 qwen3_vl / glm4_6v 等多模态模型导出方式一致。DSA 层 indexer.index_kpool_compress_gate 导出 key 与原始 checkpoint 完全一致(无 .weight 后缀),由保存前置钩子拆回裸 Parameter 保证。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):** GLM-5.3-Flash 为混合架构多模态大模型(DSA/MLA 注意力层 + Linear Attention 层 + MoE 稀疏层 + MTP 预测层 + ViT 视觉塔),且 HF 侧发布 FP8 checkpoint。原先 msModelSlim 不支持该模型,无法量化与部署;其混合注意力结构(per-expert unstack、HC 残差、indexer、MTP)也无法直接复用 glm_5 / glm_5_2 适配器。适配过程中另发现两类阻塞量化流程的结构问题:KDA/DSA 层门控投影未参与平滑补偿与 γ-fold(导出后门控分数错误)、DSA 层 indexer 的 index_kpool_compress_gate 为裸 nn.Parameter,触发 DTS 依赖校验失败(SchemaValidateError 203),已在后置 Fix 提交一并修复。 **修改目的:** 接入 GLM-5.3-Flash,支持 W8A8 动态量化与 BF16/FP8 浮点权重 → MXFP8(W8A8) 离线权重转换,量化产物可在 vLLM_Ascend(Atlas A2 / A3)部署推理。 **修改内容:**(按「概念 - 变化」分条) - infra/模型适配:新增 msmodelslim/model/glm_5_next/ 模型目录 - loader.py:Glm5NextAdapterLoader 注册入口; - model.py:Transformer 结构定义,骨架模型仅含 1 层模板 + 按需懒加载各层,避免一次性加载全部层的内存开销; - model_adapter.py:模型适配器(层懒加载调度、MTP 预处理、FP8→BF16 权重自动转换、indexer 旋转移除等);visual 塔经 _attach_visual_module 挂载为纯 Parameter 树(model.visual.*),不参与量化,导出为 FLOAT 权重; - quarot.py:QuaRot 旋转映射,覆盖 DSA/Linear Attention 双路注意力、MoE per-expert、MTP 层、mHC 残差与 indexer 路径; - mtp_quant_module.py:MTP 层量化模块。 - infra/模型适配(Fix,KDA 层):Linear Attention 层的三个门控投影 b_proj / forget_gate.f_a_proj / g_a_proj 与 q/k/v 同吃 input_layernorm 输出,补入 input_norm_targets 与 get_ln_fuse_map,平滑迁移与 γ-fold 后导出权重不再缺失 norm 折叠补偿;同时移除 KDA 层非法 ov 子图(o_norm 的逐头 RMS 归一化对 per-channel scale 不满足线性,v/o 间 scale 迁移无法保持数学等价,且 _apply_standard_ov_smooth 的 DSA/MLA 头参数分组与 KDA 的 linear_num_heads 结构不符),KDA 层仅保留 norm-linear + linear-linear 子图。 - infra/模型适配(Fix,DSA 层 kpool gate):indexer.index_kpool_compress_gate 为裸 nn.Parameter(deploy 侧 F.linear(norm(x), compress_gate),等价无 bias Linear),与 wk/weights_proj 同吃 input_layernorm 输出。新增 _layer_has_kpool_compress() 判断(config index_kpool > 1 且 index_kpool_compress 为 True),将其补入 input_norm_targets、get_ln_fuse_map 与 get_rotate_map 右旋条目,不参与补偿/旋转则导出后 kpool 门控分数错误。 - infra/模型适配(Fix,裸 Parameter 与 DTS 校验):加载后将裸 Parameter gate 包装为 nn.Linear,保存前拆回,修复 DTS submit 校验(get_submodule 对非 nn.Module 抛 SchemaValidateError 203): - _wrap_bare_param_gate():在 init_model / load_decoder_if_not_exist 的 load_state_dict 与 auto_convert 之后包装(get_state_dict 仍按裸参数名对齐 weight_map,加载语义不变),形状 (head_dim, hidden_size) 与 nn.Linear(hidden_size, head_dim).weight 对齐;新版 torch __setattr__ 禁止向已注册为 Parameter 的名字赋 Module,先解除 _parameters 注册再赋值。包装后 DTS submit/run 校验、flex_smooth 平滑、QuaRot 旋转、LN fold 等公共链路均按标准 nn.Linear 路径工作; - ascendv1_save_module_preprocess():saver 遍历到 Indexer 时拆回裸 Parameter,导出 key(index_kpool_compress_gate,无 .weight 后缀)与原始 checkpoint 一致;分布式 saver 物化列表中的残留 gate 条目替换为哑模块,避免多写出一份 .weight。 - infra/模型注册:config/config.ini 新增 glm_5_next = GLM-5.3-Flash 模型条目、loader entry point 与 transformers==5.16.0 版本约束。 - app/最佳实践:新增 lab_practice/glm_5_next/ 两份配置 - glm_5_next_w8a8.yaml:W8A8 动态量化(quarot 离线旋转 + flex_smooth_quant + linear_quant,per_token/per_channel int8 对称 minmax),verified_tags 覆盖 vLLM_Ascend × Atlas A2/A3; - glm_5_next_convert_mxfp8.yaml:BF16/FP8 → MXFP8(W8A8) 纯权重离线转换。match 列表精确对齐到仓库实际的 FP8 线性节点(mlp / shared_experts / experts / q_a / q_b / kv_a),不引入对 BF16 节点(如 o_proj、kv_b_proj、indexer.*、f_*/g_*/b_*、k/q/v_conv1d、norm、embed、lm_head、ViT)的额外量化。FP8 输入下基本无损:源 F32 scale 全为 2 的整数幂可精确映射 E8M0、指数范围不溢出、元素同为 E4M3、block 128→32 重排无信息丢失;BF16 输入走标准 BF16 → MXFP8 路径。 - docs:补充 GLM-5.3-Flash 中文资料 - example/GLM-5/README.md:支持矩阵新增 GLM-5.3-Flash 行;新增 W8A8 一键量化、浮点权重转 MXFP8 命令小节;标注 transformers==5.16.0 依赖; - docs/zh/knowledge_base/model/README.md:GLM5-MOE 系列行 rowspan 由 3 改为 4,并新增 GLM-5.3-Flash 行; - docs/zh/knowledge_base/parallel/README.md:EP 适配器表新增 GLM5NextModelAdapter → GLM-5.3-Flash。 关键设计点(不修改公共代码): - visual merger 输出投影左旋放入主阶段 rot_pairs,由 post_run 的裸 Parameter 回退分支执行;pre_run 首命令保持 embed_tokens 模块路径,global_rotation 导出 hook 注入逻辑与 qwen2_5_vl 等 VL 模型一致,公共 QuaRotProcessor 无需改动。 - 裸 Parameter gate 的兼容完全收敛在模型适配层:量化链路运行期间 gate 为标准 nn.Linear,保存时经 ascendv1_save_module_preprocess 钩子(AscendV1SaveInterface 正式接口)拆回,平滑/旋转/fold/调度等公共处理器零改动。 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 (本 PR 涉及概念域:infra/模型适配、app/最佳实践、docs) ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** 输入支持 BF16 与 FP8 两种 checkpoint,FP8 权重由适配器自动转 BF16 后再量化或转换。 bash # 0. 环境准备(拉取本 PR 分支并安装) git clone https://gitcode.com/qq_46439621/msmodelslim.git cd msmodelslim git fetch origin git checkout glm53_flash_quant bash install.sh cd .. # 1. A3:W8A8 量化(8 卡 NPU) export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 msmodelslim quant \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --device npu:0,1,2,3,4,5,6,7 \ --model_type GLM-5.3-Flash \ --quant_type w8a8 \ --trust_remote_code True # 2. 浮点权重(BF16 / FP8)→ MXFP8 离线权重转换(modelslim_convert 协议) # 2a. CPU 转换(纯权重重排无需 NPU,YAML 内 parallel.workers: 8 为 CPU 进程数) msmodelslim convert \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --config_path lab_practice/glm_5_next/glm_5_next_convert_mxfp8.yaml \ --device cpu # 2b. NPU 多卡转换(CLI 指定卡号时进入 npu_multi 模式:每卡一个子进程、组间动态 # 负载均衡,AscendV1 落盘时 worker 直接写盘,适合更快转换大模型) msmodelslim convert \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --config_path lab_practice/glm_5_next/glm_5_next_convert_mxfp8.yaml \ --device npu:0,1,2,3,4,5,6,7 W8A8 多卡量化链路已验证通过:DSA 层 kpool gate 包装后 DTS submit/run 依赖校验正常(此前 SchemaValidateError 203 已消除),flex_smooth 平滑、QuaRot 旋转与 LN fold 全流程走通。 ## 4. 自检(请逐项确认,不适用标 N/A) **精度验证结果** GPU基线 AIME2026 93.33 A3 VLLM 93.33 SGLANG 96.67 A5 VLLM 93.33 多模态A3 VLLM 验证无乱码,精度正常 **典型安全编码问题** - [x] 是否已校验外部数据:模型权重经 safetensors safe_open 按需读取,配置经既有 Pydantic Schema 校验 - [x] 是否未采集或打印敏感信息:仅输出常规量化日志与权重统计 - [ ] 是否已正确设置文件权限:N/A(无新增文件写入,产物权限由既有 saver 管理) - [ ] 是否充分考虑浮点运算溢出、除零等异常场景:N/A(FP8→MXFP8 已逐维论证 scale 范围不溢出;量化计算复用既有处理器,无新增浮点风险路径) - [ ] 是否已对正则表达式做 ReDos 检查:N/A(未新增正则表达式) **DT** - [x] 是否具备 UT 测试用例看护(路径:test/cases/model/glm_5_next/,3 个文件共 809 行 53 个用例,覆盖 loader、mtp_quant_module、model_adapter 的 visual 挂载 / merger 主阶段旋转 / KDA 与 kpool gate 的平滑/fold/旋转 targets 名单 / MTP 调度等核心逻辑,本地全部通过) - [x] 是否需要添加冒烟:否(新模型接入,lab_practice 配置随仓发布,CI 既有 quant 冒烟框架可复用该配置) See merge request: Ascend/msmodelslim!912 | 1 个月前 | |
[Feature] Qwen3.5/3.6模型FA混合量化:QK-MXFP8 动态 + V-MXFP8 PerChannel 静态 Co-authored-by: joejoezhou<zhourongchen1@huawei.com> # message auto-generated for no-merge-commit merge: !934 merge feature/qwen35-397b-fa-mxfp8 into master [Feature] Qwen3.5/3.6模型FA混合量化:QK-MXFP8 动态 + V-MXFP8 PerChannel 静态 Created-by: joejoezhou Commit-by: joejoezhou Merged-by: ascend-robot Description: ## 1. 影响面评估 **接口变更(按需):** 无。 **输出件变更(按需):** AscendV1 格式新增 FA 混合量化量化 QK_MXFP8_DYNAMIC_V_MXFP8_PER_CHANNEL。 **非兼容变更(按需):** 无 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景(可选):** Qwen3.5-397B 全量化(线性层 W4A4 / W8A8)需要注意力部分配套低比特方案。Q/K 参与得分计算、随输入分布变化,宜动态免校准;V 承接缓存写入,若沿用 MX per-block 按 32 元素分块,head_dim 不是 32 整数倍时行尾会留下不足 32 元素的尾块,V 缓存随 decode 逐 token 追加,反复 padding 代价高。因此 Q/K 走 MXFP8 per-block 动态,V 改走 per-channel 静态,将 head 并入通道维跨整条序列共享 E8M0 指数,从根上消除尾块,量化参数离线固化并与 KVCache 量化的通道语义对齐。 **修改目的:** 为 Qwen3.5-397B 提供 Q/K MXFP8 per-block 动态 + V MXFP8 per-channel 静态的注意力混合量化能力,打通 IR、校准、AscendV1 落盘与模型适配全链路,并补齐对应量化模式资料。 **修改内容:** - 量化模式:新增 MXFP8FakeQuantActivationPerChannel(FA V 分支 MXFP8 per-channel 静态伪量化层) - 量化格式:AscendV1 支持 per-channel 静态分支的类型串拼装与 uint8 scale 落盘,多卡 merge 阶段跨 rank 聚合分支状态统一拼串 - FA3 量化:支持 per-channel 静态分支(离线校准取参);动态分支免校准,校准阶段不再空转 per-head 统计 - 数据格式:mxfp per-block 量化削减整份 fp32 临时,降低 FA3 校准显存峰值 - 模型适配:qwen3_5_moe 注入 full_attention 层 FA3 量化、跳过 linear_attention 层 - 校准集:新增 qwen3_cot_vlm_text 校准集,超长样本按段落截断至 8k,避免校准 OOM - docs:新增《FA QK-MXFP8 动态 / V-MXFP8 PerChannel 静态量化》词条,同步 FA 量化模式索引、量化模式总览表及 AscendV1 quant_type 取值规则与落盘说明 ## 3. 功能验证 - [x] 功能自验:本地单测通过(190 个用例) - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [x] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [x] 是否具备 UT 测试用例看护:test_cases/ir/test_mxfp8_activation_static.py、test_cases/ir/api/impl/test_mxfp8_per_channel_quantization.py、test_ascendv1.py、test_ascendv1_distributed.py、test_fa3_processor.py 等 - [ ] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!934 | 1 个月前 | |
【Feature】支持GLM5.3-Flash W8A8 量化 (A3/A5) Co-authored-by: qq_46439621<wanlongze1@huawei.com> # message auto-generated for no-merge-commit merge: !912 merge glm53_flash_quant into master 【Feature】支持GLM5.3-Flash W8A8 量化 (A3/A5) Created-by: qq_46439621 Commit-by: qq_46439621 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) **PR 标题**:[Feature] 新增 GLM-5.3-Flash(glm_5_next)模型适配、量化配置与文档及 UT **对应提交**: - 771bcdd8102d5172a3a222ca8c7e570667c9851c [Feature] 新增 GLM-5.3-Flash(glm_5_next)模型适配、量化配置与文档及 UT - 6434cad668fa2c512c3b91589e01b93277a09291 【Fix】glm_5_next KDA 门控投影与 kpool compress_gate 补入平滑/fold/旋转 targets,包装 gate 为 nn.Linear 修复 DTS 校验 ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:新增模型为纯增量注册(config/config.ini 新增 glm_5_next 条目),不修改既有模型条目、CLI 参数与处理器接口;QuaRotProcessor 等公共代码零改动(含后置 Fix 提交,全部改动收敛在 msmodelslim/model/glm_5_next/ 目录与配置/文档内)。 **输出件变更(按需):** 无 > 备注:量化产物格式沿用现有 ascendv1_saver(分片 + index + description);visual 塔不参与量化,以 BF16/FLOAT 权重随常规分片导出,与 qwen3_vl / glm4_6v 等多模态模型导出方式一致。DSA 层 indexer.index_kpool_compress_gate 导出 key 与原始 checkpoint 完全一致(无 .weight 后缀),由保存前置钩子拆回裸 Parameter 保证。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):** GLM-5.3-Flash 为混合架构多模态大模型(DSA/MLA 注意力层 + Linear Attention 层 + MoE 稀疏层 + MTP 预测层 + ViT 视觉塔),且 HF 侧发布 FP8 checkpoint。原先 msModelSlim 不支持该模型,无法量化与部署;其混合注意力结构(per-expert unstack、HC 残差、indexer、MTP)也无法直接复用 glm_5 / glm_5_2 适配器。适配过程中另发现两类阻塞量化流程的结构问题:KDA/DSA 层门控投影未参与平滑补偿与 γ-fold(导出后门控分数错误)、DSA 层 indexer 的 index_kpool_compress_gate 为裸 nn.Parameter,触发 DTS 依赖校验失败(SchemaValidateError 203),已在后置 Fix 提交一并修复。 **修改目的:** 接入 GLM-5.3-Flash,支持 W8A8 动态量化与 BF16/FP8 浮点权重 → MXFP8(W8A8) 离线权重转换,量化产物可在 vLLM_Ascend(Atlas A2 / A3)部署推理。 **修改内容:**(按「概念 - 变化」分条) - infra/模型适配:新增 msmodelslim/model/glm_5_next/ 模型目录 - loader.py:Glm5NextAdapterLoader 注册入口; - model.py:Transformer 结构定义,骨架模型仅含 1 层模板 + 按需懒加载各层,避免一次性加载全部层的内存开销; - model_adapter.py:模型适配器(层懒加载调度、MTP 预处理、FP8→BF16 权重自动转换、indexer 旋转移除等);visual 塔经 _attach_visual_module 挂载为纯 Parameter 树(model.visual.*),不参与量化,导出为 FLOAT 权重; - quarot.py:QuaRot 旋转映射,覆盖 DSA/Linear Attention 双路注意力、MoE per-expert、MTP 层、mHC 残差与 indexer 路径; - mtp_quant_module.py:MTP 层量化模块。 - infra/模型适配(Fix,KDA 层):Linear Attention 层的三个门控投影 b_proj / forget_gate.f_a_proj / g_a_proj 与 q/k/v 同吃 input_layernorm 输出,补入 input_norm_targets 与 get_ln_fuse_map,平滑迁移与 γ-fold 后导出权重不再缺失 norm 折叠补偿;同时移除 KDA 层非法 ov 子图(o_norm 的逐头 RMS 归一化对 per-channel scale 不满足线性,v/o 间 scale 迁移无法保持数学等价,且 _apply_standard_ov_smooth 的 DSA/MLA 头参数分组与 KDA 的 linear_num_heads 结构不符),KDA 层仅保留 norm-linear + linear-linear 子图。 - infra/模型适配(Fix,DSA 层 kpool gate):indexer.index_kpool_compress_gate 为裸 nn.Parameter(deploy 侧 F.linear(norm(x), compress_gate),等价无 bias Linear),与 wk/weights_proj 同吃 input_layernorm 输出。新增 _layer_has_kpool_compress() 判断(config index_kpool > 1 且 index_kpool_compress 为 True),将其补入 input_norm_targets、get_ln_fuse_map 与 get_rotate_map 右旋条目,不参与补偿/旋转则导出后 kpool 门控分数错误。 - infra/模型适配(Fix,裸 Parameter 与 DTS 校验):加载后将裸 Parameter gate 包装为 nn.Linear,保存前拆回,修复 DTS submit 校验(get_submodule 对非 nn.Module 抛 SchemaValidateError 203): - _wrap_bare_param_gate():在 init_model / load_decoder_if_not_exist 的 load_state_dict 与 auto_convert 之后包装(get_state_dict 仍按裸参数名对齐 weight_map,加载语义不变),形状 (head_dim, hidden_size) 与 nn.Linear(hidden_size, head_dim).weight 对齐;新版 torch __setattr__ 禁止向已注册为 Parameter 的名字赋 Module,先解除 _parameters 注册再赋值。包装后 DTS submit/run 校验、flex_smooth 平滑、QuaRot 旋转、LN fold 等公共链路均按标准 nn.Linear 路径工作; - ascendv1_save_module_preprocess():saver 遍历到 Indexer 时拆回裸 Parameter,导出 key(index_kpool_compress_gate,无 .weight 后缀)与原始 checkpoint 一致;分布式 saver 物化列表中的残留 gate 条目替换为哑模块,避免多写出一份 .weight。 - infra/模型注册:config/config.ini 新增 glm_5_next = GLM-5.3-Flash 模型条目、loader entry point 与 transformers==5.16.0 版本约束。 - app/最佳实践:新增 lab_practice/glm_5_next/ 两份配置 - glm_5_next_w8a8.yaml:W8A8 动态量化(quarot 离线旋转 + flex_smooth_quant + linear_quant,per_token/per_channel int8 对称 minmax),verified_tags 覆盖 vLLM_Ascend × Atlas A2/A3; - glm_5_next_convert_mxfp8.yaml:BF16/FP8 → MXFP8(W8A8) 纯权重离线转换。match 列表精确对齐到仓库实际的 FP8 线性节点(mlp / shared_experts / experts / q_a / q_b / kv_a),不引入对 BF16 节点(如 o_proj、kv_b_proj、indexer.*、f_*/g_*/b_*、k/q/v_conv1d、norm、embed、lm_head、ViT)的额外量化。FP8 输入下基本无损:源 F32 scale 全为 2 的整数幂可精确映射 E8M0、指数范围不溢出、元素同为 E4M3、block 128→32 重排无信息丢失;BF16 输入走标准 BF16 → MXFP8 路径。 - docs:补充 GLM-5.3-Flash 中文资料 - example/GLM-5/README.md:支持矩阵新增 GLM-5.3-Flash 行;新增 W8A8 一键量化、浮点权重转 MXFP8 命令小节;标注 transformers==5.16.0 依赖; - docs/zh/knowledge_base/model/README.md:GLM5-MOE 系列行 rowspan 由 3 改为 4,并新增 GLM-5.3-Flash 行; - docs/zh/knowledge_base/parallel/README.md:EP 适配器表新增 GLM5NextModelAdapter → GLM-5.3-Flash。 关键设计点(不修改公共代码): - visual merger 输出投影左旋放入主阶段 rot_pairs,由 post_run 的裸 Parameter 回退分支执行;pre_run 首命令保持 embed_tokens 模块路径,global_rotation 导出 hook 注入逻辑与 qwen2_5_vl 等 VL 模型一致,公共 QuaRotProcessor 无需改动。 - 裸 Parameter gate 的兼容完全收敛在模型适配层:量化链路运行期间 gate 为标准 nn.Linear,保存时经 ascendv1_save_module_preprocess 钩子(AscendV1SaveInterface 正式接口)拆回,平滑/旋转/fold/调度等公共处理器零改动。 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 (本 PR 涉及概念域:infra/模型适配、app/最佳实践、docs) ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** 输入支持 BF16 与 FP8 两种 checkpoint,FP8 权重由适配器自动转 BF16 后再量化或转换。 bash # 0. 环境准备(拉取本 PR 分支并安装) git clone https://gitcode.com/qq_46439621/msmodelslim.git cd msmodelslim git fetch origin git checkout glm53_flash_quant bash install.sh cd .. # 1. A3:W8A8 量化(8 卡 NPU) export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 msmodelslim quant \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --device npu:0,1,2,3,4,5,6,7 \ --model_type GLM-5.3-Flash \ --quant_type w8a8 \ --trust_remote_code True # 2. 浮点权重(BF16 / FP8)→ MXFP8 离线权重转换(modelslim_convert 协议) # 2a. CPU 转换(纯权重重排无需 NPU,YAML 内 parallel.workers: 8 为 CPU 进程数) msmodelslim convert \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --config_path lab_practice/glm_5_next/glm_5_next_convert_mxfp8.yaml \ --device cpu # 2b. NPU 多卡转换(CLI 指定卡号时进入 npu_multi 模式:每卡一个子进程、组间动态 # 负载均衡,AscendV1 落盘时 worker 直接写盘,适合更快转换大模型) msmodelslim convert \ --model_path ${MODEL_PATH} \ --save_path ${SAVE_PATH} \ --config_path lab_practice/glm_5_next/glm_5_next_convert_mxfp8.yaml \ --device npu:0,1,2,3,4,5,6,7 W8A8 多卡量化链路已验证通过:DSA 层 kpool gate 包装后 DTS submit/run 依赖校验正常(此前 SchemaValidateError 203 已消除),flex_smooth 平滑、QuaRot 旋转与 LN fold 全流程走通。 ## 4. 自检(请逐项确认,不适用标 N/A) **精度验证结果** GPU基线 AIME2026 93.33 A3 VLLM 93.33 SGLANG 96.67 A5 VLLM 93.33 多模态A3 VLLM 验证无乱码,精度正常 **典型安全编码问题** - [x] 是否已校验外部数据:模型权重经 safetensors safe_open 按需读取,配置经既有 Pydantic Schema 校验 - [x] 是否未采集或打印敏感信息:仅输出常规量化日志与权重统计 - [ ] 是否已正确设置文件权限:N/A(无新增文件写入,产物权限由既有 saver 管理) - [ ] 是否充分考虑浮点运算溢出、除零等异常场景:N/A(FP8→MXFP8 已逐维论证 scale 范围不溢出;量化计算复用既有处理器,无新增浮点风险路径) - [ ] 是否已对正则表达式做 ReDos 检查:N/A(未新增正则表达式) **DT** - [x] 是否具备 UT 测试用例看护(路径:test/cases/model/glm_5_next/,3 个文件共 809 行 53 个用例,覆盖 loader、mtp_quant_module、model_adapter 的 visual 挂载 / merger 主阶段旋转 / KDA 与 kpool gate 的平滑/fold/旋转 targets 名单 / MTP 调度等核心逻辑,本地全部通过) - [x] 是否需要添加冒烟:否(新模型接入,lab_practice 配置随仓发布,CI 既有 quant 冒烟框架可复用该配置) See merge request: Ascend/msmodelslim!912 | 1 个月前 | |
【msmodelslim】目录整改后目录文件同步修改 Co-authored-by: caishengcheng<caishengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !38 merge dir into master 【msmodelslim】目录整改后目录文件同步修改 Created-by: caishengcheng Commit-by: caishengcheng Merged-by: ascend-robot Description: 【msmodelslim】目录整改后目录文件同步修改 See merge request: Ascend/msmodelslim!38 | 9 个月前 | |
[Bugfix] analysis linear dp bugfix Co-authored-by: xyxin_006<xiayingxin1@huawei.com> # message auto-generated for no-merge-commit merge: !945 merge bugfix/analysis_support_dp_issue into master [Bugfix] analysis linear dp bugfix Created-by: xyxin_006 Commit-by: xyxin_006 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无(unary 指标可选扩展 pack_stats_for_distributed_merge / merge_distributed_stats,默认行为不变) **输出件变更(按需):** 无 **非兼容变更(按需):** 无 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景:** 修复 [#542](https://gitcode.com/Ascend/msmodelslim/issues/542):analyze linear --metrics std 多卡与单卡 top-10 敏感层差异大于 2 层。 根因:DP 下校准数据分片后,旧逻辑对各卡已算好的 **score 做平均**;而 std / quantile / kurtosis 满足 score(合并统计) ≠ avg(score),导致多卡结果系统性偏离单卡。 **修改目的:** 统一 unary linear 指标在 DP 下的正确归约:不可交换指标先合统计再算分;可平均分的指标保持原路径。 **修改内容:** - **core/分析调度(UnaryAnalysisProcessor)**:postprocess 按 pack 是否返回统计包分流——有 pack 则缓存 pending,否则本地 compute_score;post_run 对 pending 走 merge_packed_layer_stats_across_ranks 后再算分,并 publish(..., merge_across_ranks=False),避免二次平均。 - **core/分析指标(UnaryAnalysisMethod)**:新增可选 pack_stats_for_distributed_merge(默认 None)与 merge_distributed_stats;新指标默认仍只需实现 compute_score。 - **core/std、quantile、kurtosis**:实现 pack/merge,跨卡聚合语义对齐单卡(std:max/min/max(std);quantile/kurtosis:拼接采样 tensor)。 - **utils/distributed_utils**:新增 merge_packed_layer_stats_across_ranks;publish_layer_analysis_result 支持关闭跨卡 score 平均。 - **test**:补充 distributed merge、processor 双路径及 std pack/merge 单测。 ## 3. 功能验证 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据:N/A - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限:N/A - [x] 是否充分考虑浮点运算溢出、除零等异常场景:N/A(沿用原 std 除零处理) - [x] 是否已对正则表达式做 ReDos 检查:N/A **DT** - [x] 是否具备 UT 测试用例看护(路径:test/cases/processor/analysis/test_distributed_utils.py、test/cases/processor/analysis/test_unary_analysis_processor.py、test/cases/app/analysis/test_analysis_methods.py) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!945 | 1 个月前 | |
[Feature] Qwen3.5/3.6模型FA混合量化:QK-MXFP8 动态 + V-MXFP8 PerChannel 静态 Co-authored-by: joejoezhou<zhourongchen1@huawei.com> # message auto-generated for no-merge-commit merge: !934 merge feature/qwen35-397b-fa-mxfp8 into master [Feature] Qwen3.5/3.6模型FA混合量化:QK-MXFP8 动态 + V-MXFP8 PerChannel 静态 Created-by: joejoezhou Commit-by: joejoezhou Merged-by: ascend-robot Description: ## 1. 影响面评估 **接口变更(按需):** 无。 **输出件变更(按需):** AscendV1 格式新增 FA 混合量化量化 QK_MXFP8_DYNAMIC_V_MXFP8_PER_CHANNEL。 **非兼容变更(按需):** 无 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景(可选):** Qwen3.5-397B 全量化(线性层 W4A4 / W8A8)需要注意力部分配套低比特方案。Q/K 参与得分计算、随输入分布变化,宜动态免校准;V 承接缓存写入,若沿用 MX per-block 按 32 元素分块,head_dim 不是 32 整数倍时行尾会留下不足 32 元素的尾块,V 缓存随 decode 逐 token 追加,反复 padding 代价高。因此 Q/K 走 MXFP8 per-block 动态,V 改走 per-channel 静态,将 head 并入通道维跨整条序列共享 E8M0 指数,从根上消除尾块,量化参数离线固化并与 KVCache 量化的通道语义对齐。 **修改目的:** 为 Qwen3.5-397B 提供 Q/K MXFP8 per-block 动态 + V MXFP8 per-channel 静态的注意力混合量化能力,打通 IR、校准、AscendV1 落盘与模型适配全链路,并补齐对应量化模式资料。 **修改内容:** - 量化模式:新增 MXFP8FakeQuantActivationPerChannel(FA V 分支 MXFP8 per-channel 静态伪量化层) - 量化格式:AscendV1 支持 per-channel 静态分支的类型串拼装与 uint8 scale 落盘,多卡 merge 阶段跨 rank 聚合分支状态统一拼串 - FA3 量化:支持 per-channel 静态分支(离线校准取参);动态分支免校准,校准阶段不再空转 per-head 统计 - 数据格式:mxfp per-block 量化削减整份 fp32 临时,降低 FA3 校准显存峰值 - 模型适配:qwen3_5_moe 注入 full_attention 层 FA3 量化、跳过 linear_attention 层 - 校准集:新增 qwen3_cot_vlm_text 校准集,超长样本按段落截断至 8k,避免校准 OOM - docs:新增《FA QK-MXFP8 动态 / V-MXFP8 PerChannel 静态量化》词条,同步 FA 量化模式索引、量化模式总览表及 AscendV1 quant_type 取值规则与落盘说明 ## 3. 功能验证 - [x] 功能自验:本地单测通过(190 个用例) - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [x] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [x] 是否具备 UT 测试用例看护:test_cases/ir/test_mxfp8_activation_static.py、test_cases/ir/api/impl/test_mxfp8_per_channel_quantization.py、test_ascendv1.py、test_ascendv1_distributed.py、test_fa3_processor.py 等 - [ ] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!934 | 1 个月前 | |
【msmodelslim】刷新文件头部声明和版权 Co-authored-by: caishengcheng<caishengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !28 merge license into master 【msmodelslim】刷新文件头部声明和版权 Created-by: caishengcheng Commit-by: caishengcheng Merged-by: ascend-robot Description: 【msmodelslim】刷新文件头部声明和版权 See merge request: Ascend/msmodelslim!28 | 9 个月前 | |
【msmodelslim】刷新文件头部声明和版权 Co-authored-by: caishengcheng<caishengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !28 merge license into master 【msmodelslim】刷新文件头部声明和版权 Created-by: caishengcheng Commit-by: caishengcheng Merged-by: ascend-robot Description: 【msmodelslim】刷新文件头部声明和版权 See merge request: Ascend/msmodelslim!28 | 9 个月前 | |
[Feature] msAgent Skills迁移msModelSlim仓 Co-authored-by: joejoezhou<zhourongchen1@huawei.com> # message auto-generated for no-merge-commit merge: !907 merge feature/agent-skills into master [Feature] msAgent Skills迁移msModelSlim仓 Created-by: joejoezhou Commit-by: joejoezhou Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 **输出件变更(按需):** 无 **非兼容变更(按需):** 无 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景(可选):** msAgent skills迁移到msModelSlim,便于用户下载msModelSlim即可快速量化调优 **修改目的:** msAgent skills迁移到msModelSlim **修改内容:** - skills:新增安装、适配、敏感层分析、调优策略、量化、评测、调优编排skills ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [x] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [x] 是否具备 UT 测试用例看护(路径:用例路径;未添加请说明原因):N/A(本 PR 主要为 skills 文档与验证脚本) - [x] 是否需要添加冒烟:否(若「是」请说明冒烟场景及对应用途) See merge request: Ascend/msmodelslim!907 | 1 个月前 | |
[Bugfix] analysis linear dp bugfix Co-authored-by: xyxin_006<xiayingxin1@huawei.com> # message auto-generated for no-merge-commit merge: !945 merge bugfix/analysis_support_dp_issue into master [Bugfix] analysis linear dp bugfix Created-by: xyxin_006 Commit-by: xyxin_006 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无(unary 指标可选扩展 pack_stats_for_distributed_merge / merge_distributed_stats,默认行为不变) **输出件变更(按需):** 无 **非兼容变更(按需):** 无 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景:** 修复 [#542](https://gitcode.com/Ascend/msmodelslim/issues/542):analyze linear --metrics std 多卡与单卡 top-10 敏感层差异大于 2 层。 根因:DP 下校准数据分片后,旧逻辑对各卡已算好的 **score 做平均**;而 std / quantile / kurtosis 满足 score(合并统计) ≠ avg(score),导致多卡结果系统性偏离单卡。 **修改目的:** 统一 unary linear 指标在 DP 下的正确归约:不可交换指标先合统计再算分;可平均分的指标保持原路径。 **修改内容:** - **core/分析调度(UnaryAnalysisProcessor)**:postprocess 按 pack 是否返回统计包分流——有 pack 则缓存 pending,否则本地 compute_score;post_run 对 pending 走 merge_packed_layer_stats_across_ranks 后再算分,并 publish(..., merge_across_ranks=False),避免二次平均。 - **core/分析指标(UnaryAnalysisMethod)**:新增可选 pack_stats_for_distributed_merge(默认 None)与 merge_distributed_stats;新指标默认仍只需实现 compute_score。 - **core/std、quantile、kurtosis**:实现 pack/merge,跨卡聚合语义对齐单卡(std:max/min/max(std);quantile/kurtosis:拼接采样 tensor)。 - **utils/distributed_utils**:新增 merge_packed_layer_stats_across_ranks;publish_layer_analysis_result 支持关闭跨卡 score 平均。 - **test**:补充 distributed merge、processor 双路径及 std pack/merge 单测。 ## 3. 功能验证 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据:N/A - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限:N/A - [x] 是否充分考虑浮点运算溢出、除零等异常场景:N/A(沿用原 std 除零处理) - [x] 是否已对正则表达式做 ReDos 检查:N/A **DT** - [x] 是否具备 UT 测试用例看护(路径:test/cases/processor/analysis/test_distributed_utils.py、test/cases/processor/analysis/test_unary_analysis_processor.py、test/cases/app/analysis/test_analysis_methods.py) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!945 | 1 个月前 | |
[Feature] 引入基于 DevContainer 的高效开发环境 Co-authored-by: LeeQT<liqitong@huawei.com> # message auto-generated for no-merge-commit merge: !940 merge dev/devcontainer-env into master [Feature] 引入基于 DevContainer 的高效开发环境 Created-by: LeeQT Commit-by: LeeQT Merged-by: ascend-robot Description: PR 标题前缀:[Feature] ## 1. 影响面评估 **接口变更:** 无 **输出件变更:** 无 **非兼容变更:** 无 **SIG 评审结论:** 无 ## 2. 修改描述 **修改背景:** 开发者需按 MSOT 指南手动拉镜像并用 ctr_in.py 初始化,才能复现与 CI 一致的环境,成本高。 **修改目的:** 提供 VS Code Dev Container 底座,在 MindStudio 标准构建镜像中一键拉起与 CI 一致的环境。 **修改内容:** - devcontainer:新增 .devcontainer(devcontainer.json / initialize.sh / init.sh / post-create.sh / README.md),引用 SWR 预置镜像、固定 /workspace 挂载、缓存 bind 持久化、初始化分步日志与 pre-commit 后台预热 - .vscode:新增 tasks / launch / settings,封装构建、UT、Lint 任务与 Python 调试 - 治理:补充 .gitignore;.gitattributes 强制 *.sh 用 LF;.pre-commit-config.yaml 对 devcontainer/.vscode 的 JSONC 豁免 check-json - 单测:UT 任务自动先装测试依赖,规避 No module named pytest ## 3. 功能验证 - [x] 功能自验(离线:bash -n、JSONC 解析、文档公共清单已通过;容器内 UT 冒烟待真机验证) - [x] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤:** bash # VS Code:Dev Containers: Reopen in Container # Terminal → Run Task → msmodelslim: UT reduced (modelslim_v1) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据:N/A(仅 shell/JSONC 配置,无外部输入解析) - [x] 是否未采集或打印敏感信息:是(仅把宿主 git 身份同步到容器内 .gitconfig) - [x] 是否已正确设置文件权限:是(脚本 100755、.host-gitconfig 600、容器内数据副本 640) - [x] 是否充分考虑浮点运算溢出、除零等异常场景:N/A - [x] 是否已对正则表达式做 ReDos 检查:N/A(仅 openEuler repo URL 前缀替换) **DT** - [x] 是否具备 UT 测试用例看护:未新增(改动仅 devcontainer/构建脚本,不影响产品逻辑;既有 UT 与 CI 冒烟不变) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!940 | 1 个月前 | |
[Feature] 引入基于 DevContainer 的高效开发环境 Co-authored-by: LeeQT<liqitong@huawei.com> # message auto-generated for no-merge-commit merge: !940 merge dev/devcontainer-env into master [Feature] 引入基于 DevContainer 的高效开发环境 Created-by: LeeQT Commit-by: LeeQT Merged-by: ascend-robot Description: PR 标题前缀:[Feature] ## 1. 影响面评估 **接口变更:** 无 **输出件变更:** 无 **非兼容变更:** 无 **SIG 评审结论:** 无 ## 2. 修改描述 **修改背景:** 开发者需按 MSOT 指南手动拉镜像并用 ctr_in.py 初始化,才能复现与 CI 一致的环境,成本高。 **修改目的:** 提供 VS Code Dev Container 底座,在 MindStudio 标准构建镜像中一键拉起与 CI 一致的环境。 **修改内容:** - devcontainer:新增 .devcontainer(devcontainer.json / initialize.sh / init.sh / post-create.sh / README.md),引用 SWR 预置镜像、固定 /workspace 挂载、缓存 bind 持久化、初始化分步日志与 pre-commit 后台预热 - .vscode:新增 tasks / launch / settings,封装构建、UT、Lint 任务与 Python 调试 - 治理:补充 .gitignore;.gitattributes 强制 *.sh 用 LF;.pre-commit-config.yaml 对 devcontainer/.vscode 的 JSONC 豁免 check-json - 单测:UT 任务自动先装测试依赖,规避 No module named pytest ## 3. 功能验证 - [x] 功能自验(离线:bash -n、JSONC 解析、文档公共清单已通过;容器内 UT 冒烟待真机验证) - [x] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤:** bash # VS Code:Dev Containers: Reopen in Container # Terminal → Run Task → msmodelslim: UT reduced (modelslim_v1) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据:N/A(仅 shell/JSONC 配置,无外部输入解析) - [x] 是否未采集或打印敏感信息:是(仅把宿主 git 身份同步到容器内 .gitconfig) - [x] 是否已正确设置文件权限:是(脚本 100755、.host-gitconfig 600、容器内数据副本 640) - [x] 是否充分考虑浮点运算溢出、除零等异常场景:N/A - [x] 是否已对正则表达式做 ReDos 检查:N/A(仅 openEuler repo URL 前缀替换) **DT** - [x] 是否具备 UT 测试用例看护:未新增(改动仅 devcontainer/构建脚本,不影响产品逻辑;既有 UT 与 CI 冒烟不变) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!940 | 1 个月前 | |
[Feature] 引入基于 DevContainer 的高效开发环境 Co-authored-by: LeeQT<liqitong@huawei.com> # message auto-generated for no-merge-commit merge: !940 merge dev/devcontainer-env into master [Feature] 引入基于 DevContainer 的高效开发环境 Created-by: LeeQT Commit-by: LeeQT Merged-by: ascend-robot Description: PR 标题前缀:[Feature] ## 1. 影响面评估 **接口变更:** 无 **输出件变更:** 无 **非兼容变更:** 无 **SIG 评审结论:** 无 ## 2. 修改描述 **修改背景:** 开发者需按 MSOT 指南手动拉镜像并用 ctr_in.py 初始化,才能复现与 CI 一致的环境,成本高。 **修改目的:** 提供 VS Code Dev Container 底座,在 MindStudio 标准构建镜像中一键拉起与 CI 一致的环境。 **修改内容:** - devcontainer:新增 .devcontainer(devcontainer.json / initialize.sh / init.sh / post-create.sh / README.md),引用 SWR 预置镜像、固定 /workspace 挂载、缓存 bind 持久化、初始化分步日志与 pre-commit 后台预热 - .vscode:新增 tasks / launch / settings,封装构建、UT、Lint 任务与 Python 调试 - 治理:补充 .gitignore;.gitattributes 强制 *.sh 用 LF;.pre-commit-config.yaml 对 devcontainer/.vscode 的 JSONC 豁免 check-json - 单测:UT 任务自动先装测试依赖,规避 No module named pytest ## 3. 功能验证 - [x] 功能自验(离线:bash -n、JSONC 解析、文档公共清单已通过;容器内 UT 冒烟待真机验证) - [x] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤:** bash # VS Code:Dev Containers: Reopen in Container # Terminal → Run Task → msmodelslim: UT reduced (modelslim_v1) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据:N/A(仅 shell/JSONC 配置,无外部输入解析) - [x] 是否未采集或打印敏感信息:是(仅把宿主 git 身份同步到容器内 .gitconfig) - [x] 是否已正确设置文件权限:是(脚本 100755、.host-gitconfig 600、容器内数据副本 640) - [x] 是否充分考虑浮点运算溢出、除零等异常场景:N/A - [x] 是否已对正则表达式做 ReDos 检查:N/A(仅 openEuler repo URL 前缀替换) **DT** - [x] 是否具备 UT 测试用例看护:未新增(改动仅 devcontainer/构建脚本,不影响产品逻辑;既有 UT 与 CI 冒烟不变) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!940 | 1 个月前 | |
【docs】资料架构重构,并将资料托管至readthedocs。 Co-authored-by: keith_wa<keith_wwa@163.com> # message auto-generated for no-merge-commit merge: !109 merge pr_docs_re_copy into master 【docs】资料架构重构,并将资料托管至readthedocs。 Created-by: keith_wa Commit-by: keith_wa Merged-by: ascend-robot Description: 1. 动机 (Motivation) 内容上: 优化导航结构:原目录结构逻辑不清晰、目录层级深且链接复杂。 提升阅读体验:原 traditional_quantization_v0 目录下存在 20+ 个零散文档,内容分布碎片化,用户难以快速建立完整的技术全景认知。 消除内容冗余:多个文档之间存在重复的依赖说明、操作流程及参数介绍,增加了维护成本及版本不一致的风险。 呈现上: 提供专业资料托管:原docs/目录结构不清晰、目录名/文档名不直观(英文),跳转繁琐且无搜索功能。 2. 修改点 (Changes) 2.1 重新梳理目录结构  2.2. 文档整合与重构 V0及传统量化核心文档合并:将 20 多个零散文档按功能维度深度整合为 10篇核心指南: # V0框架文档导航(已停止演进) 本目录文档按模型类型与任务场景重排,便于按需求快速定位。 ## 一、传统模型量化与校准 - [传统模型量化与校准](traditional_model_quantization_and_calibration.md) - 包含 PyTorch/ONNX/MindSpore 训练后量化与 QAT。 ## 二、大模型量化与压缩 - [大模型量化与校准](foundation_model_quantization_and_calibration.md) - 包含低显存量化、混合校准数据集、FA3 量化。 - [压缩与结构优化(大模型为主)](foundation_model_compression.md) - 包含稀疏量化与权重压缩、长序列压缩、权重压缩流程、低秩分解。 ## 三、训练加速与模型改造 - [训练加速与模型改造](pruning_and_distillation.md) - 包含重要性剪枝、Transformer 剪枝、Sparse tool、模型蒸馏。 - [稀疏加速训练](sparse_acceleration_training.md) - 包含宽度扩增与深度扩增模型的稀疏训练加速流程。 ## 四、工具与生态适配 - [辅助工具与专项指导](compression_utils.md) - 包含量化权重格式说明与 MindSpeed 适配器。 - [伪量化精度测试工具](fake_quantization_accuracy_testing_tool.md) - 包含 Precision Tool 使用方式与测试流程。 - [多模态生成模型推理优化](inference_optimization_for_multimodal_generative_model.md) - 包含 DiT 缓存优化与自适应采样优化流程。 - [常见代码示例](quantization_and_sparse_quantization_scenario_import_code_examples.md) - 包含常见量化/稀疏量化场景导入代码样例。 2.3 配置readthedocs文档托管: https://modelslim.readthedocs.io/zh-cn/latest/ 2.4 配置deepwiki: https://deepwiki.com/Keithwwa/ModelSlim 3. 验证: 3.1. gimini代码检视: https://github.com/Keithwwa/ModelSlim/pull/1 See merge request: Ascend/msmodelslim!109 | 8 个月前 | |
【msmodelslim】资料问题整改 Co-authored-by: caishengcheng<caishengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !18 merge docs into master 【msmodelslim】资料问题整改 Created-by: caishengcheng Commit-by: caishengcheng Merged-by: ascend-robot Description: 【msmodelslim】资料问题整改 See merge request: Ascend/msmodelslim!18 | 9 个月前 | |
【msmodelslim】cleancode Co-authored-by: caishengcheng<caishengcheng@huawei.com> | 10 个月前 | |
【docs】:产品系列名称整改;英文26.1.0更新入master分支 Co-authored-by: zzm30<zhengzhimin1@h-partners.com> # message auto-generated for no-merge-commit merge: !928 merge master into master 【docs】:产品系列名称整改;英文26.1.0更新入master分支 Created-by: zzm30 Commit-by: zzm30 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [CONTRIBUTING.md](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/development_guide/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:若无变更请保留「无」;涉及 CLI、API、YAML 等请在此项补充说明。 **输出件变更(按需):** 无 > 备注:若无变更请保留「无」;涉及导出格式、产物路径等请在此项补充说明。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):** 文档硬件产品形态内容统一;英文26.1.0合入master分支,后续再做差异化翻译。 **修改目的:** 整改产品系列名称问题。 **修改内容:** 1. 产品系列名称整改; 2. 英文26.1.0更新入master分支。 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 ## 3. 功能验证 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [x] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [x] 是否具备 UT 测试用例看护 资料修改 - [ ] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!928 | 1 个月前 | |
【docs】:产品系列名称整改;英文26.1.0更新入master分支 Co-authored-by: zzm30<zhengzhimin1@h-partners.com> # message auto-generated for no-merge-commit merge: !928 merge master into master 【docs】:产品系列名称整改;英文26.1.0更新入master分支 Created-by: zzm30 Commit-by: zzm30 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [CONTRIBUTING.md](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/development_guide/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:若无变更请保留「无」;涉及 CLI、API、YAML 等请在此项补充说明。 **输出件变更(按需):** 无 > 备注:若无变更请保留「无」;涉及导出格式、产物路径等请在此项补充说明。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):** 文档硬件产品形态内容统一;英文26.1.0合入master分支,后续再做差异化翻译。 **修改目的:** 整改产品系列名称问题。 **修改内容:** 1. 产品系列名称整改; 2. 英文26.1.0更新入master分支。 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 ## 3. 功能验证 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [x] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [x] 是否具备 UT 测试用例看护 资料修改 - [ ] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!928 | 1 个月前 | |
[Feature] add full UT support: -e FULL_UT=true triggers all test cases Co-authored-by: tanxiangyuu<tanxiangyu2@huawei.com> # message auto-generated for no-merge-commit merge: !783 merge feat/full-ut into master [Feature] add full UT support: -e FULL_UT=true triggers all test cases Created-by: tanxiangyuu Commit-by: tanxiangyuu Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature] add full UT support via test -e full_ut=true ## 1. 影响面评估 **接口变更(按需):** 有 > 备注: build.py 新增 -e full_ut=true 选项,与 test 命令组合使用触发全量单元测试。原有 test 命令行为不变,-e 其余 KEY=VALUE 格式兼容。 > > 变更范围:build.py 的 test 分支增加 full_ut 判断,顶层增加 -e 解析逻辑,不涉及 CLI、API、YAML。 **输出件变更(按需):** 无 > 备注:全量 UT 模式下不产生构建产物;正常构建路径产物不变。 **非兼容变更(按需):** 无 > 备注:test 命令行为完全不变,仅新增选项,无迁移成本。 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景(可选):** 当前 python build.py test 仅执行 run_ut.sh --modelslim_v1(精简 UT 子集),在需要跑全量 UT case 时缺少统一的入口。 **修改目的:** 提供一键全量 UT 能力,安装全量依赖并运行全部测试用例(13 个模块 + smoke)。 **修改内容:** - build:新增 _prepare_all_dependencies() 方法,安装 requirements_all.txt 全量依赖 - build:新增 requirements_all.txt 文件,聚合运行时 + 测试框架 + 核心 ML + ONNX + 多模态等依赖 - build:顶层解析 -e 选项,test 命令下 full_ut=true 时安装全量依赖并执行全部测试用例 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** bash # 全量 UT(安装全量依赖 + 执行全部用例) python build.py test -e full_ut=true # 全量 UT(跳过依赖安装,仅执行用例) python build.py test local -e full_ut=true # 原有精简 UT 不受影响 python build.py test python build.py test local # 正常构建不受影响 python build.py python build.py -v 2.0.0 ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [ ] N/A 是否已校验外部数据 - [ ] N/A 是否未采集或打印敏感信息 - [ ] N/A 是否已正确设置文件权限 - [ ] N/A 是否充分考虑浮点运算溢出、除零等异常场景 - [ ] N/A 是否已对正则表达式做 ReDos 检查 **DT** - [ ] N/A 是否具备 UT 测试用例看护:N/A(构建脚本变更,非业务逻辑代码) - [ ] N/A 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!783 | 3 个月前 | |
【msmodelslim】刷新文件头部声明和版权 Co-authored-by: caishengcheng<caishengcheng@huawei.com> # message auto-generated for no-merge-commit merge: !28 merge license into master 【msmodelslim】刷新文件头部声明和版权 Created-by: caishengcheng Commit-by: caishengcheng Merged-by: ascend-robot Description: 【msmodelslim】刷新文件头部声明和版权 See merge request: Ascend/msmodelslim!28 | 9 个月前 | |
[Doc] 修复新模型量化调优指南、权重量化使用指南、敏感层分析使用指南资料问题 Co-authored-by: xyxin_006<xiayingxin1@huawei.com> # message auto-generated for no-merge-commit merge: !881 merge doc/process_usage_issue into master [Doc] 修复新模型量化调优指南、权重量化使用指南、敏感层分析使用指南资料问题 Created-by: xyxin_006 Commit-by: xyxin_006 Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:文档表述与链接调整,不涉及 CLI / API / YAML 协议变更。 **输出件变更(按需):** 无 **非兼容变更(按需):** 无 > 备注:用户指南文件重命名 usage_sensitive_layer_wise_analysis.md → usage_sensitive_layer_analysis.md,已同步更新站内链接与 mkdocs.yml;对外书签若指向旧路径需改用新路径。 **SIG 评审结论(按需):** 无 ## 2. 修改描述 **修改背景(可选):** 新模型量化调优流程、权重量化使用指南、敏感层分析(linear / layer / attn)使用指南在资料评审中存在表述不清、标点与并列关系不规范、流程节点缺失、指标推荐未说明选取方式、接口文档仍指向章节锚点或旧文件名等问题,影响按指南落地执行。 **修改目的:** 按评审意见整改上述中文用户指南与关联引用,使流程步骤、命令行表述、校准集约定、指标选取与接口文档链接可直接指导实践,并与 CLI scope 命名对齐。 **修改内容:** - docs/流程:优化《新模型量化调优流程》前置条件、步骤表述、异常处置与术语(模型适配按 LLM / VLM / SD 分列),统一「精度与性能」等并列用语,修正 vLLM Ascend 量化适配中文文档链接。 - docs/流程:优化《权重量化使用指南》路径说明、配置协议权威链接(改挂 api_reference/config/task/*)、格式选型与验收/安全等表述。 - docs/流程:优化 linear / layer / attn 敏感层分析使用指南(补充「命令行」、校准集进流程图、与量化所用校准集一致、审计记录变量统一、后续操作用完整 quant 命令行表述、异常处置写清再执行分析命令等);指标「推荐」列改为如何选取;修正 QKV 成组策略表述。 - docs/导航:将层级敏感层分析指南重命名为 usage_sensitive_layer_analysis.md(对齐 analyze layer),并更新 mkdocs.yml、用户指南索引、API 与知识库交叉引用。 - docs/知识库:在量化算法 README 与相关 usage 中同步层级指南新路径(变基吸收 upstream 算法文档整改后保留新文件名)。 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据(N/A:纯文档) - [x] 是否未采集或打印敏感信息(N/A:纯文档) - [x] 是否已正确设置文件权限(N/A:纯文档) - [x] 是否充分考虑浮点运算溢出、除零等异常场景(N/A:纯文档) - [x] 是否已对正则表达式做 ReDos 检查(N/A:纯文档) **DT** - [x] 是否具备 UT 测试用例看护(N/A:纯文档变更,无代码逻辑改动) - [x] 是否需要添加冒烟:否 See merge request: Ascend/msmodelslim!881 | 2 个月前 | |
【msmodelslim】【UT】补充format存量代码UT,行覆盖率大于90 Co-authored-by: anreywmh<18845895998@163.com> # message auto-generated for no-merge-commit merge: !513 merge w_ut into master 【msmodelslim】【UT】补充format存量代码UT,行覆盖率大于90 Created-by: anreywmh Commit-by: anreywmh Merged-by: ascend-robot Description: 感谢您贡献的Pull Request! 在提交之前,请务必阅读 [CONTRIBUTING.md](https://gitcode.com/Ascend/msmodelslim/blob/master/CONTRIBUTING.md)。 Thanks for sending a pull request! BEFORE SUBMITTING, PLEASE READ [CONTRIBUTING.md](https://gitcode.com/Ascend/msmodelslim/blob/master/CONTRIBUTING.md). ## PR描述 (What this PR does / why we need it?) - 请明确说明您提交PR的变更内容。本部分旨在概述所做的变更,以及此PR是如何解决该问题的。请尽可能地提供有助于评审人员更高效、更快速完成检视审查的实用说明。 补充format下的UT测试用例 :/home/wangminghua/msmodelslim/test# python3 -m coverage report \ --include="*/msmodelslim/format/*" \ --show-missing Name Stmts Miss Cover Missing ----------------------------------------------------------------------------------------------------------------------------------------------------------------- /home/wangminghua/msmodelslim/msmodelslim/format/__init__.py 19 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/ascendV1_format/__init__.py 2 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/ascendV1_format/ascendV1.py 12 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/ascendV1_format/ascendV1_json_writer_factory_infra.py 14 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/ascendV1_format/ascendV1_tensors_writer_factory_infra.py 15 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/base.py 49 2 96% 71, 76 /home/wangminghua/msmodelslim/msmodelslim/format/common/__init__.py 2 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/common/deqscale.py 11 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/common/pack.py 42 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/__init__.py 3 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/compressed_tensors.py 125 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/compressed_tensors_json_reader_factory_infra.py 12 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/compressed_tensors_json_writer_factory_infra.py 12 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/compressed_tensors_safetensors_writer_factory_infra.py 15 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/config/__init__.py 0 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/config/base.py 22 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/quantization/__init__.py 0 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/quantization/quant_args.py 171 9 95% 46, 184, 190, 203, 214, 222, 233, 263, 353 /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/quantization/quant_config.py 41 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/quantization/quant_config_builder.py 147 6 96% 99, 102, 118, 187, 235, 239 /home/wangminghua/msmodelslim/msmodelslim/format/compressed_tensors_format/quantization/quant_scheme.py 57 1 98% 96 /home/wangminghua/msmodelslim/msmodelslim/format/interface.py 21 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/mindie_format/__init__.py 2 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/mindie_format/mindie.py 12 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/mindie_format/mindie_json_writer_factory_infra.py 14 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/mindie_format/mindie_tensors_writer_factory_infra.py 15 0 100% /home/wangminghua/msmodelslim/msmodelslim/format/registry.py 39 0 100% ----------------------------------------------------------------------------------------------------------------------------------------------------------------- TOTAL 874 18 98% - 请说明为何需要这些更改,例如具体的使用场景或bug描述。 - 关联issue号(如果有)。 - Please clarify what changes you are proposing. The purpose of this section is to outline the changes and how this PR fixes the issue. If possible, please consider writing useful notes for better and faster reviews in your PR. - Please clarify why the changes are needed. For instance, the use case and bug description. - Related issue number (if any) ## 面向用户的变更 (Does this PR introduce _any_ user-facing change)? - 请注意,这里指的是**任何**面向用户的变更,包括但不限于API、用户界面或其他使用方式上的变更。 - Note that it means *any* user-facing change including all aspects such as API, interface or other behavior changes. ## 功能验证 (How was this patch tested?) 请确认CI已通过增量及存量的单元测试用例。 如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤(最好提供完整的可复现的操作路径及关键截图),以便Committer能够快速复现验证,也便于后续的维护。 如果未添加测试,请说明未添加的原因,以及为何难添加测试。 - [_] 功能自验  - [_] 本地自验截图(涉及个人标识符等敏感信息请注意脱敏) - [_] 新增/变更内容是否已新增/适配UT测试用例看护 CI passed with new added/existing test. If it was tested in a way different from regular unit tests, please clarify how you tested step by step, ideally copy and paste-able, so that other reviewers can test and check, and descendants can verify in the future. If tests were not added, please describe why they were not added and/or why it was difficult to add. - [_] Self-verification of the feature. - [_] Screenshot of local self-verification (please anonymize any sensitive information such as personal identifiers) - [_] Have new or modified unit test (UT) cases been added or adapted to cover the newly added or changed content? See merge request: Ascend/msmodelslim!513 | 4 个月前 | |
[Feature] msmodelslim 消减 wcmatch/pygtrie 第三方依赖 Co-authored-by: Rigel_Chen<chenruijie9@huawei.com> # message auto-generated for no-merge-commit merge: !835 merge remove-unnecessary-deps into master [Feature] msmodelslim 消减 wcmatch/pygtrie 第三方依赖 Created-by: Rigel_Chen Commit-by: Rigel_Chen Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:若无变更请保留「无」;涉及 CLI、API、YAML 等请在此项补充说明。 **输出件变更(按需):** 无 > 备注:若无变更请保留「无」;涉及导出格式、产物路径等请在此项补充说明。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):** 专项要求,对组件主动依赖进行分析,清理无关依赖 **修改目的:** 降低客户安装上手难度 **修改内容:** 从核心 requirements.txt 削减以下 3 项: | 依赖 | 策略 | 替代方案 | 主要触点 | |------|------|----------|----------| | **wcmatch** | 自研轻量替代后删声明 | brace 展开 + 标准库 fnmatch | utils/config_map.py;lab_practice 存在 {1,2,3} 层名写法 | | **pygtrie** | 自研前缀冲突检测后删声明 | dict/字符串前缀集合实现同路径/父子路径冲突 | utils/distributed/.../wave.py | | **requests** | urllib.request 封装后删声明 | timeout / 禁重定向 / SSL / JSON POST;异常映射 | utils/security/request.py;infra/vllm_ascend_server.py;infra/evaluation/precheck | **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [x] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** bash # 在此粘贴可复现命令 ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [ ] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [x] 是否具备 UT 测试用例看护(路径:用例路径;未添加请说明原因) - [ ] 是否需要添加冒烟:否(若「是」请说明冒烟场景及对应用途) See merge request: Ascend/msmodelslim!835 | 2 个月前 | |
[bugfix] 完善命令行统一规范 Co-authored-by: tanxiangyuu<tanxiangyu2@huawei.com> Co-authored-by: Rigel_Chen<chenruijie9@huawei.com> # message auto-generated for no-merge-commit merge: !886 merge cli-bugfix into master [bugfix] 完善命令行统一规范 Created-by: Rigel_Chen Commit-by: Rigel_Chen;tanxiangyuu Merged-by: ascend-robot Description: # PR 提交说明 提交前请阅读 [贡献指南](https://gitcode.com/Ascend/msmodelslim/blob/master/docs/zh/contributing/contributing_guide.md),开发者文档:[模型接入指南](../docs/zh/knowledge_base/model/integrating_models.md) PR 标题前缀:[Feature]、[Bugfix]、[Doc]、[Test](与 CONTRIBUTING 一致) ## 1. 影响面评估 **接口变更(按需):** 无 > 备注:若无变更请保留「无」;涉及 CLI、API、YAML 等请在此项补充说明。 **输出件变更(按需):** 无 > 备注:若无变更请保留「无」;涉及导出格式、产物路径等请在此项补充说明。 **非兼容变更(按需):** 无 > 备注:若无变更请保留「无」;若有非兼容变更请说明迁移方式。 **SIG 评审结论(按需):** 无 > 提醒:非兼容、安全风险等高危 PR 须经 SIG 评审后合入;无则保留「无」。 ## 2. 修改描述 **修改背景(可选):** 命令行统一规范化后存在若干问题:-V 打包后丢失 git commit hash、版本/帮助命令因急切加载 torch 导致启动卡顿约 10s、帮助信息排版与 usage 模板不规范、analyze layer 帮助示例使用了不参与逐块分析的 lm_head **修改目的:** 修复版本信息与启动性能问题,完善统一命令行的帮助/版本/参数规范。 **修改内容:**(按「概念 - 变化」分条,示例:core/算法:新增 SmoothQuant 离群值抑制) • cli:修复 -V/--version 打包后无 commit hash 问题,版本横幅补充 Build Info(GitCommit / Repo / Build Date);新增 _build_info.py 承载构建元数据,setup.py 在打包 wheel/sdist 时将 git hash 与构建日期写入。 • cli:统一帮助格式化(规范 4.4)——多值参数渲染为 <NAME> [<NAME> ...],三列对齐与长描述自动换行,单行 Usage 模板(必填展开、可选折叠为 [options])。 • cli:quant/tune 的 --config 增加 -c 短别名;--calibration_dataset metavar 由 <FILE> 改为 <PATH> 并澄清路径含义。 • cli:修正 analyze layer 帮助示例(--metrics mse_model_wise --quant_modules model.layers.0.self_attn.*);analyze attn_head 补齐统一 description/examples;FAQ 指向真实 gitcode 页面。 • test:新增占位符格式化单测,更新 analyze 设备参数归一化测试,调整 test_smooth_base 格式。 **概念域参考(填写提示):** - cli:命令行 quant / analyze / tune - app:最佳实践量化、量化分析、精度反馈自动调优等 - core:算法、量化服务、调度、张量量化、调优策略、最佳实践、上下文等 - infra:模型适配、调优计划/历史/缓存、测评服务等 - utils:日志、错误处理、插件等 ## 3. 功能验证 冒烟由 CI 门禁检查,无需填写「冒烟是否通过」。 - [x] 功能自验 - [ ] 本地自验用例截图(请勿包含个人信息;可附复现命令) **复现步骤(可选):** bash # 在此粘贴可复现命令 ## 4. 自检(请逐项确认,不适用标 N/A) **典型安全编码问题** - [x] 是否已校验外部数据 - [x] 是否未采集或打印敏感信息 - [x] 是否已正确设置文件权限 - [x] 是否充分考虑浮点运算溢出、除零等异常场景 - [x] 是否已对正则表达式做 ReDos 检查 **DT** - [x] 是否具备 UT 测试用例看护(路径:用例路径;未添加请说明原因) - [ ] 是否需要添加冒烟:否(若「是」请说明冒烟场景及对应用途) See merge request: Ascend/msmodelslim!886 | 1 个月前 |
MindStudio ModelSlim
简体中文 | English
✨ 最新消息
🔹 [2026.09.03]
- 新增对
Step-3.7-Flash(W8A8 MXFP8)多模态模型的量化支持
🔹 [2026.08.07]
- 多模态理解模型支持多卡分布式逐层量化,提升多模态理解模型量化效率
- 新增对
Kimi-K3(W4A8)模型的量化支持
🔹 [2026.09.02]
- 完善 Gemma4 Dense
gemma-4-31B-it的 MXFP8/MXFP4 混合量化最佳实践 - 完善 Gemma4 MoE
gemma-4-26B-A4B-it的 MXFP8/MXFP4 混合量化最佳实践
🔹 [2026.07.15]
- 新增对 Gemma4 Dense
gemma-4-31B-it(W8A8)、Gemma4 MoEgemma-4-26B-A4B-it(W8A8)模型的量化支持
🗂️ 更多历史更新(点击展开)
🔹 [2026.07.07]
- 新增对腾讯混元
Hy3(W8A8)模型的量化支持
🔹 [2026.06.01]
- 新增对
InternVL3_5-38B(W8A8)、InternVL3_5-241B-A28B(W8A8)模型的量化支持 - 新增对
Kimi-K2.6(W4A8)模型的量化支持
🔹 [2026.04.01]
- 新增对
DeepSeek-V4-Flash(W8A8)模型的量化支持 - 新增对
Kimi-K2.5(W4A8)模型的量化支持
📄 更多历史更新记录,请参见《最新消息》。
ℹ️ 简介
MindStudio ModelSlim(msModelSlim) 是昇腾生态下的高性能模型压缩工具,支持稠密LLM、MoE及多模态模型的量化与压缩。开发者可通过命令行与配置快速调优并导出适配 MindIE、vLLM-Ascend 等框架的模型,在昇腾AI处理器上高效部署。
它能为你带来什么:
- 🚀 推理加速:量化后显著降低显存占用,提升推理吞吐与部署成本效率(例如 Qwen3.6-27B 模型原始权重50+GB,量化后30+GB,显存节约40%)。
- 🎯 开箱即用:集成主流大模型量化最佳实践,
msmodelslim quant一条命令完成量化。 - 🔧 精度可控:提供敏感层分析、自动调优与精度反馈闭环,量化精度可量化、可调优。
- 🧩 生态友好:导出的量化权重无缝接入 vLLM-Ascend 等主流推理框架。
🚀 快速开始
手把手教你完成端到端模型量化,请参见《快速入门》:
📦 安装指南
msModelSlim已发布到PyPI,可通过pip直接安装。
# 安装 msModelSlim(最新版本已更新到PyPI源)
pip install msmodelslim
# 验证安装:打印命令行帮助信息即表示安装成功
msmodelslim --help
更多安装方式,请参见《安装指南》。
📘 使用指南
想了解msModelSlim如何使用? 可按需选择入口:
| 业务流程 | 对应工具/功能 |
|---|---|
| 《新模型量化调优流程》 | 权重量化、敏感层分析 |
| 《精度调优方法》 | 敏感层分析、自动调优、调试模式 |
| 《主流模型量化部署》 | 一键量化 |
| 《量化推理精度异常定位》 | 调试模式 |
更多使用指南,请参见《使用指南》。
📚 知识库
不懂 W4A8/W8A8 等量化术语? 请参见《推理加速知识库》。
💡 典型案例
需要模型量化调优的典型场景? 请参见《msModelSlim 典型案例》。
❓ FAQ
遇到了问题? 请参见《FAQ》。
🌌 智能检索
为提升文档查阅效率,我们提供多种高效检索方式:
🔹 AI 智能体(msagent):msModelSlim 量化能力已集成至 msagent 智能体,通过自然语言交互即可自动完成模型量化任务。
🔹 AI 问答(DeepWiki):自然语言问答,快速把握项目架构与模块关系。
🛠️ 贡献指南
想要贡献力量? 具体请参见《贡献指南》。
⚖️ 相关说明
🔹 《版本说明》
🔹 《许可证声明》
🔹 《安全声明》
🔹 《免责声明》
🤝 建议与交流
欢迎大家为社区做贡献。如果有任何疑问或建议,请提交 Issues,我们会尽快回复。感谢您的支持。
| 即时互动(微信群) | 官方资讯(公众号) | 深度支持(助手/论坛) |
|---|---|---|
![]() 扫码加入技术交流群 |
![]() 扫码关注官方公众号 |
扫码入群并关注公众号,直达 MindStudio 用户与开发者最快捷的交流平台: 快速提问: 与社区小伙伴即时探讨技术问题 掌握动态: 第一时间获取版本发布与功能更新通知 经验共享: 与广大开发者交流最佳实践与实战心得 更多支持渠道:👉 昇腾助手: |
🙏 致谢
本工具由华为公司的下列部门联合贡献:
🔹 昇腾计算MindStudio开发部
🔹 昇腾计算生态使能部
🔹 昇腾计算技术开发部
🔹 2012实验室
感谢来自社区的每一个 PR,欢迎贡献!

