华为云用户手册

  • 概述 创建开发环境实例的流程如下: 调用认证鉴权接口获取用户Token,在后续的请求中需要将Token放到请求消息头中作为认证。 调用查询支持的镜像列表接口查看开发环境的镜像类型和版本。 调用创建Notebook实例接口创建一个Notebook实例。 调用查询Notebook实例详情接口根据Notebook实例的ID查询实例的创建详情。 调用Notebook时长续约接口重置Notebook实例的使用时长。 调用停止Notebook实例接口停止正在运行的实例。 调用启动Notebook实例接口重新启动实例。 当Notebook实例不再需要时,调用删除Notebook实例接口删除实例。
  • 响应示例 状态码: 200 OK { "metrics" : { "un_annotation" : { "1606233612612" : 16, "1606320012681" : 16 }, "failed_user" : { }, "total" : { "1606233612612" : 16, "1606320012681" : 16 }, "queuing" : { }, "success" : { }, "unfinished" : { }, "manual_annotation" : { "1606233612612" : 0, "1606320012681" : 0 }, "failed" : { }, "failed_system" : { } } }
  • URI GET /v2/{project_id}/datasets/{dataset_id}/metrics 表1 路径参数 参数 是否必选 参数类型 描述 dataset_id 是 String 数据集ID。 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 end_time 是 Long 监控信息的截止时间。 start_time 是 Long 监控信息的起始时间。 workforce_task_id 否 String 团队标注任务ID。
  • 响应消息体 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "cn-north-1", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息,具体请参见错误码。
  • 模型管理权限 表1 模型管理细化权限说明 权限 对应API接口 授权项 依赖的授权项 IAM 项目 企业项目 导入模型 POST /v1/{project_id}/models modelarts:model:create obs:bucket:ListAllMybuckets obs:object:PutObjectAcl obs:bucket:ListBucket obs:bucket:HeadBucket obs:object:GetObject obs:object:PutObject √ √ 查询模型列表 GET /v1/{project_id}/models modelarts:model:list - √ √ 删除模型 DELETE /v1/{project_id}/models/{model_id} modelarts:model:delete - √ √ 查询模型详情 GET /v1/{project_id}/models/{model_id} modelarts:model:get - √ √ 父主题: 权限策略和授权项
  • 训练作业权限(新版) 表1 训练作业(新版)细化权限说明 权限 对应API接口 授权项 依赖的授权项 IAM项目 企业项目 创建训练作业 POST /v2/{project_id}/training-jobs modelarts:trainJob:create swr:repository:listTags swr:repository:getRepository swr:repository:listRepositories smn:topic:publish smn:topic:list obs:object:GetObjectAcl obs:object:PutObjectAcl obs:object:PutObject obs:object:GetObject obs:object:DeleteObject obs:object:ModifyObjectMetaData √ √ 更新训练作业 PUT /v2/{project_id}/training-jobs/{training_job_id} modelarts:trainJob:update - √ √ 删除训练作业 DELETE /v2/{project_id}/training-jobs/{training_job_id} modelarts:trainJob:delete - √ √ 查询训练作业详情 GET /v2/{project_id}/training-jobs/{training_job_id} modelarts:trainJob:get - √ √ 查询训练作业列表 POST /v2/{project_id}/training-job-searches modelarts:trainJob:list - √ √ 训练作业日志预览 GET /v2/{project_id}/training-jobs/{training_job_id}/tasks/{task_id}/logs/preview modelarts:trainJob:previewLog - √ √ 训练作业日志下载 GET /v2/{project_id}/training-jobs/{training_job_id}/tasks/{task_id}/logs/url modelarts:trainJob:logExport - √ √ 创建算法 POST /v2/{project_id}/algorithms modelarts:aiAlgorithm:create - √ √ 更新算法 PUT /v2/{project_id}/algorithms/{algorithm_id} modelarts:aiAlgorithm:update - √ √ 删除算法 DELETE /v2/{project_id}/algorithms/{algorithm_id} modelarts:aiAlgorithm:delete - √ √ 查询算法列表 GET /v2/{project_id}/algorithms modelarts:aiAlgorithm:get - √ √ 查询算法详情 GET /v2/{project_id}/algorithms/{algorithm_id} modelarts:aiAlgorithm:get - √ √ 父主题: 权限策略和授权项
  • 响应示例 状态码: 200 OK { "create_at" : 1638841805440, "description" : "update", "feature" : "DEFAULT", "flavor" : "modelarts.vm.cpu.free", "id" : "f9937afa-ca78-45b6-bc12-7ecf42553c48", "image" : { "description" : "description", "id" : "e1a07296-22a8-4f05-8bc8-e936c8e54090", "name" : "notebook2.0-mul-kernel-cpu-cp36", "swr_path" : "swr.xxxxx.com/atelier/notebook2.0-mul-kernel-cpu-cp36:3.3.2-release_v1", "tag" : "3.3.2-release_v1", "type" : "BUILD_IN" }, "lease" : { "create_at" : 1638841805439, "duration" : 3600000, "enable" : true, "update_at" : 1638841805439 }, "name" : "notebook_5ee4bf0e", "status" : "DELETING", "token" : "58ba50c6-e8ff-245c-4840-49e51aa70737", "update_at" : 1638842504178, "workspace_id" : "0" }
  • 请求示例 团队标注审核。设置是否通过为“true”,评审分数为“A”。 { "comments" : [ { "worker_id" : "8c15ad080d3eabad14037b4eb00d6a6f", "sample_id" : "0d43f9811d3808a3146c673257d4a1dbhh", "accept" : true, "comment" : "", "score" : "A" } ] }
  • URI POST /v2/{project_id}/datasets/{dataset_id}/workforce-tasks/{workforce_task_id}/data-annotations/review 表1 路径参数 参数 是否必选 参数类型 描述 dataset_id 是 String 数据集ID。 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 workforce_task_id 是 String 标注任务ID。
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 results Array of BatchResponse objects 批量更新样本标签的响应结果列表。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败 表8 BatchResponse 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败
  • 请求示例 批量更新样本标签 { "samples" : [ { "sample_id" : "8b583c44bf249f8ba43ea42c92920221", "labels" : [ { "name" : "yunbao" } ] }, { "sample_id" : "b5fe3039879660a2e6bf18166e247f68", "labels" : [ { "name" : "yunbao" } ] } ] }
  • URI GET /v2/{project_id}/training-jobs/{training_job_id}/tasks/{task_id}/logs/url 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 training_job_id 是 String 训练作业ID。 task_id 是 String 训练作业的任务名称。可从训练作业详情中的 status.tasks 字段中获取。
  • 请求示例 如下以查询uuid为2cd88daa-31a4-40a8-a58f-d186b0e93e4f的训练作业对应work-0日志OBS临时链接为例。 GET https://endpoint/v2/{project_id}/training-jobs/2cd88daa-31a4-40a8-a58f-d186b0e93e4f/tasks/worker-0/logs/url?Content-Type=text/plain
  • 响应示例 状态码: 200 ok { "obs_url" : "http://10.155.101.248:20000/cnnorth4-test/xk/00chess_test/test11/logs/modelarts-job-0f2ccdbb-4f34-4d53-afb9-d526f3be8c68-ma-platform-init-worker-0-172.16.24.51-01909681.log?AWSAccessKeyId=xxxxx" }
  • 响应示例 状态码: 200 OK。 { "kind" : "ResourceFlavorList", "apiVersion" : "v1", "metadata" : { }, "items" : [ { "kind" : "ResourceFlavor", "apiVersion" : "v1", "metadata" : { "name" : "modelarts.vm.cpu8u32g", "labels" : { } }, "spec" : { "cpuArch" : "x86", "cpu" : "8", "memory" : "32Gi", "type" : "Dedicate", "billingCode" : "modelarts.vm.cpu.8ud", "billingModes" : [ 0 ] }, "status" : { "phase" : { "cn-north-7a" : "soldout", "cn-north-7b" : "soldout", "cn-north-7c" : "normal" } } } ] } 状态码: 401 Authorization failed. { "error_code" : "ModelArts.50001000", "error_msg" : "token is invalid" } 状态码: 404 Not found. { "error_code" : "ModelArts.50005101", "error_msg" : "Resourceflavor not found." }
  • URI GET /v1/{project_id}/resourceflavors 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 continue 否 String 分页查询时上一页位置。 labelSelector 否 String 标签筛选。 limit 否 Integer 分页数目。
  • URI GET /v1/{project_id}/training-jobs/{job_id}/versions/{version_id} 参数说明如表1所示。 表1 参数说明 参数 是否必选 参数类型 说明 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 job_id 是 Long 训练作业的ID。 version_id 是 Long 训练作业的版本ID。
  • 响应示例 成功响应示例 { "is_success": true, "job_id": 10, "job_name": "TestModelArtsJob", "job_desc": "TestModelArtsJob desc", "version_id": 10, "version_name": "jobVersion", "pre_version_id": 5, "engine_type": 1, "engine_name": "TensorFlow", "engine_id": 1, "engine_version": "TF-1.4.0-python2.7", "status": 10, "app_url": "/usr/app/", "boot_file_url": "/usr/app/boot.py", "create_time": 1524189990635, "parameter": [ { "label": "learning_rate", "value": 0.01 } ], "duration": 532003, "spec_id": 1, "core": 2, "cpu": 8, "gpu_num": 2, "gpu_type": "P100", "worker_server_num": 1, "data_url": "/usr/data/", "train_url": "/usr/train/", "log_url": "/usr/log/", "dataset_version_id": "2ff0d6ba-c480-45ae-be41-09a8369bfc90", "dataset_id": "38277e62-9e59-48f4-8d89-c8cf41622c24", "data_source": [ { "type": "obs", "data_url": "/qianjiajun-test/minst/data/" } ], "user_image_url": "100.125.5.235:20202/jobmng/custom-cpu-base:1.0", "user_command": "bash -x /home/work/run_train.sh python /home/work/user-job-dir/app/mnist/mnist_softmax.py --data_url /home/work/user-job-dir/app/mnist_data", "model_id": 1, "model_metric_list": "{\"metric\":[{\"metric_values\":{\"recall\":0.005833,\"precision\":0.000178,\"accuracy\":0.000937},\"reserved_data\":{},\"metric_meta\":{\"class_name\":0,\"class_id\":0}}],\"total_metric\":{\"total_metric_meta\":{},\"total_reserved_data\":{},\"total_metric_values\":{\"recall\":0.005833,\"id\":0,\"precision\":0.000178,\"accuracy\":0.000937}}}", "system_metric_list": { "cpuUsage": [ "0", "3.10", "5.76", "0", "0", "0", "0" ], "memUsage": [ "0", "0.77", "2.09", "0", "0", "0", "0" ], "gpuUtil": [ "0", "0.25", "0.88", "0", "0", "0", "0" ] }, "dataset_name": "dataset-test", "dataset_version_name": "dataset-version-test", "spec_code": "modelarts.vm.gpu.p100", "start_time": 1563172362000, "volumes": [ { "nfs": { "id": "43b37236-9afa-4855-8174-32254b9562e7", "src_path": "192.168.8.150:/", "dest_path": "/home/work/nas", "read_only": false } }, { "host_path": { "src_path": "/root/work", "dest_path": "/home/mind", "read_only": false } } ], "pool_id": "pool9928813f", "pool_name": "p100", "nas_mount_path": "/home/work/nas", "nas_share_addr": "192.168.8.150:/", "nas_type": "nfs" } 失败响应示例 { "is_success": false, "error_message": "Error string", "error_code": "ModelArts.0105" }
  • URI GET /v1/{project_id}/notebooks/{instance_id}/storage/{storage_id} 表1 路径参数 参数 是否必选 参数类型 描述 instance_id 是 String Notebook实例ID。 project_id 是 String 用户项目ID,获取方法请参见获取项目ID和名称。 storage_id 是 String OBS存储ID。
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 category String 存储类型。可选值为OBS。 id String 动态挂载实例ID。 mount_path String 在Notebook实例中挂载的路径。 status String 动态挂载OBS状态。枚举值如下: MOUNTING:挂载中 MOUNT_FAILED:挂载失败 MOUNTED:已挂载 UNMOUNTING:卸载中 UNMOUNT_FAILED:卸载失败 UNMOUNTED:卸载完成 uri String OBS对象路径。
  • 响应示例 成功响应示例 { "duration": 33000, "service_url": "https://console.huaweicloud.com/modelarts2/tensorboard/04f679b17380d32a2f32c00335c4b5ba/197/", "job_name": "apiTest-11", "create_time": 1565149736000, "train_url": "/wph-test/zl-test/Flowers-Set/ApiTest/", "job_id": 197, "job_desc": "ModelArts API Dialtest", "resource_id": "e17dd874-b5e0-4e9b-aaf0-22b045ad8571", "status": 7 } 失败响应示例 { "error_message": "The length of search content should be in [0,100]", "error_code": "ModelArts.0104" }
  • 响应消息 响应参数如表2所示。 表2 响应参数 参数 参数类型 说明 error_message String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 job_name String 可视化作业的名称。 service_url String 可视化作业的endpoint。 resource_id String 可视化作业的计费资源ID。 job_id Long 可视化作业的ID。 job_desc String 可视化作业的具体描述。 duration Long 可视化作业的运行时长,单位为毫秒。 create_time Long 可视化作业的创建时间,时间戳格式。 train_url String 可视化作业输出文件OBS路径。 status Int 可视化作业的运行状态,详细作业状态列表请参见作业状态参考。
  • 响应示例 状态码: 200 OK { "current" : 2, "data" : [ { "arch" : "x86_64", "billing" : { "code" : "modelarts.bm.gpu.v100NV32", "unit_num" : 4 }, "category" : "GPU", "description" : "Four NVIDIA V100 GPUs, each with 32GB of memory, ideal for deep learning algorithm training and debugging.", "feature" : "NOTEBOOK", "free" : false, "gpu" : { "gpu" : 4, "gpu_memory" : "128", "type" : "nvidia-v100-pcie32" }, "id" : "modelarts.bm.gpu.4v100NV32.nosdi", "memory" : 134217728, "name" : "GPU: 4*V100(128GB)|CPU: 32vCPUs 256GB", "sold_out" : true, "storages" : [ "EFS", "OBSFS", "OBS", "EVS" ], "vcpus" : 32 }, { "arch" : "x86_64", "billing" : { "code" : "modelarts.bm.gpu.v100NV32.eco", "unit_num" : 2 }, "category" : "GPU", "description" : "Two Shared NVIDIA V100 GPU with 64GB of memory, ideal for ML development", "feature" : "NOTEBOOK", "free" : false, "gpu" : { "gpu" : 0.5, "gpu_memory" : "64", "type" : "nvidia-v100-nv32" }, "id" : "modelarts.bm.gpu.2v100NV32.share", "memory" : 67108864, "name" : "vGPU: 2*V100(32GB)|CPU: 8vCPUs 64GB", "sold_out" : false, "storages" : [ "EFS", "OBSFS", "OBS", "EVS" ], "vcpus" : 8 } ], "pages" : 26, "size" : 2, "total" : 52 }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 current Integer 当前页数。 data Array of NotebookFlavor objects 分页数据。 flavors Array of NotebookFlavor objects 支持切换的规格列表。 pages Integer 总的页数。 size Integer 每一页的数量。 total Long 总的记录数量。 表4 NotebookFlavor 参数 参数类型 描述 arch String 架构类型: X86_64 AARCH64 ascend AscendInfo object NPU信息。 billing BillingInfo object 话单信息。 category String 规格处理器类型。 CPU GPU ASCEND description String 规格描述信息。 feature String 规格类别,可选值如下: DEFAULT:CodeLab规格。 NOTEBOOK:Notebook规格。 free Boolean 是否为免费规格。 gpu GPUInfo object GPU信息。 id String 规格ID。 memory Long 内存大小。 name String 规格名称。 sold_out Boolean 资源是否充足。 true 资源不足 false 资源充足 storages Array of strings 规格支持的存储类型。 EFS EVS vcpus Integer CPU核数。 表5 AscendInfo 参数 参数类型 描述 npu Integer NPU数量 npu_memory String NPU内存 type String NPU类型 表6 BillingInfo 参数 参数类型 描述 code String 计费码 unit_num Integer 计费单元 表7 GPUInfo 参数 参数类型 描述 gpu Integer GPU卡数 gpu_memory String GPU内存 type String GPU类型
  • URI GET /v1/{project_id}/notebooks/flavors 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID,获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 category 否 String 规格处理器类型。 CPU GPU ASCEND limit 否 Integer 每一页的数量,默认不限制。 offset 否 Integer 分页记录的起始位置偏移量,默认值0。 type 否 String 集群类型。 MANAGED:公共集群 DEDICATED:专属集群 sort_dir 否 String 排序方式,ASC升序,DESC降序,默认DESC。 sort_key 否 String 排序的字段,多个字段使用(“,”)逗号分割。
  • URI GET /v2/{project_id}/training-jobs/{training_job_id}/metrics/{task_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 training_job_id 是 String 训练作业ID。 task_id 是 String 训练作业的任务名称。可从训练作业详情中的 status.tasks 字段中获取。
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 metrics Array of metrics objects 运行指标。 表3 metrics 参数 参数类型 描述 metric String 运行指标,可选值如下: cpuUsage:CPU使用率 memUsage:物理内存使用率 gpuUtil:GPU使用率 gpuMemUsage:显存使用率 npuUtil:NPU使用率 npuMemUsage:NPU显存使用率 value Array of doubles 运行指标对应数值,1min统计一个平均值。
  • 响应示例 状态码: 200 ok { "metrics" : [ { "metric" : "cpuUsage", "value" : [ -1, -1, 2.43, 4.524, 6.714, 12.422, 9.214, 5.36, 7.5, 10.088, 8.975, 11.423, 11.548, 14.563, 16.833 ] }, { "metric" : "memUsage", "value" : [ -1, -1, 0.04, 0.521, 1.652, 4.252, 6.433, 7.384, 7.982, 8.718, 9.365, 9.881, 10.192, 9.994, 9.005 ] }, { "metric" : "gpuUtil", "value" : [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ] }, { "metric" : "gpuMemUsage", "value" : [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ] }, { "metric" : "npuUtil", "value" : [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ] }, { "metric" : "npuMemUsage", "value" : [ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ] } ] }
  • 响应参数 状态码: 200 表11 响应Body参数 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 results Array of UploadSampleResp objects 批量添加样本的响应列表。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败 表12 UploadSampleResp 参数 参数类型 描述 error_code String 操作失败的错误码。 error_msg String 操作失败的错误信息。 info String 描述信息。 name String 样本文件名。 success Boolean 操作是否执行成功。可选值如下: true:执行成功 false:执行失败
  • 请求示例 批量添加样本 { "samples" : [ { "name" : "2.jpg", "data" : "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAA1AJUDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL" } ] }
共100000条