云服务器内容精选

  • Step4 制作推理镜像 解压AscendCloud压缩包及该目录下的推理代码AscendCloud-LLM-6.3.908-xxx.zip和算子包AscendCloud-OPP-6.3.908-xxx.zip,并执行build_image.sh脚本制作推理镜像。安装过程需要连接互联网git clone,请确保机器环境可以访问公网。 unzip AscendCloud-*.zip -d ./AscendCloud && unzip ./AscendCloud/AscendCloud-OPP-*.zip -d ./AscendCloud/AscendCloud-OPP && unzip ./AscendCloud/AscendCloud-LLM-*.zip -d ./AscendCloud/AscendCloud-LLM && cd ./AscendCloud/AscendCloud-LLM/llm_inference/ascend_vllm/ && sh build_image.sh --base-image=${base_image} --image-name=${image_name} 参数说明: ${base_image}为基础镜像地址。 ${image_name}为推理镜像名称,可自行指定。 运行完后,会生成推理所需镜像。
  • Step3 上传代码包和权重文件 上传安装依赖软件推理代码AscendCloud-LLM-6.3.908-xxx.zip和算子包AscendCloud-OPP-6.3.908-xxx.zip到主机中,包获取路径请参见表2。 将权重文件上传到DevServer机器中。权重文件的格式要求为Huggface格式。开源权重文件获取地址请参见表3。 如果使用模型训练后的权重文件进行推理,模型训练及训练后的权重文件转换操作可以参考相关文档章节中提供的模型训练文档。 3.权重要求放在磁盘的指定目录,并做目录大小检查,参考命令如下: df -h
  • Step5 启动容器镜像 启动容器镜像前请先按照参数说明修改${}中的参数。docker启动失败会有对应的error提示,启动成功会有对应的docker id生成,并且不会报错。 docker run -itd \ --device=/dev/davinci0 \ --device=/dev/davinci1 \ --device=/dev/davinci2 \ --device=/dev/davinci3 \ --device=/dev/davinci4 \ --device=/dev/davinci5 \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ -v /etc/localtime:/etc/localtime \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /etc/ascend_install.info:/etc/ascend_install.info \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /var/log/npu/:/usr/slog \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v ${dir}:${container_work_dir} \ --net=host \ --name ${container_name} \ ${image_id} \ /bin/bash 参数说明: --device=/dev/davinci0,..., --device=/dev/davinci7:挂载NPU设备,示例中挂载了8张卡davinci0~davinci7。 -v ${dir}:${container_work_dir} 代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的大文件系统,dir为宿主机中文件目录,${container_work_dir}为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 不要将多个容器绑到同一个NPU上,会导致后续的容器无法正常使用NPU功能。 --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 {image_id} 为docker镜像的ID,即第四步中生成的新镜像id,在宿主机上可通过docker images查询得到。
  • Step1 检查环境 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。 驱动版本要求是23.0.6。如果不符合要求请参考安装固件和驱动章节升级驱动。 检查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
  • 接口访问和调用 获取用户Token 调用推理服务接口时首先需要获取 IAM 子用户Token作为凭据,具体参见获取IAM用户Token(使用密码)。请求示例如下: 请求URI: POST https://iam.myhuaweicloud.com/v3/auth/tokens?nocatalog=true 请求体: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "id": "project_id" } } } } 其中,user_name、domain_name、project_id字段可以从“我的凭证”中获取。 图4 获取参数值 请求成功(状态码201)后,从响应的Header中拿到x-subject-token的值即为Token的值。 获取的Token的有效期为24小时。建议进行缓存,避免频繁调用。 获取访问地址 访问地址为 {公网地址} /{ 自定义镜像 中的API地址},例如:https://xxx/v1/infers/xxx/2d-scenario-identification。 公网地址可以从推理服务列表或者服务详情中获取。 图5 列表获取公网地址 图6 详情获取公网地址 调用推理服务 请携带Token调用推理服务,具体操作步骤请参见其他云服务推理服务调用实例。
  • 推理服务相关操作 图2 推理服务列表 在“推理服务”列表,可对任务进行以下操作。 表1 推理服务相关操作 任务 操作步骤 编辑服务 单击操作栏中的“编辑”,打开编辑推理服务弹出框,修改推理服务配置后,单击“确认”。不支持修改服务的名称和模型仓库,当修改了模型版本、资源规格、实例数和环境变量后,根据编辑前的状态,推理服务会重新构建或重新排队,期间服务将不可用。 启动服务 单击操作栏中的“启动”,可以启动服务,在启动服务时,支持重新设置“是否自动停止”配置和自动停止时间。 状态为部署失败或已停止的推理服务才能进行启动操作。 停止服务 单击操作栏中的“停止”,可以停止服务,推理服务停止后再启动将重新构建或排队,请谨慎操作。 状态为构建失败、部署失败、已停止或停止中的推理服务不能进行停止操作。 删除服务 单击操作栏中的“删除”,可以删除服务,推理服务删除后无法恢复,请谨慎操作。 查询服务 在搜索输入框中输入搜索条件,按回车键即可查询。 查看服务详情 单击服务名称,可在服务详情页查看推理服务详情、监控、事件、日志等信息。 推理服务详情:展示ID、状态、模型及版本、镜像、环境变量、资源池、资源规格、实例数、公网地址等信息。其中,公网地址将在服务部署成功后展示。属于私密信息,请勿轻易泄露。 监控:展示AI应用调用次数统计和实时资源统计信息。 事件:展示当前服务使用过程中的关键操作,比如服务构建进度、部署进度、部署异常的原因、服务被启动、停止、更新的时间点等。 日志:展示当前服务的日志信息。支持查询日志,包含最近5分钟、最近30分钟、最近1小时和自定义时间段(自定义时间段您可以选择开始时间和结束时间)。支持输入关键字搜索服务日志。 推理服务各状态允许的操作如下: 表2 推理服务各状态允许的操作 状态 编辑 启动 停止 删除 导入中 x x √ √ 构建中 x x √ √ 构建失败 √ x x √ 排队中 √ x √ √ 部署中 x x √ √ 运行中 √ x √ √ 部署失败 √ √ x √ 告警 √ x √ √ 停止中 x x x √ 已停止 √ √ x √