下载
中文
注册

部署推理服务前准备

在使用MindIE MS服务端API或者MindIE MS客户端命令行工具创建一个新的推理服务之前,需要完成以下的集群环境配置:

  • MindIE MS部署一个服务时会挂载以下宿主机路径至Pod容器内,主机路径和容器挂载路径一致,并确保每个计算节点都包含以下文件。
    为了避免挂载软链接带来容器逃逸风险,用户需要保证以下宿主机路径不是软链接:
    • /mnt/mindie-service/ms/config/config.json:MindIE Server的config.json配置文件路径,文件权限设置为640,文件属主设置为MindIE镜像容器内用户群组。配置文件详情请参见配置参数说明
    • /mnt/mindie-service/ms/model:模型文件目录,MindIE Server的config.json配置文件中的modelWeightPath参数需要配置为该目录下的权重路径。(例如:/mnt/mindie-service/ms/model/atb_testdata/weights/llama1-65b-safetensors)

      如果用户已在其他路径(如:/data)存放模型文件数据,可通过mount --bind /data/ /mnt/mindie-service/ms/model命令创建一个挂载点。重启服务器后会失效,需要重新创建挂载点。该目录权限需要设置为750,目录内文件权限设置为640,属主设置为MindIE镜像容器内用户群组。

    • /mnt/mindie-service/ms/writable-data:可写目录,容器内程序可将日志写入该目录下。目录权限需要设置为750,属主设置为MindIE镜像容器内用户群组。
    • /mnt/mindie-service/ms/run/run.sh:启动脚本文件路径,需要修改文件权限为容器内用户可执行的权限。启动Pod容器时会调用该脚本启动MindIE推理服务进程,单机样例参考单机场景非root用户镜像启动脚本样例。该文件权限需要设置为550,属主设置为MindIE镜像容器内用户群组。
  • 当前服务部署的namespace以mindie为例,用户使用MindIE MS部署服务之前需保证已经通过kubectl创建该命名空间。
  • 已在计算节点上参照准备MindIE Server镜像章节准备好MindIE Server镜像,并使用以下命令更改名称为mindie-server:RC3,当前部署的镜像名和镜像版本只能为mindie-server:RC3。
    docker tag mindie:{镜像名} mindie-server:RC3

脚本示例

单机场景非root用户镜像启动脚本样例如下所示:

LD_LIBRARY_PATH=/usr/local/python3.10.2/lib:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:
PATH=/usr/local/python3.10.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7                    #3-7行为运行所需环境变量
source /home/{用户名称}/Ascend/ascend-toolkit/set_env.sh
source /home/{用户名称}/Ascend/mindie/set_env.sh
source /home/{用户名称}/Ascend/nnal/atb/set_env.sh
source /home/{用户名称}/Ascend/llm_model/set_env.sh
cd /home/{用户名称}/Ascend/mindie/latest/mindie-service             #8-9行为运行启动命令/
./bin/mindieservice_daemon
  • {用户名称}《MindIE安装指南》的“容器化部署和镜像制作 > 制作MindIE Server镜像章节中非root用户镜像制作中的用户名称。
  • 受限于kubernetes的能力,默认情况下configmap挂载到容器内文件的属主为root:root,且不可修改用户,只能设置群组。MindIE MS通过添加配置fsGroup 1001将挂载到容器内的confimap文件设置为1001群组,支持容器内非root用户读取。