部署准备
步骤一:检查环境
- SSH登录机器后,检查NPU设备状态。运行如下命令,返回NPU设备信息。
npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数,用来确认对应卡数已经挂载 npu-smi info -t board -i 1 | egrep -i "software|firmware" #查看驱动和固件版本
如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。
- 检查docker是否安装。
docker -v #检查docker是否安装
如尚未安装,运行以下命令安装docker。
yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64
- 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。
sysctl -p | grep net.ipv4.ip_forward
如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
步骤二:上传模型权重文件、启动vllm相关脚本、代码包
- 上传安装依赖软件推理代码AscendCloud-LLM-xxx.zip和算子包AscendCloud-OPP-xxx.zip到主机中,包获取路径请参见表1。
- 将权重文件上传至算力节点,以Qwen3-8B权重为例,建议采用以下目录结构:
模型
目录结构
Qwen3-8B
/mnt/deepseek/model/Qwen3-8B
- 将以下文件(附录中可获取)上传至算力节点,建议采用以下目录结构:
样例
目录结构
run_vllm_single_node.sh
run_vllm_multi_node.sh
vllm_single_node.yaml
vllm_multi_node.yaml
/mnt/deepseek/scripts/
├──run_vllm_single_node.sh
├──run_vllm_multi_node.sh
├──vllm_single_node.yaml
├──vllm_multi_node.yaml
执行如下命令给予脚本执行权限。cd /mnt/deepseek/scripts chmod 750 *.sh
需要保证每个节点的相关目录均存在,且内容一致。在使用SFS Turbo存储时,需要每个节点使用相同的配置挂载;使用EVS存储或算力节点本地存储时,需要每个节点单独上传文件。
步骤三:制作推理镜像
解压AscendCloud压缩包及该目录下的推理代码AscendCloud-LLM-xxx.zip和算子包AscendCloud-OPP-xxx.zip,并执行docker命令制作推理镜像。安装过程需要连接互联网git clone,请确保机器环境可以访问公网。
unzip AscendCloud-*.zip -d ./AscendCloud && cd ./AscendCloud && unzip AscendCloud-OPP-*.zip && unzip AscendCloud-OPP-*-torch-*-py*.zip -d ./AscendCloud-OPP && cd .. && unzip ./AscendCloud/AscendCloud-LLM-*.zip -d ./AscendCloud/AscendCloud-LLM && cp AscendCloud/AscendCloud-LLM/llm_inference/ascend_vllm/Dockerfile ./ && docker build -t ${image_name} --build-arg BASE_IMAGE=${base_image} .
参数说明:
- ${base_image}为表2基础镜像地址。
- ${image_name}为推理镜像名称,可自行指定。
运行完后,会生成推理所需镜像。
Cluster提供两种部署推理服务的方式:基于K8s Deployment、基于Kubeinfer,这两种方式都属于在线推理。