前提条件
已在环境上安装CANN和ATB Models详情请参见《MindIE安装指南》。
本次样例参考以下安装路径进行:
- 安装ATB Models并初始化ATB Models环境变量。模型仓set_env.sh脚本中会初始化“${ATB_SPEED_HOME_PATH}”环境变量。
ATB Models公共能力支持以下量化方式:
- W8A8
- W8A16
- W8A8SC 稀疏量化
- Anti-Outlier 离群值处理
注意:每个模型具体支持的量化方式不同,请参考${ATB_SPEED_HOME_PATH}/examples/models/路径下模型Readme文件中的特性支持矩阵。
量化特性支持量化回退,即模型中部分权重不做量化,使用原始的浮点权重进行MatMul计算,支持Linear级别的量化回退。量化回退可以提升量化权重的精度。每个模型不同量化方式下的量化回退配置可能都不相同,请参考各模型生成量化权重脚本中的配置。
以LLaMa为例,在${ATB_SPEED_HOME_PATH}/examples/models/convert_quant_weights.py中定义了不同量化方式下的回退层。在W8A16和W4A16量化场景下,不设置回退层(默认回退lmhead),其他量化场景下,将layer中的down层全部回退。
disable_names = [] if args.a_bit != 16: # W8A16, W4A16没有回退层 num_layers = config.num_hidden_layers disable_names = [f"model.layers.{layer}.mlp.down_proj" for layer in range(num_layers)] disable_names.append("lm_head")
父主题: 量化特性介绍