文件最后提交记录最后更新时间
[docs] improve the docs readability Co-authored-by: zhongzhoutan<1710115119@bjmu.edu.cn> # message auto-generated for no-merge-commit merge: !309 merge docs/docs-improvement into master [docs] improve the docs readability Created-by: tangxuanya Commit-by: zhongzhoutan 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). ## 一、Bug 修复(正确性问题) | 文件 | 修复内容 | |------|----------| | [SessionConfig.md](../docs/zh/python_api_v0/unified_multimodal_generation_apis/SessionConfig.md) | act_method 可选值 'mixed''mix'(已通过源码枚举 ACT_METHOD 验证) | | [SessionConfig.md](../docs/zh/python_api_v0/unified_multimodal_generation_apis/SessionConfig.md) | 代码示例中 output_path="./" 后缺少逗号,已补全 | | [[onnx]run().md](../docs/zh/python_api_v0/quantization_apis/[onnx]post_training_quantization/run().md) | 补充了被使用但未定义的变量 input_model_path | | [traditional_model_quantization_and_calibration.md](../docs/zh/feature_guide/traditional_quantization_v0/traditional_model_quantization_and_calibration.md) | 将 from ascend_utils.common.security import SafeWriteUmask 移至实际使用它的代码块(diffusers 示例),而非错误放置在 resnet50 示例中 | | [典型模型量化支持特性设计说明书.md](../docs/zh/design/典型模型量化支持特性设计说明书.md) | 修复两处错误的 CLI 子命令:msmodelslim quantizemsmodelslim quant | | [usage.md(一键量化)](../docs/zh/feature_guide/quick_quantization_v1/usage.md) | 修复 tag 参数说明语法错误:"则于用户交互" → "则与用户交互,询问是否"(缺少谓语动词) | | [quantization_quick_start.md](../docs/zh/getting_started/quantization_quick_start.md) | 同上,tag 参数说明语法修复 | --- ## 二、锚点与链接修复 | 文件 | 修复内容 | |------|----------| | [integrating_multimodal_understanding_model.md](../docs/zh/developer_guide/integrating_multimodal_understanding_model.md) | 所有带编号的标题锚点(如 #5-校准数据准备#34-辅助方法...)已更新为与去编号后的标题一致(如 #校准数据准备#辅助方法...) | | [sparse_quantization_accuracy_tuning_cases.md](../docs/zh/case_studies/sparse_quantization_accuracy_tuning_cases.md) | 修复链接目标失效问题 | | [w8a8_accuracy_tuning_policy.md](../docs/zh/case_studies/w8a8_accuracy_tuning_policy.md) | 修复链接目标失效问题 | --- ## 三、内容优化——integrating_multimodal_understanding_model.md - 移除所有标题的 1./2./3.x 编号前缀(共 14 处),与文档风格保持一致 - 新增术语内联说明:Merger、DeepStack、PatchMerger、MoE、IterSmooth、QuaRot - 纯文本文件路径改为可点击的 GitCode 链接(model_adapter.py__init__.pymoe_utils.py 等) - 校准数据章节(原第 5 节)从约 60 行详细说明精简为一句话 + 指向 usage.md#dataset 的链接,消除内容重复 - 新增 YAML 配置字段说明表格,对每个 spec 配置块进行解释,并附 linear_quant.mdusage.md 的参考链接 - FAQ 节标题去编号,锚点同步更新 - 附录:修复一处微小代码错误;精简重复的 VLM 数据加载器链接 --- ## 四、内容优化——量化算法文档 | 文件 | 变更内容 | |------|----------| | [fa3_quant.md](../docs/zh/quantization_algorithms/quantization_algorithms/fa3_quant.md) | 删除"使用说明"节中的重复 YAML 配置块;将使用说明合并至"YAML配置示例"节 | | [float_sparse.md](../docs/zh/quantization_algorithms/quantization_algorithms/float_sparse.md) | 同上,删除重复 YAML 块及空的"模型适配"节 | | [gptq.md](../docs/zh/quantization_algorithms/quantization_algorithms/gptq.md) | 在 YAML 示例前补充"作为Processor使用"引导语 | | [histogram_activation_quantization.md](../docs/zh/quantization_algorithms/quantization_algorithms/histogram_activation_quantization.md) | 删除重复 YAML;代码路径改为 GitCode 链接;字段表格重构为 Histogram 专属约束表;修复 FAQ 中量化器查找说明,改为正确路径引用 | | [kvcache_quant.md](../docs/zh/quantization_algorithms/quantization_algorithms/kvcache_quant.md) | 合并两处重复 YAML 配置块 | | [minmax.md](../docs/zh/quantization_algorithms/quantization_algorithms/minmax.md) | 代码路径改为 GitCode 链接;功能介绍重构为 3 个子节;YAML 示例补全所有参数;字段说明表格扩充 | | [pdmix.md](../docs/zh/quantization_algorithms/quantization_algorithms/pdmix.md) | 统一 per-token/per-tensor 写法为 ` per_token / per_tensor `(代码格式 + 下划线风格),全文一致 | --- ## 五、内容优化——quantization_result.md - 文件目录树及说明表格中新增 optional/quarot.safetensors 条目 - 量化权重文件名从 quant_model_weight_w8a8.safetensors 泛化为 quant_model_weight_{quant_type}.safetensors,并附说明 - 删除冗余的"注意"提示块(信息已移入表格) - 所有带编号章节标题(#### 1.#### 17.)去掉编号 - 新增"QuaRot 导出结果"完整章节,包含目录结构、文件说明表、quant_model_description.json JSON 结构示例及使用场景说明 --- ## 六、example/ 目录 README 修复 | 文件 | 变更内容 | |------|----------| | [Llama/README.md](../example/Llama/README.md) | model_type 参数说明扩展,明确 llama3.1_fp(基础模型)和 llama3.1_instruct(Instruct 模型);为全部 5 条 LLaMA3.1 基础模型命令补加 --model_type llama3.1_fp 参数 | | [Qwen3-Next/README.md](../example/Qwen3-Next/README.md) | transformers 版本要求说明改写;标题去编号;占位符格式改为 ` ${MODEL_PATH} ` 风格 | | [GLM/README.md](../example/GLM/README.md) | "L自动回退等级" → "自动回退等级"(多余字符修复) | | [HunYuan/README.md](../example/HunYuan/README.md) | "HunYuan" → "Hunyuan"(官方大小写拼写) | | [GLM-4.1V/README.md](../example/multimodal_vlm/GLM-4.1V/README.md) | 首次出现"RLCS"时补充全称"基于课程采样的强化学习" | | [example/README.md](../example/README.md) | 删除空的"快速开始"节 | --- ## 七、其他文档零散修复 | 文件 | 变更内容 | |------|----------| | [dir_structure.md](../docs/zh/dir_structure.md) | "Smooth Quant" → "SmoothQuant"(官方名称) | | [auto_precision_tuning/usage.md](../docs/zh/feature_guide/auto_precision_tuning/usage.md) | device 参数说明:删除指向失效链接的描述,改为"数据并行(Data Parallel,DP)逐层量化"的简明说明 | | [analyze_api_usage.md](../docs/zh/feature_guide/sensitive_layer_analysis/analyze_api_usage.md) | 删除对 trust_remote_code=False 含义的错误/混淆说明 | | [mindspeed_adapter.md](../docs/zh/feature_guide/traditional_quantization_v0/mindspeed_adapter.md) | 删除 dev_type='npu' 参数上具有误导性的内联注释 | | [foundation_model_support_matrix.md](../docs/zh/model_support/foundation_model_support_matrix.md) | 精简脚注 4(删除 vLLM 绕行方案描述) | | [典型模型量化支持特性设计说明书.md](../docs/zh/design/典型模型量化支持特性设计说明书.md) | 新增 16 条缩写词表;修复 Use Case 名称拼写错误 | | [自动调优加速特性设计说明书.md](../docs/zh/design/自动调优加速特性设计说明书.md) | 修复 Use Case 名称拼写错误 | | [release_notes.md](../docs/zh/appendix/release_notes.md) | 将空的"无"替换为适当内容 | | [README.md](../README.md) | 开发者指南部分新增多模态模型接入链接 | --- ## 总体评价 本次提交仅涉及文档修改,改动范围清晰、目的明确。重点亮点: - **修复 7 处正确性 Bug**:错误 CLI 命令、错误枚举值、缺失变量、错位导入、失效锚点、语法错误 - **消除 5+ 个文件中的内容重复**:量化算法文档及多模态接入指南均有大量冗余内容被精简 - **统一去除标题编号**:4+ 个文件中的章节编号被一致移除,符合项目文档风格规范 - **无功能性变更引入**:所有锚点目标变更均与去编号后的新标题保持对应,未引入回归问题 See merge request: Ascend/msmodelslim!3091 个月前
【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!284 个月前
README.md

Hunyuan 量化说明

模型介绍

  • Tencent-Hunyuan-Large 目前业界开源的基于 Transformer 的最大 MoE 模型,拥有 3890 亿个参数、520 亿个活跃参数,且其具备高质量合成数据增强训练、KV 缓存压缩、专家特定学习率缩放、长上下文处理能力强(预训练模型支持 256K 文本序列,Instruct 模型支持 128K)。

使用前准备

支持的模型版本与量化策略

模型系列 模型版本 HuggingFace链接 W8A8 W8A16 W4A16 W4A4 稀疏量化 KV Cache Attention 量化命令
Hunyuan Tencent-Hunyuan-Large Tencent-Hunyuan-Large W8A8混合量化

说明:

  • ✅ 表示该量化策略已通过msModelSlim官方验证,功能完整、性能稳定,建议优先采用。
  • 空格表示该量化策略暂未通过msModelSlim官方验证,用户可根据实际需求进行配置尝试,但量化效果和功能稳定性无法得到官方保证。
  • 点击量化命令列中的链接可跳转到对应的具体量化命令

量化权重生成

  • 量化权重可使用 quant_hunyuan.py 脚本生成,以下提供Hunyuan模型量化权重生成快速启动命令。

quant_hunyuan.py 量化参数说明

参数名 含义 默认值 使用方法
model_path 浮点权重路径 无默认值 必选参数;
输入Hunyuan权重目录路径。
save_directory 量化权重路径 无默认值 必选参数;
输出量化结果目录路径。
part_file_size 生成量化权重文件大小,单位是GB 5 可选参数;
生成量化权重文件大小,默认5GB。
w_bit 权重量化bit 8 大模型量化场景下,可配置为8或16;
大模型稀疏量化场景下,需配置为4。
a_bit 激活值量化bit 8 大模型量化场景下,可配置为8或16;
大模型稀疏量化场景下,需配置为8。
disable_names 手动回退的量化层名称 默认回退所有mlp.gate.wg层 用户可根据精度要求手动设置,默认回退隐藏层的降维投影层。
device_type device类型 npu 可选值:['cpu', 'npu']。
fraction 模型权重稀疏量化过程中被保护的异常值占比 0.01 取值范围[0.01,0.1]。
act_method 激活值量化方法 1 (1) 1代表Label-Free场景的min-max量化方式。
(2) 2代表Label-Free场景的histogram量化方式。
(3) 3代表Label-Free场景的自动混合量化方式,LLM大模型场景下推荐使用。
co_sparse 是否开启稀疏量化功能 False True: 使用稀疏量化功能;
False: 不使用稀疏量化功能。
anti_method 离群值抑制参数 无默认值 'm1': SmoothQuant算法。
'm2': SmoothQuant加强版算法,推荐使用。
'm3': AWQ算法。
'm4': smooth优化算法 。
'm5': CBQ量化算法。
disable_level L自动回退等级 L0 配置示例如下:
'L0':默认值,不执行回退。
'L1':回退1层。
'L2':回退2层。
'L3':回退3层。
'L4':回退4层。
'L5':回退5层。
do_smooth 是否启动smooth量化功能 False True: 开启smooth量化功能;
False: 不开启smooth量化功能。
use_sigma 是否启动sigma功能 False True: 开启sigma功能;
False: 不开启sigma功能。
use_reduce_quant 权重量化是否是lccl all reduce量化 False 用于MindIE推理的标识。
sigma_factor sigma功能中sigma的系数 3.0 数据类型为float,默认值为3.0,取值范围为[1.0, 3.0]。
说明:仅当use_sigma为True时生效。
is_lowbit 是否开启lowbit量化功能 False (1) 当w_bit=4,a_bit=8时,为大模型稀疏量化场景,表示开启lowbit稀疏量化功能。
(2) 其他场景为大模型量化场景,会开启量化自动精度调优功能。
当前量化自动精度调优框架支持W8A8,W8A16量化。
mm_tensor 是否开启mm_tensor量化功能 True True: 开启mm_tensor量化功能;
False: 不开启mm_tensor量化功能。
w_sym 是否开启w_sym量化功能 True True: 开启w_sym量化功能;
False: 不开启w_sym量化功能。
use_kvcache_quant 是否使用kvcache量化功能 False True: 使用kvcache量化功能;
False: 不使用kvcache量化功能。
use_fa_quant 是否使用FA3量化 False True: 使用FA3量化类型;
False: 不使用FA3量化类型。
fa_amp FA3量化场景下的自动回退的layer数量 0 数据类型为int,默认值为0。数据取值范围是大于等于0,并且小于等于模型layer数量,如果超出模型的layer数量将会取模型的最大layer数量为回退层数。
open_outlier 是否开启离群值抑制功能 True True: 开启离群值抑制功能;
False: 不开启离群值抑制功能。
group_size 离群值抑制参数 64 数据类型为int,默认值为64。数据取值范围是大于等于1,并且小于等于1024。
is_dynamic 是否使用per-token动态量化功能 False True: 使用per-token动态量化;
False: 不使用per-token动态量化。
input_ids_name 指定分词结果中输入 ID 对应的键名 input_ids
attention_mask_name 指定分词结果中注意力掩码对应的键名 attention_mask
tokenizer_args 加载自定义tokenizer时传入的自定义参数 以字典方式传入。
disable_last_linear 是否回退最后linear层 True True:回退最后linear层。
False:不回退最后linear层。
model_name 模型名称,可选参数 None 用于控制异常值抑制参数。
trust_remote_code 是否信任自定义代码 False 指定trust_remote_code=True让修改后的自定义代码文件能够正确地被加载(请确保所加载的自定义代码文件来源可靠,避免潜在的安全风险)。
mindie_format 非多模态模型量化后的权重配置文件是否兼容MindIE现有版本 False 开启mindie_format时保存的量化权重格式能够兼容MindIE 2.1.RC1及之前的版本。
  • 更多参数配置要求,请参考量化过程中配置的参数 QuantConfig 以及量化参数配置类 Calibrator

使用示例

  • 请将{浮点权重路径}和{量化权重路径}替换为用户实际路径。

  • 如果需要使用NPU多卡量化,请先配置环境变量,支持多卡量化:

    export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
    export PYTORCH_NPU_ALLOC_CONF=expandable_segments:False
    
  • 若加载自定义模型,调用from_pretrained函数时要指定trust_remote_code=True让修改后的自定义代码文件能够正确的被加载。(请确保加载的自定义代码文件的安全性)

Hunyuan-Large

运行前必检

Hunyuan-Large模型较大,且存在需要手动适配的点,为了避免浪费时间,还请在运行脚本前,请根据以下必检项对相关内容进行更改。

  • 1、需安装更新transformers版本(>=4.48.2)

Hunyuan-Large W8A8 混合量化 (experts层: W8A8 Dynamic量化,其余层: W8A8量化)

注:需进入当前脚本目录下执行命令行

  • 生成Hunyuan-Large模型 W8A8 混合量化权重

    python3 quant_hunyuan.py --model_path {浮点权重路径} --save_directory {量化权重路径} --anti_method m4 --trust_remote_code True
    

Hunyuan-Large量化QA

  • Q:modeling_utils.py报错 if metadata.get("format") not in ["pt", "tf", "flax", "mix"]: AttributeError: "NoneType" object has no attribute 'get';
  • A:说明输入的权重中缺少metadata字段,需安装更新transformers版本(>=4.48.2)