昇腾社区首页
中文
注册

模型量化

模型量化是一种模型压缩技术,它通过减少模型权重、激活的数值、表示的精度来降低模型的存储和计算需求。量化工具通常会将高位浮点数转换为低位定点数,从而直接减少模型权重的体积。

模型量化工具的输入为能够正常运行的模型和数据,输出为一个可以使用的量化权重和量化因子。

前提条件

  • 完成开发环境部署。可参考MindIE安装指南》的“安装MindIE > 方式一:镜像部署方式”章节内容,通过docker镜像的方式部署开发环境。
  • 已安装msit工具包。请参考msIT 工具安装文档进行安装,推荐使用源代码安装方式。
  • 已安装msModelSlim软件。请参见msModelSlim网站下载msModelSlim软件包进行安装。

操作步骤

  1. 下载Llama-3.1-8B-Instruct权重和模型文件至本地,如图1所示,单击下载
    图1 下载文件至本地
  2. 执行以下命令,进入Llama目录。
    cd ${HOME}/msit/msmodelslim/example/Llama

    其中HOME为用户自定义安装msit的路径。

  3. 执行量化脚本,生成量化权重文件,并存入自定义存储路径中。示例命令为W8A16量化命令。
    python3 quant_llama.py --model_path ${model_path} --save_directory ${save_directory} --device_type npu --w_bit 8 --a_bit 16 

    其中--model_path为已下载的模型文件所在路径;--save_directory为生成的量化权重文件的存储路径。其它模型文件量化案例可参见LLAMA 量化案例

  4. 量化完成后,结果图2所示,safetensors文件大小由15.1G压缩至8.5G。
    图2 量化后的结果
  5. 生成的w8a16量化权重文件如下所示。
    ├── config.json   #配置文件
    ├── generation_config.json   #配置文件
    ├── quant_model_description_w8a16.json   #w8a16量化后的权重描述文件
    ├── quant_model_weight_w8a16.safetensors #w8a16量化后的权重文件
    ├── tokenizer.json   #模型文件的tokenizer
    ├── tokenizer_config.json   #模型文件的tokenizer配置文件