云服务器内容精选

  • 问题现象 用户创建AI应用时,构建镜像失败,失败日志中提示下载obs文件失败(Get object size from OBS failed!)。 图1 下载obs文件失败 用户创建AI应用时,事件提示:复制模型文件失败,请检查OBS权限是否正常(Failed to copy model file due to obs exception. Please Check your obs access right.)或用户%s没有OBS的obs:object:PutObjectAcl权限(User %s does not have obs:object:PutObjectAcl permission.)。 图2 复制模型文件失败
  • Notebook自定义镜像故障基础排查 当制作的自定义镜像使用出现故障时,请用户按照如下方法排查: 用户自定义镜像没有ma-user用户及ma-group用户组; 用户自定义镜像中/home/ma-user目录,属主和用户组不是ma-user和ma-group; 用户自定义镜像必须满足用户目录/home/ma-user权限为750,不能为其他权限; 用户自定义镜像使用远程SSH功能,OpenSSH版本要兼容或高于8.0; 用户制作的自定义镜像,在本地执行docker run启动,无法正常运行; 用户自行安装了Jupyterlab服务导致冲突的,需要用户本地使用Jupyterlab命令罗列出相关的静态文件路径,删除并且卸载镜像中的Jupyterlab服务; 用户自己业务占用了开发环境官方的8888、8889端口的,需要用户修改自己的进程端口号; 用户的镜像指定了PYTHONPATH、sys.path导致服务启动调用冲突的,需在实例启动后,再指定PYTHONPATH、sys.path; 用户使用了已开启sudo权限的专属池,使用自定义镜像时,sudo工具未安装或安装错误; 用户使用的cann、cuda环境有兼容性问题; 用户的docker镜像配置错误、网络或防火墙限制、镜像构建问题(文件权限、依赖缺失或构建命令错误)等原因导致的。 父主题: Notebook中使用自定义镜像
  • 镜像二:tensorflow1.15-cann5.1.0-py3.7-euler2.8.3 表2 tensorflow1.15-cann5.1.0-py3.7-euler2.8.3镜像介绍 AI引擎框架 是否使用昇腾 (CANN版本) URL 包含的依赖项 Tensorflow 1.15 是 (CANN 5.1) swr.{region-id}.{局点域名}/atelier/ tensorflow_1_15_ascend:tensorflow_1.15-cann_5.1.0-py_3.7-euler_2.8.3-aarch64-d910-20220906 PyPI 程序包 Yum 软件包 tensorflow 1.15.0 tensorboard 1.15.0 ipykernel 5.3.4 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.2 ma-cau-adapter 1.1.2 ma-cli 1.1.3 matplotlib 3.5.1 modelarts 1.4.7 moxing-framework 2.0.1.rc0.ffd1c0c8 numpy 1.17.5 pandas 0.24.2 pillow 9.2.0 pip 22.1.2 psutil 5.7.0 PyYAML 5.3.1 scipy 1.3.3 scikit-learn 0.20.0 tornado 6.2 ca-certificates.noarch cmake cpp curl gcc-c++ gcc gdb grep nginx python3 rpm tar unzip vim wget zip
  • 镜像一:tensorflow1.15-mindspore1.7.0-cann5.1.0-euler2.8-aarch64 表1 tensorflow1.15-mindspore1.7.0-cann5.1.0-euler2.8-aarch64镜像介绍 AI引擎框架 URL 包含的依赖项 Mindspore-Ascend 1.7.0 swr.{region_id}.myhuaweicloud.com/atelier/notebook2.0-mul-kernel-arm-ascend-cp37:5.0.1-c81-20220726 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/notebook2.0-mul-kernel-arm-ascend-cp37:5.0.1-c81-20220726 PyPI 程序包 Yum 软件包 mindspore-ascend 1.7.0 ipykernel 6.7.0 ipython 7.29.0 jupyter-client 7.0.6 ma-cau 1.1.7 ma-cau-adapter 1.1.3 ma-cli 1.2.3 matplotlib 3.1.2 modelarts 1.4.22 moxing-framework 2.0.0.rc2.4b57a67b numpy 1.17.5 pandas 1.1.3 pillow 7.0.0 pip 21.2.4 psutil 5.7.0 PyYAML 5.3.1 scipy 1.5.4 scikit-learn 0.24.1 tornado 6.1 mindinsight 1.7.0 cmake cpp curl ffmpeg g++ gcc git grep python3 rpm tar unzip wget zip
  • Step2 在Notebook中调试模型 打开一个新的Terminal终端,进入“/home/ma-user/infer/”目录,运行启动脚本run.sh,并预测模型。基础镜像中默认提供了run.sh作为启动脚本。启动命令如下: sh run.sh 图1 运行启动脚本 上传一张预测图片(手写数字图片)到Notbook中。 图2 手写数字图片 图3 上传预测图片 重新打开一个新的Terminal终端,执行如下命令进行预测。 curl -kv -F 'images=@/home/ma-user/work/test.png' -X POST http://127.0.0.1:8080/ 图4 预测 在调试过程中,如果有修改模型文件或者推理脚本文件,需要重启run.sh脚本。执行如下命令先停止nginx服务,再运行run.sh脚本。 #查询nginx进程 ps -ef |grep nginx #关闭所有nginx相关进程 kill -9 {进程ID} #运行run.sh脚本 sh run.sh 也可以执行pkill nginx命令直接关闭所有nginx进程。 #关闭所有nginx进程 pkill nginx #运行run.sh脚本 sh run.sh 图5 重启run.sh脚本 父主题: 无需构建直接在开发环境中调试并保存镜像用于推理
  • Step1 登录SWR 登录容器镜像服务控制台,选择区域。 单击右上角“创建组织”,输入组织名称完成组织创建。您可以自定义组织名称,本示例使用“deep-learning”,实际操作时请重新命名一个组织名称。后续所有命令中使用到组织名称deep-learning时,均需要替换为此处实际创建的组织名称。 单击右上角“登录指令”,获取登录访问指令。 以root用户登录ECS环境,输入登录指令。 图1 在ECS中执行登录指令
  • PyTorch框架启动原理 规格和节点个数 下面以选择“GPU: 8*GP-Vnt1 | CPU: 72核 | 内存:512GB”规格为例,介绍在单机和分布式场景下ModelArts规格资源的分配情况。 单机作业时(即选择的节点数为1),ModelArts只会在一个节点上启动一个训练容器,该训练容器独享节点规格的可使用资源。 分布式作业时(即选择的节点数大于1),worker的数量和创建作业时选择的节点数一致,每个worker将被分配到所选规格对应的计算资源。例如计算节点个数为“2”时,将启动2个worker,每个worker拥有“GPU: 8*GP-Vnt1 | CPU: 72核 | 内存:512GB”的计算资源。目前PyTorch引擎仅支持GPU和CPU类型的规格,如果需要使用昇腾规格,请参考Ascend-Powered-Engine。 网络通信介绍 单机作业不涉及网络通信情况。 分布式作业的涉及网络通信则可以分为节点内网络通信和节点间网络通信。 节点内网络 使用NVLink和共享内存通信。 节点间网络 当计算节点个数大于1时,将启动PyTorch引擎分布式训练模式。PyTorch引擎的分布式模式如下图所示,worker之间可通过容器网络和100Gbps的InfiniBand网卡或RoCE网卡通信,部分规格中使用RoCE网卡,将在规格中额外提示。其中,容器网络可以通过DNS域名通信,但网络性能一般,可用于点对点小规模通信需求;InfiniBand网络和RoCE网络为高性能网络,可用于集合通信等分布式训练的场景。 图1 分布式模式
  • Horovod/MPI/MindSpore-GPU框架启动原理 规格和节点个数 下面以选择“GPU: 8*GP-Vnt1 | CPU: 72核 | 内存:512GB”规格为例,介绍在单机和分布式场景下ModelArts规格资源的分配情况。 单机作业时(即选择的节点数为1),ModelArts只会在一个节点上启动一个训练容器,该训练容器独享节点规格的可使用资源。 分布式作业时(即选择的节点数大于1),worker的数量和创建作业时选择的节点数一致,每个worker将被分配到所选规格对应的计算资源。例如计算节点个数为“2”时,将启动2个worker,每个worker拥有“GPU: 8*GP-Vnt1 | CPU: 72核 | 内存:512GB”的计算资源。 网络通信介绍 单机作业不涉及网络通信情况。 分布式作业的涉及网络通信则可以分为节点内网络通信和节点间网络通信。 节点内网络 使用NVLink和共享内存通信。 节点间网络 当计算节点个数大于1时,将启动PyTorch引擎分布式训练模式。PyTorch引擎的分布式模式如下图所示,worker之间可通过容器网络和100Gbps的InfiniBand网卡或RoCE网卡通信,部分规格中使用RoCE网卡,将在规格中额外提示。其中,容器网络可以通过DNS域名通信,但网络性能一般,可用于点对点小规模通信需求;InfiniBand网络和RoCE网络为高性能网络,可用于集合通信等分布式训练的场景。 图1 分布式模式
  • 镜像二:tensorflow1.13-cuda10.0-cudnn7-ubuntu18.04 表2 tensorflow1.13-cuda10.0-cudnn7-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 Tensorflow 1.13-gpu 是 (cuda 10.0) swr.{region_id}.myhuaweicloud.com/atelier/tensorflow_1_13:tensorflow_1.13-cuda_10.0-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/tensorflow_1_13:tensorflow_1.13-cuda_10.0-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 华东-上海一 swr.cn-east-3.myhuaweicloud.com/atelier/tensorflow_1_13:tensorflow_1.13-cuda_10.0-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/tensorflow_1_13:tensorflow_1.13-cuda_10.0-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e PyPI 程序包 Ubuntu 软件包 tensorflow-gpu 1.13.1 ipykernel 6.7.0 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.6 ma-cau-adapter 1.1.3 ma-cli 1.2.2 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.0.1.rc0.ffd1c0c8 numpy 1.17.0 opencv-python 4.1.2.30 pandas 1.1.5 pillow 6.2.0 pip 22.1.2 psutil 5.8.0 PyYAML 5.1 scipy 1.2.2 scikit-learn 0.22.1 tornado 6.2 automake build-essential ca-certificates cmake cpp curl ffmpeg g++ gcc gfortran git git-lfs grep libcudnn7 libcudnn7-dev libjpeg-dev:amd64 libjpeg8-dev:amd64 openssh-client openssh-server nginx python3 rpm screen tar tmux unzip vim wget zip
  • 镜像一:tensorflow2.1-cuda10.1-cudnn7-ubuntu18.04 表1 tensorflow2.1-cuda10.1-cudnn7-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 Tensorflow 2.1 是 (cuda 10.1) swr.{region_id}.myhuaweicloud.com/atelier/tensorflow_2_1:tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20220926144607-041ba2e 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/tensorflow_2_1:tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20220926144607-041ba2e 华东-上海一 swr.cn-east-3.myhuaweicloud.com/atelier/tensorflow_2_1:tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20220926144607-041ba2e 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/tensorflow_2_1:tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20220926144607-041ba2e PyPI 程序包 Ubuntu 软件包 tensorflow 2.1.0 ipykernel 6.7.0 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.6 ma-cau-adapter 1.1.3 ma-cli 1.2.2 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.1.0.5d9c87c8 numpy 1.19.5 opencv-python 4.1.2.30 pandas 1.1.5 pillow 9.2.0 pip 22.1.2 psutil 5.8.0 PyYAML 5.1 scipy 1.5.2 scikit-learn 0.22.1 tornado 6.2 tensorboard 2.1.1 automake build-essential ca-certificates cmake cpp curl ffmpeg g++ gcc gfortran git git-lfs grep libcudnn7 libcudnn7-dev libjpeg-dev:amd64 libjpeg8-dev:amd64 openssh-client openssh-server nginx python3 rpm screen tar tmux unzip vim wget zip
  • Step1 创建OBS桶和文件夹 在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。需要创建的文件夹列表如表1所示,示例中的桶名称“test-modelarts” 和文件夹名称均为举例,请替换为用户自定义的名称。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。 请确保您使用的OBS与ModelArts在同一区域。 表1 OBS桶文件夹列表 文件夹名称 用途 “obs://test-modelarts/mpi/demo-code/” 用于存储MPI启动脚本与训练脚本文件。 “obs://test-modelarts/mpi/log/” 用于存储训练日志文件。
  • 镜像一:pytorch1.8-cuda10.2-cudnn7-ubuntu18.04 表1 pytorch1.8-cuda10.2-cudnn7-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 Pytorch 1.8 是 (cuda 10.2) swr.{region_id}.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 华东-上海一 swr.cn-east-3.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e PyPI 程序包 Ubuntu 软件包 torch 1.8.0 torchvision 0.9.0 ipykernel 6.7.0 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.6 ma-cau-adapter 1.1.3 ma-cli 1.2.2 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.1.0.5d9c87c8 numpy 1.19.5 opencv-python 4.1.2.30 pandas 1.1.5 pillow 9.2.0 pip 22.1.2 psutil 5.8.0 PyYAML 5.1 scipy 1.5.2 scikit-learn 0.22.1 tornado 6.2 tensorboard 2.1.1 automake build-essential ca-certificates cmake cpp curl ffmpeg g++ gcc gfortran git git-lfs grep libcudnn7 libcudnn7-dev libjpeg-dev:amd64 libjpeg8-dev:amd64 openssh-client openssh-server nginx pandoc python3 rpm screen tar tmux unzip vim wget zip
  • 镜像三:pytorch1.4-cuda10.1-cudnn7-ubuntu18.04 表3 pytorch1.4-cuda10.1-cudnn7-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 Pytorch 1.4 是 (cuda 10.1) swr.{region_id}.myhuaweicloud.com/atelier/pytorch_1_4:pytorch_1.4-cuda_10.1-py37-ubuntu_18.04-x86_64-20220926104017-041ba2e 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/pytorch_1_4:pytorch_1.4-cuda_10.1-py37-ubuntu_18.04-x86_64-20220926104017-041ba2e 华东上海一 swr.cn-east-3.myhuaweicloud.com/atelier/pytorch_1_4:pytorch_1.4-cuda_10.1-py37-ubuntu_18.04-x86_64-20220926104017-041ba2e 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/pytorch_1_4:pytorch_1.4-cuda_10.1-py37-ubuntu_18.04-x86_64-20220926104017-041ba2e PyPI 程序包 Ubuntu 软件包 torch 1.4.0 torchvision 0.5.0 ipykernel 6.7.0 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.6 ma-cau-adapter 1.1.3 ma-cli 1.2.2 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.1.0.5d9c87c8 numpy 1.19.5 opencv-python 4.1.2.30 pandas 1.1.5 pillow 9.2.0 pip 22.1.2 psutil 5.8.0 PyYAML 5.1 scipy 1.5.2 scikit-learn 0.22.1 tornado 6.2 tensorboard 2.1.1 automake build-essential ca-certificates cmake cpp curl ffmpeg g++ gcc gfortran git git-lfs grep libcudnn7 libcudnn7-dev libjpeg-dev:amd64 libjpeg8-dev:amd64 openssh-client openssh-server nginx pandoc python3 rpm screen tar tmux unzip vim wget zip
  • 镜像二:pytorch1.10-cuda10.2-cudnn7-ubuntu18.04 表2 pytorch1.10-cuda10.2-cudnn7-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 Pytorch 1.10 是 (cuda 10.2) swr.{region_id}.myhuaweicloud.com/atelier/pytorch_1_10:pytorch_1.10.2-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20221008154718-2b3e39c 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/pytorch_1_10:pytorch_1.10.2-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20221008154718-2b3e39c 华东-上海一 swr.cn-east-3.myhuaweicloud.com/atelier/pytorch_1_10:pytorch_1.10.2-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20221008154718-2b3e39c 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/pytorch_1_10:pytorch_1.10.2-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20221008154718-2b3e39c PyPI 程序包 Ubuntu 软件包 torch 1.10.2 torchvision 0.11.3 ipykernel 5.3.4 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.6 ma-cau-adapter 1.1.3 ma-cli 1.2.2 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.1.0.5d9c87c8 numpy 1.19.5 opencv-python 4.1.2.30 pandas 1.1.5 pillow 9.2.0 pip 22.1.2 psutil 5.8.0 PyYAML 5.1 scipy 1.5.2 scikit-learn 0.22.1 tornado 6.2 automake build-essential ca-certificates cmake cpp curl ffmpeg g++ gcc gfortran git git-lfs grep libcudnn7 libcudnn7-dev libjpeg-dev:amd64 libjpeg8-dev:amd64 openssh-client openssh-server nginx pandoc python3 rpm screen tar tmux unzip vim wget zip
  • 将自定义镜像创建为AI应用 参考从容器镜像中选择元模型导入元模型,您需要特别关注以下参数: 元模型来源:选择“从容器镜像中选择” 容器镜像所在的路径:选择已制作好的自有镜像 图4 选择已制作好的自有镜像 容器调用接口:指定模型启动的协议和端口号。请确保协议和端口号与自定义镜像中提供的协议和端口号保持一致。 镜像复制:选填,选择是否将容器镜像中的模型镜像复制到ModelArts中。 健康检查:选填,用于指定模型的健康检查。仅当自定义镜像中配置了健康检查接口,才能配置“健康检查”,否则会导致AI应用创建失败。 apis定义:选填,用于编辑自定义镜像的apis定义。模型apis定义需要遵循ModelArts的填写规范,参见模型配置文件说明。 本样例的配置文件如下所示: [{ "url": "/", "method": "post", "request": { "Content-type": "application/json" }, "response": { "Content-type": "application/json" } }, { "url": "/greet", "method": "post", "request": { "Content-type": "application/json" }, "response": { "Content-type": "application/json" } }, { "url": "/goodbye", "method": "get", "request": { "Content-type": "application/json" }, "response": { "Content-type": "application/json" } } ]