云服务器内容精选

  • 创建开发环境并使用 镜像注册成功后,即可在ModelArts控制台的Notebook页面,创建开发环境时选择该 自定义镜像 。 图7 创建开发环境 打开开发环境,即可看到Dockerfile中创建的conda环境pytorch_1_8。 图8 打开开发环境 单击图中的pytorch_1_8,即可创建一个ipynb文件,导入torch,可以看到安装的pytorch 1.8已经能够使用。 图9 创建一个ipynb文件 再打开一个Terminal,查看ffmpeg和gcc的版本,是Dockerfile中安装的版本。 图10 查看ffmpeg和gcc的版本
  • 制作自定义镜像 这一节描述如何编写一个Dockerfile,并据此构建出一个新镜像在Notebook创建实例并使用。关于Dockerfile的具体编写方法,请参考官网。 查询基础镜像(第三方镜像可跳过此步骤) ModelArts提供的公共镜像,请参考Notebook专属预置镜像列表,根据预置镜像的引擎类型在对应的章节查看镜像URL。 连接 容器镜像服务 。 登录容器 镜像服务 控制台。选择左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。 图4 获取登录指令 此处生成的登录指令有效期为24小时,如果需要长期有效的登录指令,请参见获取长期有效登录指令。获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。 登录指令末尾的 域名 为镜像仓库地址,请记录该地址,后面会使用到。 在安装容器引擎的机器中执行上一步复制的登录指令。登录成功会显示“Login Succeeded”。 拉取基础镜像或第三方镜像(此处以基础镜像举例,第三方镜像直接替换镜像地址)。 拉取ModelArts提供的公共镜像(请参考预置镜像)。 docker pull swr.cn-north-4.myhuaweicloud.com/atelier/notebook2.0-pytorch-1.4-kernel-cp37:3.3.3-release-v1-20220114 编写Dockerfile。 vim一个Dockerfile,如果使用的基础镜像是ModelArts提供的公共镜像,Dockerfile的具体内容可参考Dockerfile文件(基础镜像为ModelArts提供)。 如果使用的基础镜像是第三方镜像(非ModelArts提供的公共镜像),Dockerfile文件中需要添加uid为1000的用户ma-user和gid为100的用户组ma-group,具体可参考Dockerfile文件(基础镜像为非ModelArts提供)。 本例的Dockerfile将基于PyTorch基础镜像安装pytorch 1.8, ffmpeg 3和gcc 8,构建一个面向AI任务的镜像。 构建镜像 使用docker build命令从Dockerfile构建出一个新镜像。命令参数解释如下: “-t” 指定了新的镜像地址,包括{局点信息}/{组织名称}/{镜像名称}:{版本名称},请根据实际填写。建议使用完整的swr地址,因为后续的调试和注册需要使用。 “-f ”指定了Dockerfile的文件名,根据实际填写。 最后的“ . ”指定了构建的上下文是当前目录,根据实际填写。 docker build -t swr.cn-north-4.myhuaweicloud.com/sdk-test/pytorch_1_8:v1 -f Dockerfile . 图5 构建成功
  • 使用场景和构建流程说明 用户可以使用ModelArts提供的基础镜像或第三方的镜像来编写Dockerfile,在E CS 服务器上构建出完全适合自己的镜像。然后将镜像进行注册,用以创建新的开发环境,满足自己的业务需求。 本案例将基于ModelArts提供的PyTorch基础镜像,安装pytorch 1.8、ffmpeg 3和gcc 8,构建一个面向AI开发的新环境。 主要流程如下图所示: 图1 构建与调测镜像流程 本案例适用于华为云-北京四Region。
  • Notebook自定义镜像规范 制作自定义镜像时,Base镜像需满足如下规范: 基于昇腾、Dockerhub官网等官方开源的镜像制作,开源镜像需要满足如下操作系统约束: x86:Ubuntu18.04、Ubuntu20.04 ARM:Euler2.8.3、Euler2.10.7 Ubuntu20.04.6可能有兼容性问题,请优先使用低于该版本的操作系统。 不满足以上镜像规范,所制作的镜像使用可能会出现故障,请用户检查镜像规范,并参考Notebook自定义镜像故障基础排查自行排查,如未解决请联系华为技术工程师协助解决。
  • 准备Docker机器并配置环境信息 准备一台具有Docker功能的机器,如果没有,建议申请一台弹性云服务器并购买弹性公网IP,并在准备好的机器上安装必要的软件。 ModelArts提供了ubuntu系统的脚本,方便安装docker。 本地Linux机器的操作等同ECS服务器上的操作,请参考本案例。 登录ECS控制台,购买弹性云服务器,镜像选择“公共镜像”,推荐使用ubuntu18.04的镜像;系统盘设置为100GiB。具体操作请参考购买并登录弹性云服务器。 图2 选择镜像和磁盘 购买弹性公网IP并绑定到弹性云服务器。具体操作请参考配置网络。 配置VM环境。 在docker机器中,使用如下命令下载安装脚本。 wget https://cnnorth4-modelarts-sdk.obs.cn-north-4.myhuaweicloud.com/modelarts/custom-image-build/install_on_ubuntu1804.sh 当前仅支持ubuntu系统的脚本。 在docker机器中并执行如下命令,即可完成环境配置。 bash install_on_ubuntu1804.sh 图3 配置成功 source /etc/profile 安装脚本依次执行了如下任务: 安装docker。 如果挂载了GPU,则会安装nvidia-docker2,用以将GPU挂载到docker容器中。
  • 在Notebook中制作自定义镜像 首先配置鉴权信息,指定profile,根据提示输入账号、用户名及密码。鉴权更多信息请查看配置登录信息。 ma-cli configure --auth PWD -P xxx 执行env|grep -i CURRENT_IMAGE_NAME命令查询当前实例所使用的镜像。 制作新镜像。 获取上步查询的基础镜像的SWR地址。 CURRENT_IMAGE_NAME=swr.cn-north-4.myhuaweicloud.com/atelier/mindspore_1_7_0:mindspore_1.7.0-cann_5.1.0-py_3.7-euler_2.8.3-aarch64-d910-20220906 加载镜像构建模板。 执行ma-cli image get-template命令查询镜像模板。 然后执行ma-cli image add-template命令将镜像模板加载到指定文件夹下,默认路径为当前命令所在的路径。例如:加载upgrade_ascend_mindspore_1.8.1_and_cann_5.1.RC2镜像构建模板。 ma-cli image add-template upgrade_ascend_mindspore_1.8.1_and_cann_5.1.RC2 修改Dockerfile。 本例的Dockerfile将基于MindSpore基础镜像mindspore1.7.0-cann5.1.0-py3.7-euler2.8.3,升级到cann 5.1.RC2和MindSpore1.8.1,构建一个面向AI任务的镜像。 加载镜像模板后,Dockerfile文件自动加载,在“.ma/upgrade_ascend_mindspore_1.8.1_and_cann_5.1.RC2”路径下,双击Dockerfile文件打开,内容参考如下,根据实际需求修改: #The following uses Mindspore-1.7 as an example, which can be replaced with the current notebook image.(此处为举例,请以Notebook使用的镜像为准) FROM swr.cn-north-4.myhuaweicloud.com/atelier/mindspore_1_7_0:mindspore_1.7.0-cann_5.1.0-py_3.7-euler_2.8.3-aarch64-d910-20220715093657-9446c6a ARG CANN=Ascend-cann-toolkit_5.1.RC2_linux-aarch64.run # Set proxy to download internet resources(不同局点的Notebook代理可能不同,此处为举例,请以Notebook所在局点的实际代理为准,可以在JupyterLab的Terminal中,通过env|grep -i proxy命令查看) ENV HTTP_PROXY=http://proxy.modelarts.com:80 \ http_proxy=http://proxy.modelarts.com:80 \ HTTPS_PROXY=http://proxy.modelarts.com:80 \ https_proxy=http://proxy.modelarts.com:80 USER root # Download CANN-5.1.RC2 and install CANN package, which is a dependency package for mindspore-1.8.1. # For details about the mapping between Mindpore and CANN and the download address of CANN, see the official website of Mindpore. RUN wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%205.1.RC2/${CANN} -P /tmp && \ chmod +x /tmp/${CANN} && \ sh -x /tmp/${CANN} --quiet --full && \ rm -f /tmp/${CANN} ENV PYTHONPATH=/usr/local/Ascend/tfplugin/latest/python/site-packages:/usr/local/Ascend/ascend-toolkit/latest/python/site-packages:/usr/local/Ascend/ascend-toolkit/latest/opp/op_impl/built-in/ai_core/tbe:/usr/local/seccomponent/lib USER ma-user # Update mindspore version in "MindSpore" conda env by using pip. RUN source /home/ma-user/anaconda3/bin/activate MindSpore && \ pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.8.1/MindSpore/ascend/aarch64/mindspore_ascend-1.8.1-cp37-cp37m-linux_aarch64.whl --upgrade && \ echo "successfully install mindspore 1.8.1" ## [Optional] Uncomment to set default conda env #ENV DEFAULT_CONDA_ENV_NAME=/home/ma-user/anaconda3/envs/MindSpore 如果使用的基础镜像不是ModelArts提供的公共镜像,需要在Dockerfile文件中添加ModelArts指定的用户和用户组,具体可参考Dockerfile文件(基础镜像为非ModelArts提供)。 构建镜像 使用ma-cli image build命令从Dockerfile构建出一个新镜像。命令更多信息请参考镜像构建命令。 ma-cli image build .ma/upgrade_ascend_mindspore_1.8.1_and_cann_5.1.RC2/Dockerfile -swr notebook-test/my_image:0.0.1 -P XXX 其中“.ma/upgrade_ascend_mindspore_1.8.1_and_cann_5.1.RC2/Dockerfile”为Dockerfile文件所在路径,“notebook-test/my_image:0.0.1”为构建的新镜像的SWR路径。“XXX”为鉴权时指定的profile。
  • 注册新镜像 构建完成后,将新镜像注册到ModelArts镜像管理服务中,进而能够在ModelArts中使用该镜像。 有两种方式来注册镜像。 方式一:使用ma-cli image register命令来注册镜像。注册命令会返回注册好的镜像信息,包括镜像id,name等,如下图所示。该命令的更多信息可参考镜像构建命令。 ma-cli image register --swr-path=swr.cn-north-4.myhuaweicloud.com/notebook-test/my_image:0.0.1 -a AARCH64 -rs ASCEND -P XXX -a指定该镜像支持ARM架构,-rs指定镜像支持ASCEND芯片,“XXX”为鉴权时指定的profile。 图1 注册镜像 方式二:在ModelArts Console上注册镜像 登录ModelArts控制台,在左侧导航栏选择“镜像管理”,进入镜像管理页面。 单击“注册镜像”。请将完整的SWR地址复制到这里即可,或单击可直接从SWR选择自有镜像进行注册。 “架构”和“类型”根据实际情况选择,与镜像源保持一致。