
quantize【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√功能说明基于torch module的训练后量化接口高精度模型转换为校准模型得到量化校准模型推理后计算得到量化参数。函数原型quantize(model, config)参数说明参数名输入/输出说明model输入/输出输入含义待量化的高精度模型输出含义量化校准模型数据类型torch.nn.Moduleconfig输入含义量化配置。数据类型自定义dict其中包含weight/input/algorithm/skip_layers的配置详细配置参数请参见config详细配置。全量化支持的层原始模型中数据类型为float32fp32、float16fp16、bfloat16bf16时可以通过本节介绍的内容量化后转换为HiFloat8HiF8、float8fp8、MXFP8、float4数据格式通过对数据格式的压缩实现模型轻量化。注意由于torch_npu暂不支持Ascend 950PR/Ascend 950DT以下功能特性暂时只支持act_type: INT8 wts_type: INT8。该特性支持的层如下。表 1支持量化的层以及约束支持的层类型原始数据类型支持的量化类型组合约束torch.nn.Linearfloat32fp32、float16fp16、bfloat16bf16act_type: HIFLOAT8 wts_type: HIFLOAT8act_type: FLOAT8_E4M3FN wts_type: FLOAT8_E4M3FN激活数据支持PER_TENSOR量化权重支持PER_TENSOR/PER_CHANNEL量化量化算法为OFMRconfig详细配置中必须配置ofmr选项bfloat16bf16act_type: MXFP8_E4M3FN wts_type: MXFP8_E4M3FN支持2~6维数据输入、PER_GROUP量化、支持对称量化、cin长度除以32向上取整后是2的整数倍不使用量化算法即只做mx数据类型转换config详细配置中必须配置mxquant选项bfloat16bf16act_type: FLOAT8_E4M3FN wts_type: FLOAT4_E2M1支持2~6维数据输入、bias为false激活数据支持shape为(m,k)权重支持shape为(n,k)其中k是64整数倍激活数据支持PER_TENSOR量化权重支持PER_GROUP量化激活和权重都仅支持对称量化支持MIN-MAX量化算法SmoothQuant算法config详细配置中必须分别配置minmax、smoothquant选项float16fp16、bfloat16bf16act_type: INT8 wts_type: INT8支持2~6维数据输入激活数据支持PER_TENSOR量化支持对称非对称量化bias量化为INT32权重支持PER_TENSOR/PER_CHANNEL量化支持对称量化激活数据支持PER-TOKEN对称量化bias不量化k是16的倍数n是8的倍数权重支持PER_TENSOR/PER_CHANNEL对称量化支持MIN-MAX量化算法、SmoothQuant算法config详细配置中必须分别配置minmax、smoothquant选项torch.nn.Conv2dfloat32fp32、float16fp16、bfloat16bf16act_type: HIFLOAT8 wts_type: HIFLOAT8act_type: FLOAT8_E4M3FN wts_type: FLOAT8_E4M3FNpadding_mode为zeros、支持PER_TENSOR/PER_CHANNEL量化量化算法为OFMRconfig详细配置中必须配置ofmr选项注act_type和wts_type参数分别指config详细配置中的数据activation和权重weight量化类型。仅权重量化支持的层本章节介绍仅权重量化特性以及对应的优化算法AWQ、GPTQ等权重量化算法。原始模型中数据类型为float16fp16、bfloat16bf16时可以通过本节介绍的内容仅权重量化后转换为HIFloat8HiF8、float8fp8、MXFP4、float4数据格式通过对权重的压缩实现模型轻量化。注意由于torch_npu暂不支持Ascend 950PR/Ascend 950DT以下功能特性暂时只支持wts_type: INT8 或 wts_type: INT4。该特性支持的层如下表 2支持量化的层以及约束支持的层类型原始数据类型支持的量化类型组合约束torch.nn.Linearfloat16fp16、bfloat16bf16wts_type: HIFLOAT8wts_type: FLOAT8_E4M3FN支持PER_TENSOR/PER_CHANNEL量化支持对称量化支持2~6维数据输入支持OFMR量化算法、GPTQ量化算法config详细配置中必须配置ofmr、gptq选项wts_type: MXFP4_E2M1支持PER_GROUP量化支持对称量化支持2~6维数据输入支持不配置量化算法即config详细配置中配置mxquant选项、GPTQ量化算法config详细配置中必须配置gptq选项、AWQ量化算法config详细配置中必须配置awq选项wts_type: FLOAT4_E2M1支持PER_GROUP量化支持对称量化支持2~6维数据输入支持MIN-MAX量化算法、GPTQ量化算法、AWQ量化算法config详细配置中必须配置minmax、gptq、awq选项wts_type: INT8支持PER_TENSOR/PER_CHANNEL/PER_GROUP量化支持对称量化/非对称量化支持MIN-MAX量化算法、GPTQ量化算法、AWQ量化算法config详细配置中必须配置minmax、gptq、awq选项wts_type为INT8时原始模型weight需要K,N轴32元素对齐wts_type为INT4时需要K,N轴64元素对齐float32fp32、float16fp16、bfloat16bf16wts_type: INT4支持PER_TENSOR/PER_CHANNEL/PER_GROUP量化支持对称量化/非对称量化支持MIN-MAX量化算法、GPTQ量化算法、AWQ量化算法config详细配置中必须配置minmax、gptq、awq选项wts_type为INT4时原始模型weight需要K,N轴64元素对齐返回值说明无调用示例# 建立待进行量化的网络图结构 ori_model build_model() model copy.deepcopy(ori_model) # 量化配置 cfg { batch_num: 1, quant_cfg: { weights: { type: int8, symmetric: True, strategy: tensor, }, }, algorithm: {minmax}, } # 调用量化接口生成量化校准模型 quantize(model, cfg)config详细配置key--valuebatch_num--uint32类型量化使用的batch数量。quant_cfg--量化配置。-weights-仅权重量化配置。--typestring类型权重weight量化粒度。当前支持如下类型hifloat8float8_e4m3fnmxfp4_e2m1float4_e2m1int4int8--symmetricbool类型权重是否为对称量化。True对称量化。False非对称量化。--strategystring类型权重量化粒度。tensor对应per-tensor。channel对应per-channel。group对应per-group。量化粒度介绍请参见压缩概念。--group_size仅权重量化场景配置per-group量化粒度下group的大小该参数只有配置了per-group后才能配置。要求传入值的范围为[32, K-1]且必须是32的倍数。-inputs-数据量化配置。--typestring类型数据activation量化粒度。目前支持如下类型hifloat8float8_e4m3fnmxfp8_e4m3fnint8--symmetricbool类型数据是否为对称量化。True对称量化。False非对称量化。--strategystring类型数据量化粒度。tensor对应per-tensor。token对应per-token。group对应per-group该参数只支持量化数据类型为mxfp8_e4m3fn时配置。algorithm--string类型量化算法支持如下配置awqgrids_numuint32类型搜索格点数量默认为20。gptq。minmax。smoothquantsmooth_strengthfloat类型迁移强度默认值0.5。ofmr。mxquant仅做mx数据类型转换。具体请参见量化算法介绍。skip_layers--string类型按层名跳过哪些层不做量化全局配置参数。指定层名后只要层名包括用户设置的字符串就跳过该层不做量化。【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考