• 沒有找到結果。

启动/停止/删除实例_AI开发平台ModelArts_开发工具_管理Notebook实例_华为云

N/A
N/A
Protected

Academic year: 2022

Share "启动/停止/删除实例_AI开发平台ModelArts_开发工具_管理Notebook实例_华为云"

Copied!
251
0
0

加載中.... (立即查看全文)

全文

(1)

开发工具用户指南

文档版本 01

发布日期 2022-01-27

(2)

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

(3)

目 录

1 开发工具介绍... 1

2 使用场景...5

3 管理 Notebook 实例...6

3.1 创建 Notebook 实例... 6

3.2 打开 Notebook 实例...11

3.3 启动/停止/删除实例... 11

3.4 开发环境中如何选择存储... 12

3.5 动态挂载 OBS 并行文件系统...14

3.6 动态扩充云硬盘 EVS 容量... 16

3.7 变更 Notebook 实例运行规格... 18

3.8 修改 Notebook 远程连接 IP 地址... 18

4 CodeLab... 20

5 JupyterLab...26

5.1 JupyterLab 操作流程... 26

5.2 JupyterLab 简介及常用操作... 26

6 本地 IDE... 36

6.1 本地 IDE 操作流程...36

6.2 配置本地 IDE(PyCharm ToolKit 连接)... 37

6.3 配置本地 IDE(PyCharm 手动连接)... 43

6.4 配置本地 IDE(VSCode ToolKit 连接)... 49

6.5 配置本地 IDE(VSCode 手动连接)... 58

6.6 配置本地 IDE(SSH 工具连接)... 68

7 ML Studio... 75

(4)

7.4.2 上传/下载自定义算子... 99

7.4.3 编写自定义算子... 100

7.4.4 自定义算子代码模板和规范...100

7.5 预置算子说明... 102

7.5.1 数据特征... 102

7.5.1.1 数据分析... 102

7.5.1.1.1 箱型图... 102

7.5.1.1.2 分桶统计... 103

7.5.1.1.3 相关性分析... 104

7.5.1.1.4 决策树分类特征重要性... 104

7.5.1.1.5 决策树回归特征重要性... 106

7.5.1.1.6 梯度提升树分类特征重要性...108

7.5.1.1.7 梯度提升树回归特征重要性...110

7.5.1.1.8 孤立森林... 111

7.5.1.1.9 百分位统计... 113

7.5.1.1.10 直方图... 113

7.5.1.1.11 折线图... 114

7.5.1.1.12 饼形图... 115

7.5.1.1.13 散点图... 117

7.5.1.1.14 随机森林分类特征重要性...118

7.5.1.1.15 随机森林回归特征重要性...120

7.5.1.1.16 全表统计... 122

7.5.1.2 数据处理... 122

7.5.1.2.1 修改列名... 122

7.5.1.2.2 数据集列合并... 123

7.5.1.2.3 数据集聚合... 124

7.5.1.2.4 数据集行合并... 126

7.5.1.2.5 数据集行过滤... 126

7.5.1.2.6 数据集连接... 128

7.5.1.2.7 数据集抽样... 129

7.5.1.2.8 数据集分割... 129

7.5.1.2.9 数据集行去重... 130

7.5.1.2.10 执行 spark sql 脚本... 131

7.5.1.2.11 替换... 132

7.5.1.2.12 缺失值填充...133

7.5.1.2.13 修改列数据类型... 134

(5)

7.5.1.3.3 派生... 140

7.5.1.3.4 特征转换... 141

7.5.1.3.5 FP-growth... 142

7.5.1.3.6 最小最大规范化... 143

7.5.1.3.7 正则化... 144

7.5.1.3.8 独热编码... 145

7.5.1.3.9 主成分分析... 146

7.5.1.3.10 离散化... 147

7.5.1.3.11 标准化... 148

7.5.1.3.12 字符串标签化... 149

7.5.1.3.13 奇异值分解...150

7.5.2 输入输出... 151

7.5.2.1 输入...151

7.5.2.1.1 读取 DLI 表... 151

7.5.2.1.2 读取数据... 152

7.5.2.1.3 读取模型... 153

7.5.2.1.4 从 OBS 读取 CSV 数据...153

7.5.2.1.5 从 OBS 读取模型...154

7.5.2.1.6 读取 parquet 数据... 155

7.5.2.1.7 读取文本数据... 155

7.5.2.2 输出...156

7.5.2.2.1 保存为 DLI OBS 表... 156

7.5.2.2.2 保存数据... 157

7.5.2.2.3 保存 CSV 数据到 OBS... 158

7.5.2.2.4 保存模型... 159

7.5.2.2.5 保存模型到 OBS...159

7.5.2.2.6 保存 parquet 数据... 160

7.5.3 模型工程... 161

7.5.3.1 分类...161

7.5.3.1.1 决策树分类... 161

7.5.3.1.2 梯度提升树分类... 163

7.5.3.1.3 LightGBM 分类... 165

7.5.3.1.4 线性支持向量机分类... 167

7.5.3.1.5 逻辑回归分类... 170

(6)

7.5.3.3.1 二分类评估... 183

7.5.3.3.2 聚类评估... 184

7.5.3.3.3 模型应用... 184

7.5.3.3.4 多分类评估... 185

7.5.3.3.5 回归评估... 186

7.5.3.4 推荐...187

7.5.3.4.1 最小二乘法... 187

7.5.3.5 回归...188

7.5.3.5.1 决策树回归... 189

7.5.3.5.2 梯度提升树回归... 190

7.5.3.5.3 LightGBM 回归... 192

7.5.3.5.4 线性回归... 194

7.5.3.5.5 随机森林回归... 196

7.5.3.6 文本...198

7.5.3.6.1 TF-IDF... 198

7.5.3.6.2 文本词向量... 199

7.6 算链操作... 201

7.6.1 查看算链... 201

7.6.2 算链编排界面说明... 202

7.6.3 算链编排操作...211

7.6.4 上传/下载算链... 216

7.6.5 运行算链... 217

7.7 常见问题... 219

7.7.1 错误码...219

8 MindStudio... 221

8.1 使用 MindStudio 开发 Ascend 算子... 221

9 Notebook 中的数据上传下载...227

9.1 上传文件至 JupyterLab... 227

9.1.1 场景介绍... 227

9.1.2 上传本地文件至 JupyterLab... 227

9.1.2.1 上传场景和入口介绍... 227

9.1.2.2 上传本地小文件(100MB 以内)至 JupyterLab...229

9.1.2.3 上传本地大文件(100MB~5GB)至 JupyterLab... 230

9.1.2.4 上传本地超大文件(5GB 以上)至 JupyterLab... 232

9.1.3 GitHub 开源仓库 Clone... 234

(7)

1 开发工具介绍

说明

本手册基于新版开发环境Notebook功能展开介绍,旧版Notebook相关内容请参见旧版开发环 境。

软件开发的历史,就是一部降低开发者成本,提升开发体验的历史。在AI开发阶段,

ModelArts也致力于提升AI开发体验,降低开发门槛。ModelArts开发环境,以云原生 的资源使用和开发工具链的集成,目标为不同类型AI开发、探索、教学用户,提供更 好云化AI开发体验。

ModelArts Notebook 云上云下,无缝协同

● 代码开发与调测。云化JupyterLab使用,本地IDE+ModelArts插件远程开发能力,

贴近开发人员使用习惯

● 云上开发环境,包含AI计算资源,云上存储,预置AI引擎

● 运行环境自定义,将开发环境直接保存成为镜像,供训练、推理使用

ModelArts CodeLab(JupyterLab),让AI探索&教学更简单

● 云原生Notebook,案例内容秒级接入与分享

● Serverless化实例管理,资源自动回收

● 免费算力,规格按需切换

亮点特性 1:远程开发 - 支持本地 IDE 远程访问 Notebook

新版Notebook提供了远程开发功能,通过开启SSH连接,用户本地IDE可以远程连接

(8)

1-1 本地 IDE 远程访问 Notebook 开发环境

ModelArts的Notebook可以视作是本地PC的延伸,均视作本地开发环境,其读取数 据、训练、保存文件等操作与常规的本地训练一致。

对于习惯使用本地IDE的开发者,使用远程开发方式,不影响用户的编码习惯,并且可 以方便快捷的使用云上的Notebook开发环境。

本地IDE当前支持VSCode、PyCharm、SSH工具。还有专门的插件PyCharm Toolkit和 VSCode Toolkit,更方便将云上资源作为本地的一个扩展。

亮点特性 2:预置镜像 - 即开即用,优化配置,支持主流 AI 引擎

每个镜像预置的AI引擎和版本是固定的,在创建Notebook实例时明确AI引擎和版本,

包括适配的芯片。

说明

● 为了简化操作,ModelArts的新版Notebook,同一个Notebook实例中不支持不同引擎之间 的切换。

● 不同Region支持的AI引擎不一样,请以控制台实际界面为准。

1-1 新版开发环境支持的 AI 引擎

镜像名称 镜像描述 适配芯

支持SSH远 程开发

支持在 线Jupyter

(9)

镜像名称 镜像描述 适配芯 片

支持SSH远 程开发 访问

支持在 线Jupyter Lab访 问 pytorch1.8-cuda10.2-

cudnn7-ubuntu18.04 CPU、GPU通用算 法开发和训练基础 镜像,预置AI引擎 PyTorch1.8

CPU/G

PU 是 是

tensorflow2.1-cuda10.1-

cudnn7-ubuntu18.04 CPU、GPU通用算 法开发和训练基础 镜像,预置AI引擎 TensorFlow2.1

CPU/G

PU 是 是

tensorflow1.13-cuda10.0-

cudnn7-ubuntu18.04 GPU通用算法开发 和训练基础镜像,

预置AI引擎 TensorFlow1.13.1

GPU 是 是

tensorflow1.15-

mindspore1.5.1-cann5.0.3- euler2.8-aarch64

Ascend+ARM算法 开发和训练基础镜 像,预置AI引擎 TensorFlow和 MindSpore

Ascend

910 是 是

mindspore1.2.0-

openmpi2.1.1-ubuntu18.04 CPU算法开发和训 练基础镜像,预置 AI引擎MindSpore- CPU

CPU 是 是

mindspore1.2.0-cuda10.1-

cudnn7-ubuntu18.04 GPU算法开发和训 练基础镜像,预置 AI引擎MindSpore- GPU

GPU 是 是

mlstudio-pyspark2.3.2-

ubuntu16.04 CPU算法开发和训 练基础镜像,包含 可以图形化机器学 习算法开发和调测 MLStudio工具,并 预置PySpark2.3.2

CPU 否 是

mlstudio-pyspark2.4.5-

ubuntu18.04 CPU算法开发和训 练基础镜像,包含

CPU 否 是

(10)

镜像名称 镜像描述 适配芯 片

支持SSH远 程开发 访问

支持在 线Jupyter Lab访 问 mindstudio3.0.2-ascend910-

cann5.0.2.1-ubuntu18.04- aarch64

Ascend算子开发基 础镜像,预置专业 级算子开发工具 MindStudio,仅支 持SSH连接

Ascend

910 是 否

modelbox1.1.2.1-

tensorrt7.1.3-pytorch1.9.1- cuda10.2-cudnn8-euler2.8- aarch64

AI应用开发基础镜 像,预置AI应用编 排引擎ModelBox、

AI引擎PyTorch、

TensorRT和 TensorFlow,仅支 持SSH连接

GPU 是 否

rlstudio1.0.0-ray1.3.0-

cuda10.1-ubuntu18.04 CPU、GPU强化学 习算法开发和训练 基础镜像,预置AI 引擎

CPU/G

PU 是 是

cylp0.91.4-cbcpy2.10- ortools9.0-cplex20.1.0- ubuntu18.04

CPU运筹优化求解 器开发基础镜像,

预置cylp,cbcpy,

ortools及cplex

CPU 是 是

mindquantum0.3.1-

mindspore1.3.0-ubuntu18.04 MindSpore1.3.0 andMindQuantum0.3.1

CPU 是 是

亮点特性 3:提供在线的交互式开发调试工具 JupyterLab

ModelArts集成了基于开源的JupyterLab,可为您提供在线的交互式开发调试。您无需 关注安装配置,在ModelArts管理控制台直接使用Notebook,编写和调测模型训练代 码,然后基于该代码进行模型的训练。

JupyterLab是一个交互式的开发环境,是Jupyter Notebook的下一代产品,可以使用 它编写Notebook、操作终端、编辑MarkDown文本、打开交互模式、查看csv文件及 图片等功能。

(11)

2 使用场景

ModelArts提供灵活开放的开发工具,您可以根据实际情况选择。

● ModelArts提供了CodeLab功能,其中预置了免费的算力规格,开发者可以一键进 入开发环境,直接免费体验Notebook功能;另外,针对AIGallery社区发布的 Notebook样例(.ipynb格式文件),可直接在CodeLab中打开,查看他人分享的 样例代码。具体参见CodeLab。

● ModelArts提供了云化版本的Notebook,无需关注安装配置,即开即用,具体参 见JupyterLab。

● ModelArts也提供了本地IDE的方式开发模型,通过开启SSH连接,用户本地IDE可 以远程连接到ModelArts的Notebook开发环境中,调试和运行代码。本地IDE方式 不影响用户的编码习惯,并且可以方便快捷的使用云上的Notebook开发环境。

本地IDE当前支持VSCode、PyCharm、SSH工具。PyCharm和VSCode还分别有专 门的插件PyCharm ToolKit、VSCode ToolKit,让远程连接操作更便捷。具体参见 本地IDE。

● ModelArts的开发环境中集成了MindStudio工具,支持在ModelArts上使用 MindStudio工具做算子开发,具体参考使用MindStudio开发Ascend算子。

● ModelArts还提供了可视化编排工具MLStudio,用户可以通过拖拉拽的方式开发 基于ML Studio引擎的模型,具体参见ML Studio简介。

(12)

3 管理 Notebook 实例

3.1 创建 Notebook 实例

在开始进行模型开发前,您需要创建Notebook实例,并打开Notebook进行编码。

背景信息

● “运行中”的Notebook将一直收费,当您不需要使用时,建议停止Notebook,

避免产生不必要的费用。在创建Notebook时,也可以选择开启自动停止功能,在 指定时间内停止运行Notebook,避免产生不必要的费用。

● 只有处于“运行中”状态的Notebook,才可以执行打开、停止操作。

● 基于MindStudio和ModelBox框架创建的实例,只能通过远程开发环境访问。其他 框架的Notebook实例,可以在Notebook实例的列表页面打开。

● 一个账户最多创建10个Notebook。

● 创建Notebook实例前,可先了解ModelArts支持的AI引擎及其对应版本情况。

● 新版Notebook仅在华北-北京四、华东-上海一、华南-广州站点可见。

创建 Notebook 实例

1. 登录ModelArts管理控制台,在左侧全局配置中,检查是否配置了访问授权。若未 配置,请参考使用委托授权完成操作。针对之前使用访问密钥授权的老用户,建 议清空授权,然后使用委托进行授权。

2. 登录ModelArts管理控制台,在左侧导航栏中选择“开发环境 > Notebook”,进 入“Notebook”新版管理页面。

(13)

3-1 进入新版 Notebook

3. 单击“创建”,进入“创建Notebook”页面,请参见如下说明填写参数。

a. 填写Notebook基本信息,包含名称、描述、是否自动停止,详细参数请参见 表3-1。

3-2 Notebook 基本信息

3-1 基本信息的参数描述 参数名称 说明

“名称” Notebook的名称。只能包含数字、大小写字母、下划线和中 划线,长度不能超过64位且不能为空。

“描述” 对Notebook的简要描述。

“自动停

止” 默认开启,且默认值为“1小时”,表示该Notebook实例将在 运行1小时之后自动停止,即1小时后停止计费。

(14)

3-3 Notebook 实例的详细参数

3-2 Notebook 实例的详细参数说明 参数名称 说明

“镜像” 支持公共镜像和自定义镜像。

● 公共镜像:即预置在ModelArts内部的AI引擎。

● 自定义镜像:可以将基于公共镜像创建的实例保存下来,

作为自定义镜像使用。

一个镜像对应支持一种AI引擎,创建Notebook实例时选择好 了对应AI引擎的镜像。用户可以根据需要选择镜像。

不可以在同一个Notebook实例中切换AI引擎。

“资源 池”

支持公共资源池和专属资源池。

“公共资源池”无需单独购买,即开即用,按需付费,即按您 的Notebook实例运行时长进行收费。

“专属资源池”按实际情况选择已创建的专属资源池。没有的 话,需要单独购买并创建。

“类型” 芯片类型包括CPU、GPU类型。

不同的镜像支持的芯片类型不同,根据实际需要选择。

GPU性能更佳,但是相对CPU而言,费用更高。

(15)

参数名称 说明

“规格” 根据选择的芯片类型不同,可选资源规格也不同。请根据界面 实际情况和需要选择。

● CPU规格

“2核8GB”:Intel CPU通用规格,用于快速数据探索和实 验

“8核32GB”:Intel CPU算力增强型,适用于密集计算场 景下运算

● GPU规格

“GPU: 1*V100(32GB)|CPU: 8 核 64GB”:NVIDIA V100 GPU单卡规格,32GB显存,适合深度学习场景下的算法训 练和调测

“GPU: 2*V100(64GB)|CPU: 16 核 128GB”:NVIDIA V100 GPU两卡规格,32GB显存,适合深度学习场景下的 算法训练和调测

● Ascend规格

“Ascend: 1*Ascend 910|CPU: 24 核 96GB”:昇腾 910(32GB显存)单卡规格,配搭ARM处理器,适合深度学 习场景下的模型训练和调测

“Ascend: 2*Ascend 910|CPU: 48 核 192GB”:昇腾 910(32GB显存)两卡规格,配搭ARM处理器,适合深度学 习场景下的模型训练和调测

“Ascend: 8*Ascend 910|CPU: 192 核 768GB”:昇腾 910(32GB显存)八卡规格,配搭ARM处理器,适合深度学 习场景下的模型训练和调测

“存储配 置”

包括“默认存储”“云硬盘EVS”和“弹性文件服务SFS”。

请根据界面实际情况和需要选择。

● 选择“默认存储”作为存储位置。

选择此模式,平台免费为每一个Notebook提供50GB的默 认存储。

● 选择“云硬盘EVS”作为存储位置

根据实际使用量设置磁盘规格。磁盘规格默认5GB。磁盘 规格的取值范围为5GB~4096GB。

从Notebook实例创建成功开始,直至实例删除成功,磁盘 每GB按照规定费用收费。

“默认存储”和“云硬盘EVS”的存储路径挂载在/home/ma- user/work目录下。用户在Notebook实例中的所有文件读写操 作都是针对该存储目录下的的内容操作,与OBS对象存储

(16)

参数名称 说明

“密钥

对” 开启“SSH远程开发”功能后,需要设置此参数。

可以选择已有密钥对。

也可以单击密钥对右侧的“立即创建”,跳转到数据加密控制 台,在“密钥对管理 > 私有密钥对”页面,单击“创建密钥 对”。

注意创建好的密钥对,请下载并妥善保存,使用本地IDE远程连接云上 Notebook开发环境时,需要用到密钥对进行鉴权认证。

“远程访 问白名 单”

开启“SSH远程开发”功能后,可以设置此参数。

设置为允许远程接入访问这个Notebook的IP地址(例如本地 PC的IP地址或者访问机器的外网IP地址,最多配置5个),不 设置则表示无接入IP地址限制。

如果用户使用的访问机器和华为云ModelArts服务的网络有隔 离,则访问机器的外网地址需要在主流搜索引擎中搜索“IP地 址查询”获取,而不是使用ipconfig或ifconfigip命令在本地查 询。支持最多配置5个IP地址。

3-4 查询外网 IP 地址

白名单IP地址如果配置错误将无法连接Notebook开发环境。

创建完Notebook后,可以在Notebook详情页中修改白名单IP 地址。

4. 参数填写完成后,单击“立即创建”进行规格确认。

5. 参数确认无误后,单击“提交”,完成Notebook的创建操作。

进入Notebook列表,正在创建中的Notebook状态为“创建中”,创建过程需要 几分钟,请耐心等待。当Notebook状态变为“运行中”时,表示Notebook已创 建并启动完成。

(17)

3-5 查看 Notebook 实例详情

在白名单右侧单击修改,可以修改允许远程访问的白名单IP地址。

单击“添加数据存储”,可以挂载OBS并行文件系统,方便读取数据,具体操作 参见动态挂载OBS并行文件系统。

如果存储使用的是云硬盘EVS,单击存储容量右侧的“扩容”,可以动态扩充云硬 盘EVS的容量,具体操作参见动态扩充云硬盘EVS容量。

3.2 打开 Notebook 实例

针对创建好的Notebook实例(即状态为“运行中”的实例),可以打开Notebook并 在开发环境中启动编码。

基于不同AI引擎创建的Notebook实例,打开方式不一样。

pytorch、tensorflow、mindspore、Tensorflow-mindspore、cylp-cbcpy、rlstudio- ray、mindquantum-mindspore镜像支持以下2种方式访问:

● 本地IDE使用PyCharm/VSCode/SSH工具,远程连接访问,具体参见本地IDE操作 流程。

● 在线JupyterLab访问,具体参见JupyterLab简介及常用操作。

mlstudio-pyspark镜像仅支持在线JupyterLab访问,具体参见JupyterLab简介及常用 操作

mindstudio镜像仅支持在本地使用MobaXterm通过SSH远程访问,具体参见使用

MindStudio开发Ascend算子。

modelbox镜像仅支持在本地使用VSCode插件远程访问,具体参见配置本地VSCode连 接云上开发环境Modelbox镜像。

(18)

2. 执行如下操作启动或停止Notebook。

– 启动Notebook:单击“操作”列的“启动”。只有处于“停止”状态的 Notebook可以执行启动操作。

– 停止Notebook:单击“操作”列的“停止”。只有处于“运行中”状态的 Notebook可以执行停止操作。

注意

Notebook停止后:

● /home/ma-user/work目录下的数据会保存,其余目录下内容会被清理。

例如:用户在开发环境中的其他目录下安装的外部依赖包等,在 Notebook停止后会被清理。

● Notebook实例将停止计费,但如有EVS盘挂载,存储部分仍会继续计费。

删除实例

针对不再使用的Notebook实例,可以删除以释放资源。

1. 登录ModelArts管理控制台,在左侧菜单栏中选择“开发环境>Notebook”,进入 新版Notebook管理页面。

2. 在Notebook列表中,单击操作列的“删除”,在弹出的确认对话框中,确认信息 无误,然后单击“确定”,完成删除操作。

注意

Notebook删除后不可恢复,请谨慎操作。

无论Notebook使用默认存储还是云硬盘EVS存储,实例删除后,挂载目录下的数 据也将一并删除,请谨慎操作。

3.4 开发环境中如何选择存储

不同存储的实现都不同,在性能、易用性、成本的权衡中可以有不同的选择,没有一 个存储可以覆盖所有场景,了解下云上开发环境中各种存储使用场景说明,更能提高 使用效率。

(19)

3-3 云上开发环境中各种存储使用场景说明 存储类

建议使用场景 优点 缺点

EFS文 件存储

(默认 存储)

针对探索、实验等非正 式生产场景,建议使用 这种。

开发环境和训练环境可 以同时挂载一块EFS存 储,省去了每次训练作 业下载数据的要求,一 般来说重IO读写模 型,超过32卡的大规 模训练不适合。

提供免费的50GB共享网络存 储。

实现为NFS,可以在多个开 发环境、开发环境和训练之 间共享,如果不需要重型分 布式训练作业,特别是启动 训练作业时,不需要额外再 对数据进行下载,这种存储 便利性可以作为首选。

缺点是生产环境 下,需要额外申 请并配置,以及 重型训练作业时 可能遇到IO瓶 颈。

云硬盘EVS块 存储

比较适合只在开发环境 中做数据、算法探索,

性能较好。

块存储SSD,可以理解为一 个磁盘,整体IO性能比NFS 要好,可以动态扩充,最大 可以到4096GB。

云硬盘EVS作为持久化存储 挂载在/home/ma-user/

work目录下,该目录下的内 容在实例停止后会被保留,

存储支持在线按需扩容。

缺点是只能在单 个开发环境中使 用 。

OBS并 行文件 系统

数据集的存储。

● 数据集预览和操 作,将承载数据集 的OBS并行文件系 统挂载至Notebook 中,可以像本地文 件系统一样操作数 据集。

● 在Notebook中训练 时,可直接使用挂 载至Notebook容器 中的OBS数据集。

廉价存储,大吞吐量,但是 小文件读写较弱。建议上传 时按照128MB或者64MB打 包或者切分,使用时边下载 边解压后在本地读取。

缺点是对象存储 语义,和Posix语 义有区别,需要 进一步理解。

OBS对 象存储

新版Notebook不支持 直接存储在OBS桶或挂 载OBS桶。

在开发环境中做大规模

- -

(20)

如何使用

1. 在开发环境中如何使用EFS文件存储(默认存储)?

在创建Notebook实例时选择默认存储即可。

2. 在开发环境中如何使用云硬盘EVS块存储?

在创建Notebook实例时选择云硬盘存储,Notebook运行过程中可以动态扩充云 硬盘EVS容量。

3. 在开发环境中如何使用OBS并行文件系统?

Notebook运行过程中可以动态挂载OBS并行文件系统。

3.5 动态挂载 OBS 并行文件系统

什么是动态挂载 OBS 并行文件系统

在运行态的Notebook容器中,采用动态挂载特性,将OBS对象存储模拟成本地文件系 统。其本质是通过挂载工具,将对象协议转为POSIX文件协议。挂载后应用层可以在容 器中正常操作OBS对象。

动态挂载适用于哪些使用场景

场景1:数据集预览和操作,将承载数据集的OBS挂载至Notebook中,可以像本地文 件系统一样操作数据集。

场景2:在Notebook中训练时,可直接使用挂载至Notebook容器中的数据集。

动态挂载 OBS 并行文件系统有什么限制

OBS提供两种桶,对象存储(对象桶)和并行文件系统。

ModelArts的Notebook(新版)仅支持挂载OBS的并行文件系统,挂载至Notebook容 器/data/的子目录下。

动态挂载 OBS 并行文件系统操作

方式1:通过ModelArts控制台操作

1. 登录ModelArts管理控制台,在左侧导航栏中选择“开发环境 > Notebook”,进 入“Notebook”新版管理页面。

(21)

3-6 动态挂载 OBS

3. 挂载成功后,可以在Notebook实例详情页查看到挂载结果。

3-7 挂载成功

方式2:API模式

动态挂载API接口已发布至华北-北京四和华东-上海一站点。必须在新版Notebook中执 行挂载脚本。

挂载脚本代码示例如下:

import os

from json import JSONEncoder

from modelarts.config.auth import auth_by_apig from modelarts.session import Session

session = Session()

request_url = "/v1/{}/notebooks/{}/storage".format(os.environ['PROJECT_ID'], os.environ["INSTANCE_ID"])

# 查询动态挂载列表

auth_by_apig(session, 'GET', request_url)

# 动态挂载,OBS路径obs://obs-bucket-train/dir/需要根据实际修改,挂载路径mount_path取值为“/data/

xxx/”,本示例以“/data/demo/”为例,“demo”可以自定义。

(22)

3.6 动态扩充云硬盘 EVS 容量

什么是动态扩容 EVS

存储配置采用云硬盘EVS的Notebook实例, 存储盘是挂载至容器/home/ma-user/

work/目录下, 可以在实例运行中的状态下,动态扩充存储盘容量,最大动态扩容 200GB。

动态扩容 EVS 适用于哪些使用场景

在Notebook开发过程中,初期存储使用量较小时, 创建Notebook可以选择小容量 EVS, 比如5G大小; 开发完成后,需要大规模数据集训练,此时再将存储容量扩容至 当前阶段所需容量,可以节约费用。

动态扩容 EVS 有什么限制

1. Notebook实例的存储配置采用的是云硬盘EVS。

3-8 创建 Notebook 实例时选择云硬盘 EVS 存储

2. 单次最大可以扩容100GB,允许扩容2次,总共扩容200GB,并且扩容后的总容量 不超过4096GB。

3. 云硬盘EVS存储容量最大支持4096GB,达到4096GB时,不允许再扩容。

4. 实例停止后,扩容后的容量仍然有效。计费也是按照扩容后的云硬盘EVS容量进行 计费。

5. 云硬盘EVS只要使用就会计费,请在停止Notebook实例后,确认不使用就及时删 除数据,释放资源,避免产生费用。

动态扩容 EVS 操作

1. 登录ModelArts管理控制台,在左侧导航栏中选择“开发环境 > Notebook”,进 入“Notebook”新版管理页面。

2. 选择运行中的Notebook实例,单击实例名称,进入Notebook实例详情页面,单 击“扩容”。

(23)

3-9 Notebook 实例详情页

3. 设置待扩充的存储容量大小,单击“确定”。系统显示“扩容中”,扩容成功 后,可以看到扩容后的存储容量。

单次最大可以扩容100GB,允许扩容2次,总共扩容200GB。

3-10 扩容

3-11 扩容中

(24)

3.7 变更 Notebook 实例运行规格

ModelArts允许用户在同一个Notebook实例中切换节点运行规格,方便用户灵活调整 规格资源。

前提条件

Notebook实例状态必须在“停止”中。

切换规格

1. 登录ModelArts管理控制台,在左侧菜单栏中选择“开发环境 > Notebook”,进 入新版Notebook管理页面。

2. 在Notebook列表,单击某个Notebook实例规格栏的 ,在下拉框中选择对应规 格资源。

3.8 修改 Notebook 远程连接 IP 地址

在创建Notebook实例时,如果设置了允许远程连接Notebook的白名单IP地址,当用 户需要更换一个IP地址远程连接Notebook实例时,则可以在Notebook的实例详情页 修改白名单IP地址。

1. 登录ModelArts管理控制台,在左侧菜单栏中选择“开发环境 > Notebook

(New)”,进入新版Notebook管理页面。

2. 在Notebook列表,单击某个具体的实例名称,进入查看实例详情页面。单击白名 单右侧的修改 ,可以修改允许远程访问Notebook的IP地址。修改后,单击 保存即可。

(25)

3-12 修改白名单 IP 地址

此处的IP地址,请填写外网IP地址。如果用户使用的访问机器和华为云ModelArts 服务的网络有隔离,则访问机器的外网地址需要在主流搜索引擎中搜索“IP地址 查询”获取,而不是使用ipconfig或ifconfigip命令在本地查询。

3-13 查询外网 IP 地址

3. 修改远程连接的可访问IP地址后, 原来已经建立的链接依然有效, 当链接关闭后 失效;新打开建立的链接只允许当前设置的IP进行访问。

(26)

4 CodeLab

面向众多开发者,ModelArts提供了CodeLab功能,一方面,一键进入开发环境,同时 预置了免费的算力规格,可直接免费体验Notebook功能;另一方面,针对AIGallery社 区发布的Notebook样例(.ipynb格式文件),可直接在CodeLab中打开,查看他人分 享的样例代码。

功能亮点

● 免费算力

CodeLab内置了免费算力,包含CPU和GPU两种。您可以使用免费规格,端到端 体验ModelArts Notebook能力。也可使用此免费算力,在线完成您的算法开发。

● 即开即用

无需创建Notebook实例,打开即可编码。

● 高效分享

ModelArts在AI Gallery中提供的Notebook样例,可以直接通过Run in

ModelArts,一键打开运行和学习,并且可将样例修改后分享到AI Gallery中直接 另存用于个人开发。

同时,您开发的代码,也可通过CodeLab快速分享到AI Gallery中给他人使用学 习。

使用限制

● CodeLab默认打开,使用的是CPU计算资源。如需切换为GPU,请在右侧窗口,

更换GPU规格。

● 自启动后,免费规格默认可使用1小时,请注意右上角的剩余时长。超过1小时 后,可执行续期操作,且系统每隔一段时间,将提醒确认下续期。

● 免费的CodeLab主要用于体验,72小时内未使用,将释放资源。保存在其中的代 码文档将丢失,请注意备份文件以及使用时长。

(27)

4-1 支持的框架及版本

CodeLab 入口

● ModelArts管理控制台的“总览”页

在“开发工具”区域下方,展示“CodeLab”简介卡片,单击“立即体验”,即 可进入。

4-2 CodeLab 入口

● AI Gallery页面提供的Notebook样例

a. 在AI Gallery页面,单击“资产集市 > 开发 > Notebook”栏目中的任意 Notebook样例,进入详情页。

(28)

说明

● 首次进入CodeLab时,会提醒先登录ModelArts控制台,由于需要进行环境准备,需要等待 1~2分钟才可顺利进入开发页面,请耐心等待。

● CodeLab的内部环境依托Notebook功能,因此其工作环境,与JupyterLab界面相似。

体验 CodeLab

1. 进入CodeLab主页。

从管理控制台总览页进入,展示CodeLab首页。

4-4 CodeLab 首页

2. 常用功能。

CodeLab的界面依托于JupyterLab,其相关的常见功能,与JupyterLab相同。

常用操作指导可参见JupyterLab操作指导:JupyterLab简介及常用操作。

说明

由于CodeLab的存储为系统默认路径,在使用“上传文件”或“下载文件至本地”时,只 能使用JupyterLab页面提供的功能(存在文件大小限制,目前建议为小于100MB的文 件),无法使用JupyterLab中提供的大文件上传下载功能。

如需使用大文件上传和下载的功能,建议您前往Notebook,创建一个收费的实例进行使 用。

3. 切换规格。

CodeLab支持CPU和GPU两种规格在右侧区域,单击切换规格,修改规格类型。

(29)

4-5 切换规格

4. 资源监控。

在使用过程中,如果想了解资源使用情况,可在右侧区域选择“Resource Monitor”,展示“CPU使用率”和“内存使用率”。

(30)

4-6 资源监控

5. 分享副本到AI Gallery。单击右上角的 ,将修改后的Notebook样例保存分享到 AI Gallery中,供自己或他人学习使用。

(31)

4-7 分享到 AI Gallery

分享成功后,通过分享链接可以打开分享的副本,也可以在AI Gallery中找到分享 的Notebook。

4-8 发布成功

(32)

5 JupyterLab

5.1 JupyterLab 操作流程

ModelArts支持通过JupyterLab工具在线打开Notebook,开发基于PyTorch、

TensorFlow和MindSpore引擎的AI模型。具体操作流程如下图所示。

5-1 使用 JupyterLab 在线开发调试代码

1. 创建Notebook实例

在ModelArts控制台中创建一个Notebook开发环境实例,选择要使用的AI框架。

具体参见创建Notebook实例。

2. 使用JupyterLab打开Notebook实例。具体参见打开JupyterLab。

3. 准备训练数据和代码文件,上传到JupyterLab中。具体参见上传本地文件至

JupyterLab。

4. 在JupyterLab中编写代码文件,并运行调试。具体参见JupyterLab简介及常用操 作。

5. 在JupyterLab中直接调用ModelArts提供的SDK,创建训练作业,上云训练。

调用SDK创建训练作业的操作请参见调用SDK创建训练作业(当前仅支持提交到

(33)

可以说,JupyterLab是开发者们下一阶段更主流的开发环境。JupyterLab具有和 Jupyter Notebooks一样的组件,但支持更加灵活和更加强大的项目操作方式。

打开 JupyterLab

下面介绍如何从运行中的Notebook实例打开JupyterLab。

1. 登录ModelArts管理控制台,在左侧菜单栏中选择“开发环境 > Notebook”,进 入新版Notebook管理页面。

2. 选择状态为“运行中”的Notebook实例,单击操作列的“打开”,访问 JupyterLab。

5-2 打开 Notebook 实例

3. 进入JupyterLab页面后,自动打开Launcher页面,如下图所示。您可以使用开源 支持的所有功能,详细操作指导可参见JupyterLab官网文档。

5-3 JupyterLab 主页

(34)

JupyterLab 中新建 ipynb 文件

进入JupyterLab主页后,可在“Notebook”区域下,选择适用的AI引擎,单击后将新 建一个对应框架的ipynb文件。

由于每个Notebook实例选择的工作环境不同,其支持的AI框架也不同,下图仅为示 例,请根据实际显示界面选择AI框架。

5-4 选择 AI 引擎并新建一个 ipynb 文件

新建的ipynb文件将呈现在左侧菜单栏中。

5-5 新建文件

新建文件并打开 Console

Console的本质为Python终端,输入一条语句就会给出相应的输出,类似于Python原 生的IDE。

进入JupyterLab主页后,可在“Console”区域下,选择适用的AI引擎,单击后将新建 一个对应框架的Notebook文件。

由于每个Notebook实例选择的工作环境不同,其支持的AI框架也不同,下图仅为示 例,请根据实际显示界面选择AI框架。

(35)

5-6 选择 AI 引擎并新建一个 Console

文件创建成功后,将直接呈现Console页面。

5-7 新建文件(Console)

JupyterLab 中编辑文件

JupyterLab可以在同一个窗口同时打开几个Notebook或文件(如HTML、TXT、

Markdown等),以页签形式展示。

JupyterLab的一大优点是,可以任意排版多个文件。在右侧文件展示区,您可以拖动 打开文件,随意调整文件展示位置,可以同时打开多个文件。

(36)

5-8 多文件任意编排

当在一个Notebook中写代码时,如果需要实时同步编辑文件并查看执行结果,可以新 建该文件的多个视图。

打开ipynb文件,然后单击菜单栏“File > New View for Notebook”,即可打开多个 视图。

5-9 同一个文件的多个视图

JupyterLab的ipynb文件代码栏中输入代码,需要在代码前加!符号。

例如:安装外部库Shapely

!pip install Shapely

例如:查看PythonPath

!echo $PYTHONPATH

5-10 运行代码

(37)

自动停止及续期

在创建或启动Notebook时,如果启用了自动停止功能,则在JupyterLab的右上角会显 示当前实例停止的倒计时(剩余时长),在倒计时结束前可以单击剩余时间进行续 期。

5-11 自动停止

5-12 续期

(38)

JupyterLab 常用快捷键和插件栏

5-13 JupyterLab 常用快捷键和插件栏

5-1 快捷键说明

快捷键 说明

打开Launcher页面,可快速创建新的Notebook、Console或其他文 件。

创建文件夹。

上传文件。

刷新文件目录。

Git插件,可连接此Notebook实例关联的Github代码库。

(39)

5-2 插件栏常用插件说明

插件 说明

文件列表。单击此处,将展示此Notebook实例下的所有文件列 表。

罗列ModelArts Examples。

不同Region支持的Examples不一样,请以控制台实际界面为准。

当前实例中正在运行的Terminal和Kernel。

Git插件,可以方便快捷的使用Github代码库。

快速启动命令。

属性检查器。

查看正在打开的文件页签。

文档结构图。

5-14 导航栏按钮

5-3 导航栏按钮介绍

按钮 说明

File 新建、关闭、保存、重新加载、、重命名、导出、打印Notebook 等功能。

Edit 编辑ipynb文件中代码块的相关操作,包括撤销、重做、剪切、复 制、粘贴、选择、移动、合并、清除、查找代码块等。

(40)

按钮 说明

Settings JupyterLab工具系统设置。

Help JupyterLab工具自带的帮助参考。

5-15 ipynb 文件菜单栏中的快捷键

5-4 ipynb 文件菜单栏中的快捷键

快捷键 说明

保存文件。

添加新代码块。

剪切选中的代码块。

复制选中的代码块。

粘贴选中的代码块。

执行选中的代码块。

终止kernel。

重启kernel。

此处下拉框有4个选项,分别是:

Code(写python代码),Markdown(写Markdown代码,通常 用于注释),Raw(一个转换工具),-(不修改)。

查看代码历史版本。

git插件,图标显示灰色表示当前Region不支持。

当前的资源规格。

(41)

资源监控

在使用过程中,如果想了解资源使用情况,可在右侧区域选择“Resource Monitor”,展示“CPU使用率”和“内存使用率”。

5-16 资源监控

(42)

6 本地 IDE

6.1 本地 IDE 操作流程

ModelArts支持通过本地IDE环境远程连接到Notebook中,开发基于Pytorch、

Tensorflow和MindSpore引擎的AI模型。具体操作流程如下图所示。

6-1 使用本地 IDE 开发流程

1. 配置本地IDE

在用户的PC端配置本地IDE环境。

支持通过PyCharm和VSCode 2类本地IDE连接云上Notebook。PyCharm和 VSCode可以使用插件自动化配置,也可以手工配置。

2. 创建Notebook实例

在ModelArts控制台中创建一个Notebook开发环境实例,选择要使用的AI框架,

并开启SSH远程开发功能。

3. 使用本地IDE远程连接到ModelArts的开发环境中。

4. 上传数据和代码至开发环境中,进行代码调试。

(43)

– 在本地IDE中提交训练作业(当前仅支持提交到旧版训练作业)

可以基于PyCharm ToolKit直接提交训练作业,具体参考使用PyCharm

ToolKit提交训练作业。

也可以通过调用ModelArts提供的SDK,创建训练作业,上云训练,调用 SDK创建训练作业的操作请参见调用SDK创建训练作业。

– 在ModelArts的Console控制台页面中提交训练作业,具体参考创建训练作 业。

6.2 配置本地 IDE(PyCharm ToolKit 连接)

ModelArts提供了一个PyCharm插件工具PyCharm ToolKit,协助用户完成代码上 传、提交训练作业、将训练日志获取到本地展示等,用户只需要专注于本地的代码开 发即可。

前提条件

本地已安装2019.2及以上版本的PyCharm专业版。SSH远程开发功能只限PyCharm专 业版。

Step1 下载并安装 PyCharm ToolKit

插件工具包PyCharm ToolKit集成在ModelArts管理控制台中,请先下载并安装 PyCharm ToolKit插件。

具体下载和安装过程请参见安装PyCharm ToolKit工具插件包。

Step2 登录插件

请创建插件访问密钥AK/SK(参考链接),并使用访问密钥完成登录认证(参考链 接),使得ToolKit与公有云完成连接。

Step3 创建 Notebook 实例

创建一个Notebook实例,并开启远程SSH开发,配置远程访问IP白名单。该实例状态 必须处于“运行中”,具体参见创建Notebook实例章节。

Step4 插件自动化配置

1. 在本地的PyCharm开发环境中,单击“ModelArts > Connect To Remote >

Remote Config”,配置插件。

(44)

说明

此处如果看不到Connect to Remote选项,请先参考创建Notebook实例章节,创建 Notebook实例,并开启该实例的SSH远程开发功能。

也可能是PyCharm ToolKit的版本不正确,请按照文档要求下载新版本的PyCharm ToolKit。

下载前请先清除浏览器缓存,如果之前下载过老版本的PyCharm ToolKit,浏览器会有缓 存,可能会导致新版本下载失败。

2. 此时,会出现该帐号已创建的所有包含SSH功能的Notebook列表,下拉进行选择 对应Notebook。

6-3 Notebook 列表

– KeyPair: 需要选择保存在本地的Notebook对应的keypair认证。即创建 Notebook时创建的密钥对文件,创建时会直接保存到浏览器默认的下载文件 夹中。

– PathMappings: 该参数为本地IDE项目和Notebook对应的同步目录,默认为/

home/ma-user/work/project名称,可根据自己实际情况更改。

3. 单击“Apply”,配置完成后,重启IDE生效。

重启后初次进行update python interpreter需要耗费20分钟左右。

Step5 使用插件连接云上 Notebook

与Notebook断开连接的状态下,单击Notebook名称,根据提示启动本地IDE与 Notebook的连接(默认启动时间4小时)。

6-4 启动连接 Notebook

(45)

连接状态下,单击Notebook名称,根据提示断开本地IDE与云上Notebook的连接。

6-5 停止连接 Notebook

Step6 同步上传本地文件至 Notebook

本地文件中的代码直接拷贝至本地IDE中即可,本地IDE中会自动同步至云上开发环 境。

初始化同步:

在本地IDE的Project目录下,单击右键,选择“Deployment”,单击“Upload to xxx”(Notebook名称),将本地工程文件上传至指定的Notebook。

(46)

6-6 同步本地文件至 Notebook

后续同步:

只需修改代码后保存(ctrl+s),即可进行自动同步。

插件安装完成后在本地IDE中开启了“Automatic Upload”,本地目录中的文件会自 动上传至云端开发环境Notebook。如果未开启,请参考下图开启自动上传。

(47)

6-7 开启自动上传

Step7 远程调试

单击本地IDE右下角interpreter,选择Notebook的python解释器。

6-8 选择 Python 解释器

像本地运行代码一样,直接单击运行按钮运行代码即可,此时虽然是在本地IDE点的运 行按钮,实际上运行的是云端Notebook里的代码,日志可以回显在本地的日志窗口。

6-9 查看运行日志

(48)

6-10 设置运行参数(1)

选择远程连接到云上开发环境实例对应的Python解释器。

6-11 设置运行参数(2)

当需要调试代码时,可以直接打断点,然后使用debug方式运行程序。

6-12 使用 debug 方式运行程序

(49)

此时可以进入debug模式,代码运行暂停在该行,且可以查看变量的值。

6-13 Debug 模式下查看变量值

6.3 配置本地 IDE(PyCharm 手动连接)

本地IDE环境支持Pycharm和VSCode。通过简单配置,即可用本地IDE远程连接到 ModelArts的Notebook开发环境中,调试和运行代码。

本章节介绍基于PyCharm环境访问Notebook的方式。

前提条件

● 本地已安装2019.2及以上版本的PyCharm专业版。SSH远程调试功能只限 PyCharm专业版。

● 创建一个Notebook实例,并开启远程SSH开发。该实例状态必须处于“运行 中”,具体参见创建Notebook实例章节。

● 在Notebook实例详情页面获取开发环境IP地址(例如:dev-modelarts- cnnorth4.huaweicloud.com)和端口号。

6-14 Notebook 实例详情页面

(50)

– Host: 云上开发环境的IP地址,即在开发环境实例页面远程访问模块获取的IP 地址。例如:dev-modelarts-cnnorth4.huaweicloud.com

– Port: 云上开发环境的端口,即在开发环境实例页面远程访问模块获取的端口 号。

– User name: 固定为ma-user – Authentication type: Key pair方式

– Private key file: 存放在本地的云上开发环境私钥文件,即在创建开发环境实 例时创建并保存的密钥对文件。

2. 单击 将连接重命名,可以自定义一个便于识别的名字,单击OK。

3. 配置完成后,单击Test Connection测试连通性。

4. 选择Yes,显示Successfully connected表示网络可以连通,单击OK。

5. 在最下方再单击OK保存配置。

6-15 配置 SSH

Step2 获取开发环境预置虚拟环境路径

1. 单击“Tools > Start SSH Session”,则可连接到云端开发环境内。

2. 执行如下命令可在/home/ma-user/下面的README文件查看当前环境内置的 Python虚拟环境。

cat /home/ma-user/README

3. 执行source命令可以切换到具体的Python环境中。

4. 执行which python查看python路径并拷贝出来,以备后续配置云上Python Interpreter使用。

(51)

6-16 获取开发环境预置虚拟环境路径

Step3 配置云上 Python Interpreter

1. 单击“File > Settings > Project:PythonProject > Python Interpreter”,单击设 置图标 ,再单击“Add”,添加一个新的interpreter。

2. 选择“Existing server configuration”,在下拉菜单中选择上一步配置好的SSH configuration,单击“Next”。

3. 配置Python Interpreter

– Interpreter:填写第一步拷贝的python路径,例如:/home/ma-user/

anaconda3/envs/Pytorch-1.0.0/bin/python

如果路径为~/anaconda3/envs/Pytorch-1.0.0/bin/python 把~替换为/

home/ma-user即可。

– Sync folders: 需要配置本地的工程目录文件同步到云上开发环境环境中的某 个目录,推荐配置为/home/ma-user下的某个目录中(其他目录可能没有访 问权限),例如/home/ma-user/work/projects。

4. 单右侧文件夹图标!,勾选上“Automatically upload”选项,以便于本地修改的 文件自动上传到容器环境中。

5. 单击“Finish”,结束配置。

可以看到本地的工程文件已经自动往云上环境上传了。后续本地的文件每修改一 下,都会自动的同步到云上的环境中。

右下角可以看到当前的Interpreter为Remote Interpreter。

(52)

6-17 配置云上 Python Interpreter

Step4 云上环境依赖库安装

在进入开发环境后,可以使用不同的虚拟环境,例如TensorFlow、PyTorch等,但是实 际开发中,通常还需要安装其他依赖包,此时可以通过terminal连接到环境里操作。

单击工具栏“Tools >Start SSH session”,选择SSH Configuration中配置的开发环 境。可以执行pip install安装所需要的包。

Step5 在开发环境中调试代码

由于已经连接至云端开发环境,此时可以方便的在本地PyCharm中编码、调测并运 行。运行实际环境为云上开发环境,资源为云上昇腾AI处理器资源。可以做到本地编 写修改代码,直接在云上环境运行。

像本地运行代码一样,直接单击运行按钮运行代码即可,此时虽然是在本地IDE单击的 运行按钮,实际上运行的是云端开发环境里的代码,日志可以回显在本地的日志窗 口。

(53)

6-18 调试代码

也可以单击右上角的Run/Debug Configuration来设置运行的参数。

6-19 设置运行参数

当需要调试代码时,可以直接打断点,然后使用debug方式运行程序。

(54)

6-20 代码打断点

6-21 Debug 方式调试

此时可以进入debug模式,代码运行暂停在该行,且可以查看变量的值。

6-22 Debug 模式

(55)

使用debug方式调试代码的前提是本地的代码和云端的代码是完全一致的,如果不一 致可能会导致在本地打断点的行和实际运行时该行的代码并不一样,会出现意想不到 的错误。

因此在配置云上Python Interpreter时,推荐选择Automatically upload选项,以保证 本地的文件修改能自动上传到云端。如果没有选择自动上传,则本地代码修改完后,

也可以参考Step6 同步上传本地文件至Notebook手动上传目录或代码。

6.4 配置本地 IDE(VSCode ToolKit 连接)

ModelArts提供了一个VSCode插件工具,协助用户完成SSH远程连接Notebook。

前提条件

● 下载并安装VSCode。

Windows用户直接单击此处下载:https://update.code.visualstudio.com/

1.57.1/win32-x64-user/stable。

其他系统用户的下载地址: https://code.visualstudio.com/updates/v1_57 图6-23 VSCode 的下载位置

VSCode版本要求:当前VSCode的最新版本和VSCode最新的remote-ssh插件匹配 有问题,建议用户使用VSCode 1.57.1。后续建议用户使用VSCode最新版本。

(56)

6-24 VSCode 安装指导

● 用户本地PC或服务器的操作系统中建议先安装Python环境,详见VSCode官方指 导。

● 准备好密钥对。

密钥对在用户第一次创建时,自动下载,之后使用相同的密钥时不会再有下载界 面(用户一定要保存好),或者每次都使用新的密钥对。

Step1 下载 VSCode 插件

VSCode的插件工具包VSCode-ToolKit集成在ModelArts管理控制台中,请先下载并安 装VSCode插件工具包,下载链接。

Step2 安装 VSCode 插件

1. 在本地的VSCode开发环境中,如图6-25所示,选择本地的VSCode插件并单击

“安装”。

(57)

6-25 安装 VSCode 插件

2. 安装过程预计1~2分钟,如图6-26所示,请耐心等待。

6-26 安装过程

3. 安装完成后,系统右下角提示安装完成,导航左侧出现ModelArts图标 和 SSH远程连接图标 ,表示VSCode插件安装完成。

(58)

6-28 安装完成

Step3 登录 VSCode 插件

1. 在本地的VSCode开发环境中,单击ModelArts图标 ,单击“User Settings”,配置用户登录信息。

(59)

6-29 登录插件

2. 输入如下用户登录信息,单击“登录”。

– Name:自定义用户名,仅用于VSCode页面展示,不与任何华为云用户关 联。

– AK:在华为云“帐号中心 > 我的凭证 > 访问密钥”中创建访问密钥,获取 AK(参考链接)。

– SK:在华为云“帐号中心 > 我的凭证 > 访问密钥”中创建访问密钥,获取SK

(参考链接)。

– 选择站点:例如:北京四。此处的站点必须和远程连接的Notebook在同一个 站点,否则会导致连接失败。

也可以切换登录方式,采用如图6-30所示方式输入用户信息后,Ctrl+S保存。

6-30 配置用户登录信息

(60)

3. 登录成功后显示Notebook实例列表。

6-31 登录成功

Step4 创建 Notebook 实例

创建一个Notebook实例,并开启远程SSH开发,配置远程访问IP白名单,具体参见创 建Notebook实例。

Step5 连接 Notebook 实例

1. 在本地的VSCode开发环境中,右键单击实例名称,单击“Connect to Instance”,启动并连接Notebook实例。

Notebook实例状态处于“运行中”或“停止”状态都可以,如果Notebook实例 是停止状态,连接Notebook时,VSCode插件会先启动实例再去连接。

6-32 连接 Notebook 实例

或者单击实例名称,在VSCode开发环境中显示Notebook实例详情页,单击“连 接”,系统自动启动该Notebook实例并进行远程连接。

6-33 查看 Notebook 实例详情页

(61)

2. 第一次连接Notebook时,系统右下角会提示需要先配置密钥文件。根据系统提示 单击“确定”。

6-34 配置密钥文件

3. 选择本地密钥pem文件(建议放在用户家目录下),单击“确定”后,插件自动 连接远端Notebook实例。

首次连接大约耗时1~2分钟,取决于本地的网络情况。VSCode环境左下角显示类 似下图即为连接成功。

6-35 连接成功

Step6 上传本地代码到云端开发环境

1. 在VSCode界面,单击“File > OpenFolder”打开云端路径。

6-36 Open Floder

(62)

6-37 选择文件路径

3. 此时,会在IDE左侧出现该开发环境下的目录结构,把想要上传的代码及其他文件 直接拖拽至对应得文件夹内即完成本地代码上传至云端。

Step7 远程调试代码

在VSCode中打开要执行的代码文件,在执行代码之前需要选择合适的Python版本路 径,单击下方默认的Python版本路径,此时在上方会出现该远程环境上所有的python 版本,选择自己需要的版本即可。

6-38 选择 Python 版本

(63)

1. 对于打开的代码文件,单击run按钮,即可执行,可以在下方的Terminal中看到代 码输出信息。

2. 如果要对代码进行debug调试,需要单击左侧“Run > Run and Debug”。

3. 选择当前打开的默认的python代码文件进行调试。

4. 对当前代码进行打断点,即在代码左侧进行单击,就会出现小红点。

5. 此时,即可按照正常的代码调试步骤对代码调试,在界面左边会显示debug信 息,代码上方有相应的调试步骤。

相关操作

卸载VSCode插件操作如图6-39所示。

6-39 卸载 VSCode 插件

(64)

使用VSCode提交代码时弹出对话框提示用户名和用户邮箱配置错误

VSCode连接远端Notebook时报错如“XHR failed”

安装远端插件时不稳定,需尝试多次

Notebook实例重新启动后,需要删除本地known_hosts才能连接

更多VSCode使用相关FAQ,请参见FAQ。

6.5 配置本地 IDE(VSCode 手动连接)

本地IDE环境支持Pycharm和VSCode。通过简单配置,即可用本地IDE远程连接到 ModelArts的Notebook开发环境中,调试和运行代码。

本章节介绍基于VSCode环境访问Notebook的方式。

前提条件

● 下载并安装VSCode。

Windows用户直接单击此处下载:https://update.code.visualstudio.com/

1.57.1/win32-x64-user/stable。

其他系统用户的下载地址: https://code.visualstudio.com/updates/v1_57 图6-40 VSCode 的下载位置

VSCode版本要求:当前VSCode的最新版本和VSCode最新的remote-ssh插件匹配 有问题,建议用户使用VSCode 1.57.1。后续建议用户使用VSCode最新版本。

(65)

6-41 VSCode 安装指导

● 用户本地PC或服务器的操作系统中建议先安装Python环境,详见VSCode官方指 导。

● 创建一个Notebook实例,并开启远程SSH开发。该实例状态必须处于“运行 中”,具体参见创建Notebook实例章节。

● 在Notebook实例详情页面获取开发环境访问地址(例如:dev-modelarts- cnnorth4.huaweicloud.com)和端口号。

6-42 Notebook 实例详情页面

● 准备好密钥对。

密钥对在用户第一次创建时,自动下载,之后使用相同的密钥时不会再有下载界 面(用户一定要保存好),或者每次都使用新的密钥对。

Step1 添加 Remote-SSH 插件

(66)

6-43 添加 Remote-SSH 插件

Step2 配置 SSH

1. 在本地的VSCode开发环境中,单击左侧Remote Explorer按钮 ,在上方的下 拉列表中选择“SSH Target”,再单击页面上的设置按钮 ,此时会出现SSH配 置文件路径。

6-44 配置 SSH Targets 页面

(67)

2. 单击列表中出现的SSH路径按钮,打开config文件,进行配置。

6-45 配置 SSH Config 文件

HOST remote-dev

hostname <instance connection host>

port <instance connection port>

user ma-user

IdentityFile ~/.ssh/test.pem UserKnownHostsFile=/dev/null StrictHostKeyChecking no

– Host: 自定义设置的云上开发环境名称

– HosName: 云上开发环境的访问地址,即在开发环境实例页面远程访问模块 获取的访问地址。例如:dev-modelarts-cnnorth4.huaweicloud.com

– Port: 云上开发环境的端口,即在开发环境实例页面远程访问模块获取的端口 号。

– User:登录用户只支持ma-user进行登录

– IdentityFile: 存放在本地的云上开发环境私钥文件,即前提条件•准备好密钥 对。中准备的密钥对。

3. 配置云上开发环境系统平台,单击“File > Preference > Settings > Extensions >

Remote-SSH”, 在“Remote Platform”中,单击“Add Item”选项,设置

“Item”和“Value”,配置完成后,单击“OK”。

6-46 配置云上开发环境系统平台

(68)

“Value”:在下拉选择框中选择远端开发环境平台。

4. 再回到SSH Targets页面,单击右侧的Connect to Host in New Window按钮

,该按钮会显示远程开发环境名称,选中并打开。

6-47 打开开发环境

在新打开的页面中,看到下图所示界面,即表示连接成功。

6-48 开发环境远程连接成功

(69)

6-49 完整配置示例

Step3 安装云端 Python 插件

在新打开的的VSCode界面,单击左侧列表的Extensions选项 ,在搜索框中输入 Python,在下拉列表中单击“Install”进行安装。

6-50 安装云端 Python 插件

如果安装云端的Python插件不成功时,建议通过离线包的方式安装。具体操作请参见

(70)

3. 单击页面上方的“Terminal > New Terminal”,此时打开的的命令行界面即为远 端容器环境命令行。

4. 进入引擎后,通过执行如下命令安装依赖包。

pip install spacy

Step5 上传本地代码到云端开发环境

1. 在VSCode界面,单击“File > OpenFolder”打开云端路径。

6-51 Open Floder

2. 选择要打开的路径,单击“OK”。

6-52 选择文件路径

3. 此时,会在IDE左侧出现该开发环境下的目录结构,把想要上传的代码及其他文件 直接拖拽至对应得文件夹内即完成本地代码上传至云端。

(71)

6-53 上传本地代码

Step6 远程调试代码

在VSCode中打开要执行的代码文件,在执行代码之前需要选择合适的Python版本路 径,单击下方默认的Python版本路径,此时在上方会出现该远程环境上所有的python 版本,选择自己需要的版本即可。

(72)

6-54 选择 Python 版本

对于打开的代码文件,单击run按钮,即可执行,可以在下方的Terminal中看到代码输 出信息。

(73)

6-55 运行代码文件

如果要对代码进行debug调试,需要单击左侧“Run > Run and Debug”。

选择当前打开的默认的python代码文件进行调试。

对当前代码进行打断点,即在代码左侧进行单击,就会出现小红点。

此时,即可按照正常的代码调试步骤对代码调试,在界面左边会显示debug信息,代 码上方有相应的调试步骤。

(74)

6-56 调试代码

VSCode 使用常见问题

VSCode中查看远端日志

使用VSCode调试代码时不能进入源码

使用VSCode提交代码时弹出对话框提示用户名和用户邮箱配置错误

VSCode连接远端Notebook时报错如“XHR failed”

安装远端插件时不稳定,需尝试多次

Notebook实例重新启动后,需要删除本地known_hosts才能连接

更多VSCode使用相关FAQ,请参见FAQ。

6.6 配置本地 IDE(SSH 工具连接)

本节操作介绍在Windows环境中使用PuTTY SSH远程登录云上Notebook实例的操作步 骤。

前提条件

● 创建一个Notebook实例,并开启远程SSH开发,配置远程访问IP白名单。该实例 状态必须处于“运行中”,具体参见创建Notebook实例章节。

● 在Notebook实例详情页面获取开发环境访问地址(例如:dev-modelarts- cnnorth4.huaweicloud.com)和端口号。

(75)

● 准备好密钥对文件。

密钥对在用户第一次创建时,自动下载,之后使用相同的密钥时不会再有下载界 面(用户一定要保存好),或者每次都使用新的密钥对。

Step1 安装 SSH 工具

下载并安装SSH远程连接工具,以PuTTY为例,下载链接。

Step2 使用 puttygen 将密钥对.pem 文件转成.ppk 文件

1. 下载puttygen,并双击运行puttygen。

2. 单击“Load”,上传.pem密钥(即在创建Notebook实例时创建并保存的密钥对 文件)。

3. 单击“Save private key”,保存生成的.ppk文件。.ppk文件的名字可以自定义,

例如key.ppk。

6-58 将密钥对.pem 文件转成.ppk 文件

(76)

c. Connection Type:选择 SSH。

d. Saved Sessions:任务名称,在下一次使用PuTTY时就可以单击保存的任务名 称,即可打开远程连接。

6-59 设置 Session

3. 选择“Window > Translation”,在“Remote character set:”中选择

“UTF-8”。

(77)

6-60 设置字符格式

4. 选择“Connection > Data”, 在“Auto-login username” 中填写用户名“ma- user”。

(78)

6-61 填写用户名

5. 选择“Connection > SSH > Auth”, 单击“Browse”,选择“.ppk文件”(由

Step2密钥对.pem文件生成)。

(79)

6. 单击“Open”。如果首次登录,PuTTY会显示安全警告对话框,询问是否接受服 务器的安全证书。单击“Accept”将证书保存到本地注册表中。

6-62 询问是否接受服务器的安全证书

(80)

6-63 连接到云上 Notebook 实例

數據

表 3-3 云上开发环境中各种存储使用场景说明 存储类 型 建议使用场景 优点 缺点 EFS文 件存储 (默认 存储) 针对探索、实验等非正式生产场景,建议使用这种。 开发环境和训练环境可 以同时挂载一块EFS存 储,省去了每次训练作 业下载数据的要求,一 般来说重IO读写模 型,超过32卡的大规 模训练不适合。 提供免费的50GB共享网络存储。实现为NFS,可以在多个开发环境、开发环境和训练之间共享,如果不需要重型分布式训练作业,特别是启动训练作业时,不需要额外再对数据进行下载,这种存储便利性可以作为首选
表 5-2 插件栏常用插件说明 插件 说明 文件列表。单击此处,将展示此Notebook实例下的所有文件列 表。 罗列ModelArts Examples。 不同Region支持的Examples不一样,请以控制台实际界面为准。 当前实例中正在运行的Terminal和Kernel。 Git插件,可以方便快捷的使用Github代码库。 快速启动命令。 属性检查器。 查看正在打开的文件页签。 文档结构图。 图 5-14 导航栏按钮 表 5-3 导航栏按钮介绍 按钮 说明 File 新建、关闭、保存、重新加载、、
表 7-1 基本信息的参数描述 参数名称 说明 “名称” Notebook的名称。只能包含数字、大小写字母、下划线和中 划线,长度不能超过20位且不能为空。 “描述” 对Notebook的简要描述。 “自动停 止” 默认开启,且默认值为“1小时”,表示该Notebook实例将在 运行1小时之后自动停止,即1小时后停止计费。 开启自动停止功能后,可选择“1小时”、“2小时”、“4小 时”、“6小时”或“自定义”几种模式。选择“自定义”模 式时,可指定1~24小时范围内任意整数。 b

參考文獻

相關文件

很多人认为乒乓球运动是中国人最早开始的,但事实上乒乓球运动在中国只有

各个几何命题是否“真实”的问题就归结为公理是否“真实”的问题。可是人们

格式化: 字型: (英文)Times New Roman, (中文) 標楷體, 字型色彩: 文 字 1. 格式化: 字型: (英文)Times New Roman, (中文) 標楷體, 字型色彩: 文

最早的歌唱形式是打猎和狩猎中的欢 呼之声。随后,人类祭祀仪式的出现为歌

内蒙古大草原沙化退化,自然因素也好,人为因素也罢,最

微积分的创立是数学发展中的里程碑, 它的发展 和广泛应用开启了向近代数学过渡的新时期, 为研究 变量和函数提供了重要的方法和手段. 运动物体的瞬

虽然人类为了对付我已经采取了一些 措施,如加强对施工工地和拆迁工地的扬

由以上论证可知,当框架保持静止时,松鼠在导轨 AB 上的运动是以 AB 的中点 O 为平 衡位置,振幅不大于 1m、周期为 2.64s 的简谐运动.. 解析