华为云用户手册

  • 样例 数据样本 使用公开数据集AirPassengers.csv的前120行 数据示例 Month,Passengers1949-01,1121949-02,1181949-03,1321949-04,1291949-05,1211949-06,1351949-07,1481949-08,1481949-09,1361949-10,1191949-11,1041949-12,1181950-01,1151950-02,1261950-03,141
  • 参数说明 表3 参数 是否必选 描述 默认值 seq_col_name 是 时序列。仅用来对valueColName排序。 无 value_col_name 是 数值列。 无 group_col_names 否 分组列,多列用逗号分隔,例如col0,col1。每个分组会构建一个时间序列。 无 order 是 p、d和q分别表示自回归系数、差分、滑动回归系数。取值均为非负整数,范围为[0, 36]。 无 seasonal 否 sp、sd、sq分别表示季节因素的自回归,差分,移动平均系数,取值均为非负整数,范围为[0, 36]。 0,0,0 period 否 seasonal周期。数字类型,取值范围为(0, 100]。 12 predict_step 否 预测条数。数字类型,取值范围为(0, 365]。 12 confidence_level 否 预测置信水平。数字类型,取值范围为(0, 1)。 0.95
  • 参数说明 参数 是否必选 参数说明 默认值 id_col 是 用户id所在的列名 "id" vector_col 是 向量的列名列表,如col1,col2 "" topn 是 输出的距离最近的向量的数目。取值范围[1,+∞) 20 distance_type 是 距离的计算方式。取值[cosine] "cosine" distance_threshold 是 距离的阈值。当两个向量的距离小于此值时输出。取值范围(0,+∞) 1.0 leaf_size 是 叶子节点大小 50
  • 使用限制 当前仅支持PyCharm 2019.2及以上版本,包括社区版和专业版。 使用PyCharm ToolKit远程连接Notebook开发环境,仅限PyCharm专业版。 使用PyCharm ToolKit提交训练作业,社区版和专业版都支持,PyCharm ToolKit latest版本仅限提交新版训练作业。 PyCharm ToolKit工具支持Windows、Linux或Mac版本的PyCharm。
  • 支持的功能 表1 ToolKit(latest)功能列表 支持的功能 说明 对应操作指导 SSH远程连接 支持SSH远程连接ModelArts的Notebook开发环境。 配置PyCharm ToolKit远程连接Notebook 训练模型 支持将本地开发的代码,快速提交至ModelArts并自动创建新版训练作业,在训练作业运行期间获取训练日志并展示到本地。 提交训练作业(新版训练) 停止训练作业 查看训练日志 OBS上传下载 上传本地文件或文件夹至OBS,从OBS下载文件或文件夹到本地。 在PyCharm中上传下载文件
  • 在OBS中查看 提交训练作业时,系统将自动在您配置的OBS Path中,使用作业名称创建一个新的文件夹,用于存储训练输出的模型、日志和代码。 例如“train-job-01”作业,提交作业时会在“test-modelarts2”桶下创建一个命名为“train-job-01”的文件夹,且此文件夹下分别新建了三个文件夹“output”、“log”、“code”,分别用于存储输出模型、日志和训练代码。“output”文件夹还会根据您的训练作业版本再创建子文件夹,结构示例如下。 test-modelarts2 |---train-job-01 |---output |---log |---code
  • 功能介绍 ModelArts CLI,即ModelArts命令行工具,是一个跨平台命令行工具,用于连接ModelArts服务并在ModelArts资源上执行管理命令。用户可以使用交互式命令行提示符或脚本通过终端执行命令。为了方便理解,下面将ModelArts CLI统称为ma-cli。ma-cli支持用户在ModelArts Notebook及线下虚拟机中与云端服务交互,使用ma-cli命令可以实现命令自动补全、鉴权、镜像构建、提交ModelArts训练作业、提交 DLI Spark作业、OBS数据拷贝等。
  • 命令说明 表1 ma-cli支持的命令 命令 命令详情 configure ma-cli鉴权命令,支持用户名密码、AK/SK image ModelArts镜像构建、镜像注册、查询已注册镜像信息等 obs-copy 本地和OBS文件/文件夹间的相互拷贝 ma-job ModelArts训练作业管理,包含作业提交、资源查询等 dli-job DLI Spark任务提交及资源管理 auto-completion 命令自动补全
  • 命令概览 $ ma-cli auto-completion -hUsage: ma-cli auto-completion [OPTIONS] [[Bash|Zsh|Fish]] Auto complete ma-cli command in terminal. Example: # print bash auto complete command to terminal ma-cli auto-completion BashOptions: -H, -h, --help Show this message and exit. # 默认显示Bash Shell自动补全命令$ ma-cli auto-completionTips: please paste following shell command to your terminal to activate auto complation.[ OK ] eval "$(_MA_CLI_COMPLETE=bash_source ma-cli)"# 执行上述命令,此时Terminal已经支持自动补全$ eval "$(_MA_CLI_COMPLETE=bash_source ma-cli)" # 显示Fish Shell自动补全命令$ ma-cli auto-completion FishTips: please paste following shell command to your terminal to activate auto complation.[ OK ] eval (env _MA_CLI_COMPLETE=fish_source ma-cli)
  • 命令预览 $ ma-cli -hUsage: ma-cli [OPTIONS] COMMAND [ARGS]...Options: -V, -v, --version 1.2.1 -C, --config-file TEXT Configure file path for authorization. -D, --debug Debug Mode. Shows full stack trace when error occurs. -P, --profile TEXT CLI connection profile to use. The default profile is "DEFAULT". -h, -H, --help Show this message and exit.Commands: configure Configures authentication and endpoints info for the CLI. image Support get registered image list、register or unregister image、debug image, build image in Notebook. obs-copy Copy file or directory between OBS and local path. ma-job ModelArts job submission and query job details. dli-job DLI spark job submission and query job details. auto-completion Auto complete ma-cli command in terminal, support "bash(default)/zsh/fish".
  • 镜像构建命令总览 $ ma-cli image -hUsage: ma-cli image [OPTIONS] COMMAND [ARGS]... Support get registered image list, register or unregister image, debug image, build image in Notebook.Options: -H, -h, --help Show this message and exit.Commands: add-template, at List build-in dockerfile templates. build Build docker image in Notebook. debug Debug SWR image as a Notebook in E CS . df Query disk usage. get-image, gi Query registered image in ModelArts. get-template, gt List build-in dockerfile templates. prune Prune image build cache. register Register image to ModelArts. unregister Unregister image from ModelArts. 表1 镜像构建支持的命令 命令 命令详情 get-template 查询镜像构建模板。 add-template 加载镜像构建模板。 get-image 查询ModelArts已注册镜像。 register 注册SWR镜像到ModelArts镜像管理。 unregister 取消注册ModelArts镜像管理中的已注册镜像。 build 基于指定的Dockerfile构建镜像 (只支持ModelArts Notebook里使用)。 df 查询镜像构建缓存(只支持ModelArts Notebook里使用)。 prune 清理镜像构建缓存 (只支持ModelArts Notebook里使用)。 debug 在ECS上调试SWR镜像是否能在ModelArts Notebook中使用 (只支持已安装docker环境的ECS)。
  • 样例 数据样本 使用公开数据集AirPassengers.csv的前120行 数据示例: Month,Passengers1949-01,1121949-02,1181949-03,1321949-04,1291949-05,1211949-06,1351949-07,1481949-08,1481949-09,1361949-10,1191949-11,1041949-12,1181950-01,1151950-02,1261950-03,141
  • 概述 该算子可以帮助我们自动确定 A R I M A ( p , d , q ) ( P , D , Q ) m。 Auto ARIMA选择过程 1. 执行差分测试 决定差分d的大小(KPSS检测和ADF检测) 2. 拟合模型: 通过限制start_p、max_p、start_q max_q,在该范围内搜索最优参数;如果启用了季节性可选项,则还会执行Canova-Hansen来确定季节性差分的最佳阶数 D ,并之后基于此确定最佳 P 和 Q 超参数。 3. Auto ARIMA基于给定的information_criterion进行模型优化,范围('aic', 'aicc', 'bic', 'hqic', 'oob');A并通过生成AIC和BIC值来确定参数的最佳组合。AIC和BIC值是用于比较模型的评估器。这些值越低,模型就越好。 目前 Auto ARIMA算子只支持在Notebook环境运行,不支持DLI环境下运行。
  • 参数说明 表3 参数 是否必选 描述 默认值 seq_col_name 是 时序列。用来对valueColName排序。 无 value_col_name 是 数值列 无 group_col_names 否 分组列,多列用逗号分隔,如“col0,col1”。每个分组会构建一个时间序列 无 frequency 否 时序频率,正整数,范围为(0, 12]。 12说明 12表示12月/年。 max_order 否 p,q最大值,正整数,范围为[0,4]。 2 max_seasonal_order 否 季节性p,q最大值,正整数,范围为[0,2]。 1 max_diff 否 差分d最大值。正整数,范围为[0,2]。 2 max_seasonal_diff 否 季节性差分d最大值。正整数,范围为[0,1]。 1 diff 否 差分d,正整数,范围为[0,2]。diff与maxDiff同时设置时,maxDiff被忽略。diff与seasonalDiff要同时设置。 -1说明 取值为-1表示不指定diff。 seasonal_diff 否 季节性差分d。正整数,范围为[0,1]。seasonalDiff与maxSeasonalDiff同时设置时,maxSeasonalDiff被忽略。 -1说明 取值为-1表示不指定seasonalDiff。 max_iter 否 最大迭代次数,正整数 1500 tol 否 容忍度,double类型。 1e-5 predict_step 否 预测条数,数字,范围为(0, 365]。 12 confidence_level 否 预测置信水平,数字,范围为(0, 1)。 0.95
  • 示例 在ModelArts Notebook里进行镜像构建。 ma-cli image build .ma/customize_from_ubuntu_18.04_to_modelarts/Dockerfile -swr notebook_test/my_image:0.0.1 其中“.ma/customize_from_ubuntu_18.04_to_modelarts/Dockerfile”为Dockerfile文件所在路径,“notebook_test/my_image:0.0.1”为构建的新镜像的SWR路径。
  • 在ECS上调试SWR镜像是否能在ModelArts Notebook中使用 ma-cli支持在ECS上调试SWR镜像是否可以在ModelArts开发环境中运行,发现镜像中可能存在的问题。 表1 参数说明 参数名 参数类型 是否必选 参数说明 -swr / --swr-path String 是 需要调试的镜像的SWR路径。 -r / --region String 是 需要调试的镜像所在的区域。 -s / --service String 否 调试镜像的服务类型,NOTEBOOK或者MODELBOX,默认是NOTEBOOK。 -a / --arch Sring 否 调试镜像的架构,X86_64或者AARCH64,默认是X86_64。 -g / --gpu Bool 否 使用GPU进行调试开关,默认关闭。 父主题: ma-cli image镜像构建命令
  • ma-cli ma-job命令概述 使用ma-cli ma-job命令可以提交训练作业,查询训练作业日志、事件、使用的AI引擎、资源规格及停止训练作业等。 $ ma-cli ma-job -hUsage: ma-cli ma-job [OPTIONS] COMMAND [ARGS]... ModelArts job submission and query jod details.Options: -h, -H, --help Show this message and exit.Commands: delete Delete training job by job id. get-engine Get job engines. get-event Get job running event. get-flavor Get job flavors. get-job Get job details. get-log Get job log details. get-pool Get job engines. stop Stop training job by job id. submit Submit training job. 表1 训练作业支持的命令 命令 命令详情 get-job 查询ModelArts训练作业列表及详情。 get-log 查询ModelArts训练作业运行日志。 get-engine 查询ModelArts训练AI引擎。 get-event 查询ModelArts训练作业事件。 get-flavor 查询ModelArts训练资源规格。 get-pool 查询ModelArts训练专属池。 stop 停止ModelArts训练作业。 submit 提交ModelArts训练作业。 delete 删除指定作业id的训练作业。 父主题: 使用ma-cli ma-job命令提交ModelArts训练作业
  • 命令总览 $ma-cli dli-job -hUsage: ma-cli dli-job [OPTIONS] COMMAND [ARGS]... DLI spark job submission and query jod details.Options: -h, -H, --help Show this message and exit.Commands: get-job Get DLI spark job details. get-log Get DLI spark log details. get-queue Get DLI spark queues info. get-resource Get DLI resources info. stop Stop DLI spark job by job id. submit Submit dli spark batch job. upload Upload local file or OBS object to DLI resources. 表1 提交DLI Spark作业命令总览 命令 命令详情 get-job 查询DLI Spark作业列表及详情。 get-log 查询DLI Spark运行日志。 get-queue 查询DLI 队列。 get-resource 查询DLI 分组资源。 stop 停止DLI Spark作业。 submit 提交DLI Spark作业。 upload 上传本地文件或OBS文件到DLI分组资源。 父主题: 使用ma-cli dli-job命令提交DLI Spark作业
  • 基于ModelArts预置镜像提交训练作业 指定命令行options参数提交训练作业 ma-cli ma-job submit --code-dir obs://your-bucket/mnist/code/ \ --boot-file main.py \ --framework-type PyTorch \ --working-dir /home/ma-user/modelarts/user-job-dir/code \ --framework-version pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 \ --data-url obs://your-bucket/mnist/dataset/MNIST/ \ --log-url obs://your-bucket/mnist/logs/ \ --train-instance-type modelarts.vm.cpu.8u \ --train-instance-count 1 \ -q 使用预置镜像的train.yaml样例:
  • 基于 自定义镜像 创建训练作业 指定命令行options参数提交训练作业 ma-cli ma-job submit --image-url atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e \ --code-dir obs://your-bucket/mnist/code/ \ --user-command "export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH && cd /home/ma-user/modelarts/user-job-dir/code && /home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python main.py" \ --data-url obs://your-bucket/mnist/dataset/MNIST/ \ --log-url obs://your-bucket/mnist/logs/ \ --train-instance-type modelarts.vm.cpu.8u \ --train-instance-count 1 \ -q 使用自定义镜像的train.yaml样例: # .ma/train.yaml样例(自定义镜像)image-url: atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2euser-command: export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH && cd /home/ma-user/modelarts/user-job-dir/code && /home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python main.pytrain-instance-type: modelarts.vm.cpu.8utrain-instance-count: 1data-url: obs://your-bucket/mnist/dataset/MNIST/code-dir: obs://your-bucket/mnist/code/log-url: obs://your-bucket/mnist/logs/##[Optional] Uncomment to set uid when use custom image modeuid: 1000##[Optional] Uncomment to upload output file/dir to OBS from training platformoutput: - name: output_dir obs_path: obs://your-bucket/mnist/output1/##[Optional] Uncomment to download input file/dir from OBS to training platforminput: - name: data_url obs_path: obs://your-bucket/mnist/dataset/MNIST/##[Optional] Uncomment pass hyperparametersparameters: - epoch: 10 - learning_rate: 0.01 - pretrained:##[Optional] Uncomment to use dedicated poolpool_id: pool_xxxx##[Optional] Uncomment to use volumes attached to the training jobvolumes: - efs: local_path: /xx/yy/zz read_only: false nfs_server_path: xxx.xxx.xxx.xxx:/
  • 示例 基于yaml文件提交训练作业 ma-cli ma-job submit ./train-job.yaml 基于命令行和预置镜像pytorch1.8-cuda10.2-cudnn7-ubuntu18.04提交训练作业。 ma-cli ma-job submit --code-dir obs://automation-use-only/Original/TrainJob/TrainJob-v2/pytorch1.8.0_cuda10.2/code/ \ --boot-file test-pytorch.py \ --framework-type PyTorch \ --working-dir /home/ma-user/modelarts/user-job-dir/code \ --framework-version pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 \ --data-url obs://automation-use-only/Original/TrainJob/TrainJob-v2/pytorch1.8.0_cuda10.2/data/ \ --log-url obs://automation-use-only/Original/TrainJob/TrainJob-v2/pytorch1.8.0_cuda10.2/data/logs/ \ --train-instance-type modelarts.vm.cpu.8u \ --train-instance-count 1 \
  • 动态扩容EVS有什么限制 Notebook实例的存储配置采用的是云硬盘EVS。 单次最大可以扩容100GB,扩容后的总容量不超过4096GB。 云硬盘EVS存储容量最大支持4096GB,达到4096GB时,不允许再扩容。 实例停止后,扩容后的容量仍然有效。计费也是按照扩容后的云硬盘EVS容量进行计费。 云硬盘EVS只要使用就会计费,请在停止Notebook实例后,确认不使用就及时删除数据,释放资源,避免产生费用。
  • 命令示例 # 上传文件到OBS中 $ ma-cli obs-copy ./test.csv obs://${your_bucket}/test-copy/[ OK ] local src path: [ /home/ma-user/work/test.csv ][ OK ] obs dst path: [ obs://${your_bucket}/test-copy/ ] # 上传文件夹到OBS中,对应上传到OBS的目录为obs://${your_bucket}/test-copy/data/ $ ma-cli obs-copy /home/ma-user/work/data/ obs://${your_bucket}/test-copy/[ OK ] local src path: [ /home/ma-user/work/data/ ][ OK ] obs dst path: [ obs://${your_bucket}/test-copy/ ] # 上传文件夹到OBS中,并指定--drop-last-dir,对应上传到OBS的目录为obs://${your_bucket}/test-copy/ $ ma-cli obs-copy /home/ma-user/work/data/ obs://${your_bucket}/test-copy/ --drop-last-dir[ OK ] local src path: [ /home/ma-user/work/data ][ OK ] obs dst path: [ obs://${your_bucket}/test-copy/ ] # 从OBS下载文件夹到本地磁盘中 $ ma-cli obs-copy obs://${your_bucket}/test-copy/ ~/work/test-data/[ OK ] obs src path: [ obs://${your_bucket}/test-copy/ ][ OK ] local dst path: [ /home/ma-user/work/test-data/ ]
  • 场景介绍 在AI开发过程中,如何将文件方便快速地上传到Notebook几乎是每个开发者都会遇到的问题。 ModelArts之前对文件直接上传到Notebook的大小限制是100MB,超过限制的文件无法直接上传;其次需要上传的文件并不都在本地,可能是GitHub的开源仓库,可能是类似开源数据集(https://nodejs.org/dist/v12.4.0/node-v12.4.0-linux-x64.tar.xz)这样的远端文件,也可能是存放在OBS中的文件,ModelArts之前无法将这些文件直接上传到Notebook中;在文件上传过程中,用户无法获得更多的信息,例如上传进度和速度。 ModelArts上传文件特性主要解决了以上三个问题,不仅提供了更多上传文件的功能满足用户需求,而且展示了更多文件上传的细节,提升了用户的体验。 当前的文件上传功能: 支持上传本地文件; 支持Clone GitHub开源仓库; 支持上传OBS文件; 支持上传远端文件; 将文件上传详情可视化。 父主题: 上传文件至JupyterLab
  • 上传文件要求 对于大小不超过100MB的文件直接上传,并展示文件大小、上传进度及速度等详细信息。 对于大小超过100MB不超过5GB的文件可以使用OBS中转,系统先将文件上传OBS(对象桶或并行文件系统),然后从OBS下载到Notebook,上传完成后,会将文件从OBS中删除。 5GB以上的文件上传通过调用ModelArts SDK或者Moxing完成。 对于Notebook当前目录下已经有同文件名称的文件,可以覆盖继续上传,也可以取消。 支持10个文件同时上传,其余文件显示“等待上传”。不支持上传文件夹,可以将文件夹压缩成压缩包上传至Notebook后, 在Terminal中解压压缩包。 unzip xxx.zip #在xxx.zip压缩包所在路径直接解压 解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。 多个文件同时上传时,JupyterLab窗口最下面会显示上传文件总数和已上传文件数。
  • 上传本地大文件(100MB~5GB)至JupyterLab 对于大小超过100MB不超过5GB的文件可以使用OBS中转,系统先将文件上传至OBS(对象桶或并行文件系统),然后从OBS下载到Notebook。下载完成后,ModelArts会将文件自动从OBS中删除。 例如,对于下面这种情况,可以通过“OBS中转”上传。 图1 通过OBS中转上传大文件 若使用OBS中转需要提供一个OBS中转路径,可以通过以下三种方式提供: 图2 通过OBS中转路径上传 仅第一次单击“OBS中转”需要提供OBS中转路径,以后默认使用该路径直接上传,可以通过上传文件窗口左下角的设置按钮更新OBS中转路径。如图6所示。 方式一:在输入框中直接输入有效的OBS中转路径,然后单击“确定”完成。 图3 输入有效的OBS中转路径 方式二:打开OBS File Browser选择一个OBS中转路径,然后单击“确定”完成。 图4 打开OBS File Browser 方式三:单击“使用默认路径”完成。 图5 使用默认路径上传文件 图6 设置本地文件OBS中转路径 完成OBS中转路径设置后,开始上传文件。 图7 上传文件 解压缩文件包 将文件以压缩包形式上传至Notebook JupyterLab后, 可在Terminal中解压缩文件包。 unzip xxx.zip #在xxx.zip压缩包所在路径直接解压 解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。 父主题: 上传本地文件至JupyterLab
  • 异常处理 通过OBS下载文件到Notebook中时,提示Permission denied。请依次排查: 请确保读取的OBS桶和Notebook处于同一站点区域,例如:都在华北-北京四站点。不支持跨站点访问OBS桶。具体请参见如何查看OBS桶与ModelArts是否在同一区域。 请确认操作Notebook的帐号有权限读取OBS桶中的数据。如没有权限,请参见在Notebook中,如何访问其他帐号的OBS桶?。
  • 异常处理 Clone仓库失败。可能是网络原因问题。可以在JupyterLab的Terminal中通过执行git clone https://github.com/jupyterlab/extension-examples.git测试网络连通情况。 图6 Clone仓库失败 若克隆时遇到Notebook当前目录下已有该仓库,系统给出提示仓库名称重复,此时可以单击“覆盖”继续克隆仓库,也可以单击取消。
  • 参数说明 参数 子参数 参数说明 input_columns_str - 数据集的特征列名组成的格式化字符串,例如: "column_a" "column_a,column_b" label_col - 目标列名 model_input_features_col - 特征向量的列名 prediction_col - 训练模型时,预测结果对应的列名,默认为"prediction" max_depth - 树的最大深度,默认为5 max_bins - 特征分裂时的最大分箱个数,默认为32 min_instances_per_node - 决策树分裂时要求每个节点必须包含的实例数目,默认为1 min_info_gain - 最小信息增益,默认为0 subsampling_rate - 训练每棵树时,对训练集的抽样率,默认为1 max_iter - 最大迭代次数,默认为20 step_size - 步长,默认为0.1
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "select_columns_str": "", # @param {"label":"select_columns_str","type":"string","required":"false","helpTip":""} "bucket_num": 10 # @param {"label":"bucket_num","type":"integer","required":"true","range":"(0,2147483647)","helpTip":""} }bucket_statistics____id___ = MLSBucketStatistics(**params)bucket_statistics____id___.run()# @output {"label":"dataframe","name":"bucket_statistics____id___.get_outputs()['output_port_1']","type":"DataFrame"}
共100000条