调优步骤
获取MindIE镜像,获取模型并对模型进行量化。
创建环境
- 将镜像上传至服务器,创建Docker镜像。
docker load -i mindie_2.0.RC1-B033-300I-Duo-py3.11-openeuler24.03-lts-aarch64.tar.gz
- 根据Docker镜像创建容器(docker_name可自定义,docker_image需要改成1中上传的镜像)。命令参数说明如表1所示。
docker run -itd --name docker_name --network host --shm-size 512g --privileged --device /dev/davinci0 --device /dev/davinci1 --device /dev/davinci2 --device /dev/davinci3 --device /dev/davinci4 --device /dev/davinci5 --device /dev/davinci6 --device /dev/davinci7 --device /dev/davinci_manager --device /dev/devmm_svm --device /dev/hisi_hdc --volume /usr/local/dcmi:/usr/local/dcmi --volume /usr/local/bin/npu-smi:/usr/local/bin/npu-smi --volume /usr/local/Ascend/driver:/usr/local/Ascend/driver --volume /usr/local/Ascend/firmware:/usr/local/Ascend/firmware --volume /etc/ascend_install.info:/etc/ascend_install.info --volume /home:/home docker_image /bin/bash
表1 命令参数说明 参数
参数说明
--name
指定容器名称,便于后续启停容器(需要自定义)。
--network host
容器使用宿主机的网络命名空间,直接共享宿主机IP地址和端口(无需-p映射)。
-itd
以后台模式运行容器但保留终端交互能力。
--shm-size 512g
设置容器共享内存大小为512GB。
--privileged
赋予容器特权模式,使其可访问宿主机所有设备及内核功能。
--device
映射宿主机NPU设备到容器。
--volume
挂载宿主机的目录到容器,方便在容器内访问宿主的开发环境。
docker_image
使用的Docker镜像名称(需替换为实际镜像)。
/bin/bash
容器启动后默认执行的命令(此处为启动Bash终端以便交互)。
下载模型并对其进行量化
- 进入Docker容器(docker_name需要自定义)。
docker exec -it docker_name bash
- 下载DeepSeek-R1-Distill-Llama-70B模型(链接里面所有文件均要下载)。
- 对模型进行w8a8量化。
- 量化前准备。
vim /usr/local/Ascend/atb-models/examples/convert/convert_utils.py
将convert_utils.py中的73行,改成is_exist_ok=True。
- 量化命令。
source /usr/local/Ascend/ascend-toolkit/set_env.sh cd /usr/local/Ascend/atb-models/examples/models/llama bash examples/models/llama/generate_quant_weight.sh -src {浮点权重路径} -dst {W8A8量化权重路径} -type llama2_13b_w8a8s -trust_remote_code
- 进入{W8A8量化权重路径},替换config文件。替换后的config内容请参见config.json。
- 量化前准备。