华为云用户手册

  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-ModelArts-User-ID 否 String 实际的外部租户ID,如果有的话,工作空间鉴权以该ID为准。 表3 请求Body参数 参数 是否必选 参数类型 描述 apiVersion 是 String API版本。可选值如下: v2 kind 是 String 资源类型。可选值如下: Pool:资源池 metadata 是 PoolMetadataCreation object 资源池的metadata信息。 spec 否 PoolSpecCreation object 资源池的描述信息。 表4 PoolMetadataCreation 参数 是否必选 参数类型 描述 labels 是 PoolLabelsCreation object 资源池的标签信息。 annotations 否 PoolAnnotationsCreation object 资源池的注释信息。 表5 PoolLabelsCreation 参数 是否必选 参数类型 描述 os.modelarts/workspace.id 否 String 工作空间ID,默认值0。 os.modelarts/name 是 String 用户指定的pool名称。 表6 PoolAnnotationsCreation 参数 是否必选 参数类型 描述 os.modelarts/description 否 String 资源池的描述信息。 os.modelarts/billing.mode 否 String 计费模式,可选值如下: 0:按需计费 1:包周期计费 os.modelarts/period.num 否 String 包周期订购周期,比如2。当计费模式为包周期时该参数必传。 os.modelarts/period.type 否 String 包周期订购类型。可选值如下: 2:月 3:年 当计费模式为包周期时该参数必传。 os.modelarts/auto.renew 否 String 是否自动续费。可选值如下: 0:不自动续费,默认值 os.modelarts/promotion.info 否 String 用户在cbc选择的折扣信息。 os.modelarts/service.console.url 否 String 订购订单支付完成后跳转的url地址。 os.modelarts/order.id 否 String 订单id,包周期资源池创建或者计费模式变更的时候该参数必需。 表7 PoolSpecCreation 参数 是否必选 参数类型 描述 type 是 String 资源池类型。可选值如下: Dedicate:物理资源池,独立的网络,支持网络打通,定制驱动,定制作业类型。 scope 是 Array of strings 资源池支持的作业类型。至少选择一种,物理资源池支持全部选择。可选值如下: Train:训练作业 Infer:推理作业 Notebook:Notebook作业 resources 是 Array of PoolResourceFlavor objects 资源池中的资源规格信列表,包括资源规格和相应规格的资源数量。 network 是 network object 资源池网络参数。物理资源池时必选。 jobFlavors 否 Array of strings 资源池支持的作业规格信息列表,内容为作业规格名称。 driver 否 PoolDriver object 资源池的驱动信息。 表8 PoolResourceFlavor 参数 是否必选 参数类型 描述 flavor 是 String 资源规格,比如:modelarts.vm.gpu.tnt004。 count 是 Integer 相应规格资源数量。 表9 network 参数 是否必选 参数类型 描述 name 是 String 网络名称,即网络详情中的metadata.name字段的值。用户接口通过指定网络名称创建网络,系统会自动创建子网,用户无法创建子网。默认将创建在第一个子网下。 表10 PoolDriver 参数 是否必选 参数类型 描述 gpuVersion 否 String GPU驱动版本,物理资源池中含有GPU规格时可填,例如:"440.33"。 npuVersion 否 String NPU驱动版本,物理资源池中含有ascend规格时可填,例如:"C78"。 updateStrategy 否 String 驱动升级策略。可选值如下: force:强制升级,立即升级节点驱动,可能影响节点上正在运行的作业 idle:安全升级,待节点上没有作业运行时进行驱动升级
  • 响应示例 状态码: 200 OK。 { "kind" : "PoolList", "apiVersion" : "v2", "items" : [ { "kind" : "Pool", "apiVersion" : "v2", "metadata" : { "name" : "auto-pool-os-86c13962597848eeb29c5861153a391f", "creationTimestamp" : "2022-09-16T03:10:40Z", "labels" : { "os.modelarts/name" : "auto-pool-os", "os.modelarts/workspace.id" : "0", "os.modelarts/resource.id" : "maos-auto-pool-os-72w8d" }, "annotations" : { "os.modelarts/description" : "", "os.modelarts/billing.mode" : "0" } }, "spec" : { "type" : "Dedicate", "scope" : [ "Train", "Infer" ], "resources" : [ { "flavor" : "modelarts.vm.cpu.4ud", "count" : 2 } ], "network" : { "name" : "network-maos-86c13962597848eeb29c5861153a391f" } }, "status" : { "phase" : "Running", "root" : "auto-pool-os-86c13962597848eeb29c5861153a391f", "scope" : [ { "scopeType" : "Train", "state" : "Enabled" }, { "scopeType" : "Infer", "state" : "Enabled" } ], "resources" : { "available" : [ { "flavor" : "modelarts.vm.cpu.4ud", "count" : 2, "azs" : [ { "az" : "cn-north-7c", "count" : 2 } ] } ] } } } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 apiVersion String API版本。可选值如下: v2 kind String 资源类型。可选值如下: PoolList:资源池列表 items Array of PoolModel objects 资源池列表。 表4 PoolModel 参数 参数类型 描述 apiVersion String API版本。可选值如下: v2 kind String 资源类型。可选值如下: Pool:资源池 metadata PoolMetadata object 资源池的metadata信息。 spec PoolSpecModel object 资源池的期望信息。 status PoolStatus object 资源池的状态信息。 表5 PoolMetadata 参数 参数类型 描述 name String 系统自动生成的pool名称,相当于pool ID。 creationTimestamp String 时间戳,例如"2021-11-01T03:49:41Z"。 labels PoolMetaLabels object 资源池的标签信息。 annotations PoolMetaAnnotations object 资源池的注释信息。 表6 PoolMetaLabels 参数 参数类型 描述 os.modelarts/workspace.id String 工作空间id。 os.modelarts/name String 用户指定的pool名称。 os.modelarts/resource.id String 资源池的主资源id,通常提供给cbc使用。 os.modelarts/tenant.domain.id String 资源池的租户id,记录资源池创建在哪个租户账号下。 表7 PoolMetaAnnotations 参数 参数类型 描述 os.modelarts/description String 资源池的描述信息。 os.modelarts/billing.mode String 计费模式。可选值如下: 0:按需计费 1:包周期计费 os.modelarts/period.num String 包周期订购周期,比如2。 os.modelarts/period.type String 包周期订购类型。可选值如下: 2:月 3:年 4:小时 os.modelarts/auto.renew String 是否自动续费.可选值如下: 0:不自动续费,默认值 1:自动续费 os.modelarts/promotion.info String 用户在cbc选择的折扣信息。 os.modelarts/service.console.url String 订购订单支付完成后跳转的url地址。 os.modelarts/order.id String 订单id,包周期资源池创建或者计费模式变更的时候该参数必需。 os.modelarts/flavor.resource.ids String 每种规格对应的resourceId,主要和cbc交互使用。 os.modelarts/tms.tags String 创建的时候由用户指定的TMS标签。 表8 PoolSpecModel 参数 参数类型 描述 type String 资源池类型。可选值如下: Dedicate:物理资源池,独立的网络,支持网络打通,定制驱动,定制作业类型。 scope Array of strings 资源池支持的作业类型。至少选择一种,物理资源池支持全部选择。可选值如下: Train:训练作业 Infer:推理作业 Notebook:Notebook作业 resources Array of resources objects 资源池中的资源规格信列表,包括资源规格和相应规格的资源数量。 network network object 资源池网络参数。物理资源池时必选。 jobFlavors Array of strings 资源池支持的作业规格信息列表,内容为作业规格名称。 driver PoolDriver object 资源池的驱动信息。 controlMode Integer 资源池的受限状态。可选值如下: 0:代表不受限 1:转包周期受限 2:规格变更受限 4:服务受限 8:冻结 16:公安冻结(不可退订) 另外状态是可以叠加的,比如9代表转包周期受限+冻结状态。 表9 resources 参数 参数类型 描述 flavor String 资源规格,比如:modelarts.vm.gpu.tnt004。 count Integer 相应规格资源数量。 azs Array of PoolNodeAz objects az列表信息。 表10 PoolNodeAz 参数 参数类型 描述 az String az名称。 count Integer 指定az扩容时,指定az的节点数。 表11 network 参数 参数类型 描述 name String 网络名称;用户接口通过指定网络名称创建网络,系统会自动创建子网,用户无法创建子网。默认将创建在第一个子网下。 表12 PoolDriver 参数 参数类型 描述 gpuVersion String GPU驱动版本,物理资源池中含有GPU规格时可填,例如:"440.33"。 npuVersion String NPU驱动版本,物理资源池中含有ascend规格时可填,例如:"C78"。 updateStrategy String 驱动升级策略。可选值如下: force:强制升级,立即升级节点驱动,可能影响节点上正在运行的作业 idle:安全升级,待节点上没有作业运行时进行驱动升级 表13 PoolStatus 参数 参数类型 描述 phase String 资源池集群状态。可选值如下: Creating:创建中 Running:运行中 Abnormal:资源池不正常 Deleting:删除中 Error:资源池错误 message String 资源池处于当前状态的提示信息。 resources resources object 资源池中不同状态的资源量。 scope Array of scope objects 资源池业务状态信息。 driver driver object 资源池驱动信息。 parent String 资源池父节点名称,物理池为空。 root String 资源池根节点名称,物理池为自己的名称。 表14 resources 参数 参数类型 描述 creating PoolResourceFlavorCount object 状态为创建中状态的资源量。 available PoolResourceFlavorCount object 状态为可用状态的资源量。 abnormal PoolResourceFlavorCount object 状态为非正常状态的资源量。 deleting PoolResourceFlavorCount object 状态为删除中状态的资源量。 表15 PoolResourceFlavorCount 参数 参数类型 描述 flavor String 资源规格名称,比如:modelarts.vm.gpu.tnt004。 count Integer 规格保障使用量。 maxCount Integer 资源规格的弹性使用量,物理池该值和count相同。 azs Array of azs objects 资源所在的AZ的数量。 表16 azs 参数 参数类型 描述 az String AZ的名称。 count Integer AZ的资源数量。 表17 scope 参数 参数类型 描述 scopeType String 业务类型。可选值如下: Train:训练任务 Infer:推理任务 Notebook:Notebook作业 state String 业务状态。可选值如下: Enabling:启动中 Enabled:已启动 Disabling:关闭中 Disabled:已关闭 表18 driver 参数 参数类型 描述 gpu PoolDriverStatus object GPU驱动信息。 npu PoolDriverStatus object NPU驱动信息。 表19 PoolDriverStatus 参数 参数类型 描述 version String 当前驱动版本。 state String 当前驱动状态。可选值如下: Creating:创建中 Upgrading:升级中 Running:运行中 Abnormal:不正常
  • URI GET /v2/{project_id}/pools 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 workspaceId 否 String 工作空间ID,默认值为0。 labelSelector 否 String 标签筛选。 status 否 String 资源池状态。可选值如下: created: 成功创建的资源池 failed:创建失败的资源池,创建失败的资源池记录保留3天 creating:创建中的资源池 为空则返回当前有效的资源池,包括创建中和创建成功的资源池。
  • 响应参数 状态码: 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类型。
  • 响应示例 状态码: 200 OK { "current" : 1, "data" : [ { "arch" : "x86_64", "billing" : { "code" : "modelarts.vm.cpu.2u", "unit_num" : 1 }, "category" : "CPU", "description" : "Intel CPU通用规格,用于快速数据探索和实验", "feature" : "NOTEBOOK", "free" : false, "id" : "modelarts.vm.cpu.2u", "memory" : 8388608, "name" : "CPU: 2核 8GB", "sold_out" : false, "storages" : [ "EVS", "OBSFS", "EFS", "OBS" ], "vcpus" : 2 } ], "pages" : 1, "size" : 1, "total" : 1 }
  • 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 排序的字段,多个字段使用(“,”)逗号分割。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式一:根据指定的job_id查询。 from modelarts.session import Session from modelarts.estimatorV2 import Estimator session = Session() estimator = Estimator(session=session, job_id="618222c4-dc2f-4cfe-bc49-72b075b7552f") job_info = estimator.get_job_info() print(job_info) 方式二:根据创建训练作业生成的训练作业对象查询。 job_info = job_instance.get_job_info() print(job_info)
  • 参数说明 表1 Estimator请求参数说明 参数 是否必选 参数类型 描述 session 是 Object 会话对象,初始化方法请参考Session鉴权。 job_id 是 String 训练作业的id,可通过创建训练作业生成的训练作业对象查询,如"job_instance.job_id",或从查询训练作业列表的响应中获得。 表2 get_job_info返回参数说明 参数 参数类型 描述 kind String 训练作业类型。默认使用job。 枚举值: job:训练作业 hetero_job:异构作业 autosearch_job:自动搜索作业 mrs_job:mrs作业 edge_job:边缘作业 metadata JobMetadata object 训练作业元信息。 status Status object 训练作业状态信息。创建作业无需填写。 algorithm JobAlgorithmResponse object 训练作业算法。目前支持三种形式: id只取算法的id; subscription_id+item_version_id取算法的订阅id和版本id; code_dir+boot_file取训练作业的代码目录和启动文件。 tasks Array of TaskResponse objects 异构训练作业的任务列表。 spec spec object 训练作业规格参数。
  • 示例代码 通过Manifest路径来解析获取Manifest的信息。 from modelarts.session import Session from modelarts.dataset.format.manifest import Manifest path = "obs://your-obs-bucket/manifest/V001.manifest" session = Session() manifest_info= Manifest.parse_manifest(path,session=session)
  • 文档导读 本文档指导您如何安装和配置开发环境、如何通过调用ModelArts SDK提供的接口函数进行二次开发。 章节 内容 SDK简介 简要介绍ModelArts SDK的概念。 快速开始 介绍如何使用ModelArts SDK进行二次开发。 (可选)本地安装ModelArts SDK 介绍如何在本地安装ModelArts SDK。 (可选)Session鉴权 Session模块的主要作用是实现与公有云资源的鉴权,并初始化ModelArts SDK Client、OBS Client。 OBS管理概述 ModelArts SDK支持对OBS的SDK接口进行调用,包括创建OBS桶,上传/下载文件和文件夹,删除OBS对象和桶。 ModelArts SDK具体操作管理请参见如下章节: 数据管理 训练管理 模型管理 服务管理 介绍使用ModelArts SDK进行的常用操作。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式1:已部署为在线服务predictor的初始化 1 2 3 4 5 from modelarts.session import Session from modelarts.model import Predictor session = Session() predictor_instance = Predictor(session, service_id="your_service_id") 方式2:部署在线服务predictor 部署服务到公共资源池 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 from modelarts.session import Session from modelarts.model import Model from modelarts.config.model_config import ServiceConfig, TransformerConfig, Schedule session = Session() model_instance = Model(session, model_id='your_model_id') vpc_id = None # (可选)在线服务实例部署的虚拟私有云ID,默认为空 subnet_network_id = None # (可选)子网的网络ID,默认为空 security_group_id = None # (可选)安全组,默认为空 configs = [ServiceConfig(model_id=model_instance.model_id, weight="100", instance_count=1, specification="modelarts.vm.cpu.2u")] # 参考表3中specification字段 predictor_instance = model_instance.deploy_predictor( service_name="service_predictor_name", infer_type="real-time", vpc_id=vpc_id, subnet_network_id=subnet_network_id, security_group_id=security_group_id, configs=configs, # predictor配置参数, 参考下文configs参数格式说明 schedule = [Schedule(op_type='stop', time_unit='HOURS', duration=1)] # (可选)设置在线服务运行时间 ) 参数“model_id”代表将部署成在线服务的模型。“model_id”可以通过查询模型列表或者ModelArts管理控制台获取。 部署服务到专属资源池 from modelarts.config.model_config import ServiceConfig configs = [ServiceConfig(model_id=model_instance.model_id, weight="100", instance_count=1, specification="modelarts.vm.cpu.2u")] predictor_instance = model_instance.deploy_predictor( service_name="your_service_name", infer_type="real-time", configs=configs, cluster_id="your dedicated pool id" ) configs参数格式说明:SDK提供了ServiceConfig类对其定义,configs为list,list中的元组对象是ServiceConfig。定义代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 configs = [] envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} service_config1 = ServiceConfig( model_id="model_id1", # model_id1和model_id2必须是同一个模型的不同版本对应的model_id weight="70", specification="modelarts.vm.cpu.2u", # 参考表3中specification字段 instance_count=2, envs=envs) # (可选)设置环境变量的值,如:envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} service_config2 = ServiceConfig( model_id='model_id2', weight="30", specification="modelarts.vm.cpu.2u", # 参考表3中specification字段 instance_count=2, envs=envs) # (可选)设置环境变量的值,如:envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} configs.append(service_config1) configs.append(service_config2) 方式3:部署批量服务transformer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from modelarts.session import Session from modelarts.model import Model from modelarts.config.model_config import TransformerConfig session = Session() model_instance = Model(session, model_id='your_model_id') vpc_id = None # (可选)批量服务实例部署的虚拟私有云ID,默认为空 subnet_network_id = None # (可选)子网的网络ID,默认为空 security_group_id = None # (可选)安全组,默认为空 transformer = model_instance.deploy_transformer( service_name="service_transformer_name", infer_type="batch", vpc_id=vpc_id, subnet_network_id=subnet_network_id, security_group_id=security_group_id, configs=configs # transformer配置参数, 参考下文configs参数格式说明 ) configs参数格式说明:SDK提供了TransformerConfig类对其定义,configs都是list,list中的元组对象是TransformerConfig。定义代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 configs = [] mapping_rule = None # (可选)输入参数与csv数据的映射关系 mapping_type= "file" # file或者csv envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} transformer_config1 = TransformerConfig( model_id="model_id", specification="modelarts.vm.cpu.2u", # 参考表3中specification字段 instance_count=2, src_path="/shp-cn4/sdk-demo/", # 批量任务输入数据的OBS路径,如:"/your_obs_bucket/src_path" dest_path="/shp-cn4/data-out/", # 批量任务输出结果的OBS路径,如:"/your_obs_bucket/dest_path" req_uri="/", mapping_type=mapping_type, mapping_rule=mapping_rule, envs=envs) # (可选)设置环境变量的值,如:envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} configs.append(transformer_config1)
  • 本地安装ModelArts SDK步骤 在本地安装ModelArts SDK,具体的配置步骤如下: 步骤一:下载ModelArts SDK 步骤二:配置运行环境 步骤三:安装ModelArts SDK ModelArts SDK支持安装在Windows和Linux操作系统中。 如果在Windows上安装ModelArts SDK时出现报错,可参见FAQ:Windows上安装ModelArts SDK报错处理报错。
  • 修订记录 发布日期 修订记录 2024-05-28 下线旧版训练管理相关内容。 2023-11-17 优化内容,(可选)Session鉴权。 2023-09-27 优化内容,SDK简介。 新增快速开始。 2023-02-23 新增使用SDK调测单机训练作业、使用SDK调测多机分布式训练作业。 2022-11-24 优化内容,SDK简介。 2022-11-01 新增文件传输(推荐)。 2022-10-28 优化内容,导入模型、部署在线服务。 2022-03-29 新增训练管理(推荐)的SDK参考: 训练管理 2021-11-18 优化内容,(可选)本地安装ModelArts SDK。 2021-08-30 新增Manifest管理的SDK参考: Manifest管理 2021-07-30 新增数据管理SDK参考: 数据管理 2021-01-15 新增SDK参考: 模型调试 2020-12-14 下线开发环境相关接口。 下线老版OBS管理的相关接口,建议使用新版的OBS管理接口。 针对config.json认证模式,即将下线,更改相应描述。 2020-04-10 新增: OBS管理:新增OBS相关操作指导功能。 2019-08-13 模型管理的dependency结构中不再支持conda安装器。更新如下接口: 导入模型 查询模型详情 2019-08-08 新增: 训练管理: 新增功能本地训练功能。 模型管理: 新增获取模型对象列表功能。 服务管理:新增部署本地服务和本地推理功能。 OBS管理: 新增获取OBS Client功能。 刷新: Session鉴权:优化Session鉴权内容。 2019-04-23 新增V1.1.1版本SDK,刷新SDK简介和(可选)本地安装ModelArts SDK内容,其他操作与V1.1.0一致。 2019-03-20 新增v1.1.0版本的SDK,主要包含Session鉴权、OBS操作、作业管理、模型管理、服务管理 。 2019-02-21 新增在线服务模型推理。 2018-11-21 优化和修改训练作业部分描述。 2018-11-06 第一次正式发布。
  • 示例代码 账号与用户的概念介绍,请参见IAM基本概念。获取您的账号、用户名等信息,请参见获取用户名、用户ID、项目名称、项目ID。 使用账号认证 “username”填写您的账号名。 1 2 from modelarts.session import Session session = Session(username='***', password='***', region_name='***', project_id='***') 如果您的华为云账号已经升级为华为账号,则账号认证方式将不可用,请创建一个IAM用户,使用IAM用户认证。 使用IAM用户认证 “account”填写您的账号名,“username”填写您的IAM用户名。 1 2 from modelarts.session import Session session = Session(account='***', username='***', password='***', region_name='***', project_id='***')
  • 用户名密码认证模式 本地安装完成ModelArts SDK后,可通过用户名密码认证模式进行Session鉴权。示例代码如下: 使用账号认证 “username”填写您的账号名。 1 2 3 4 5 6 7 from modelarts.session import Session # 认证用的password硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以password保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_PASSWORD。 __PASSWORD = os.environ["HUAWEICLOUD_SDK_PASSWORD"] # 如果进行了加密还需要进行解密操作 session = Session(username='***', password=__PASSWORD, region_name='***', project_id='***') 使用IAM用户认证 “account”填写您的账号名,“username”填写您的IAM用户名。 1 2 3 4 5 6 7 from modelarts.session import Session # 认证用的password硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以password保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_PASSWORD。 __PASSWORD = os.environ["HUAWEICLOUD_SDK_PASSWORD"] # 如果进行了加密还需要进行解密操作 session = Session(account='***', username='***', password=__PASSWORD, region_name='***', project_id='***') 账号与用户的概念介绍,请参见IAM基本概念。获取您的账号、用户名等信息,请参见获取用户名、用户ID、项目名称、项目ID。 如果您的华为云账号已经升级为华为账号,则账号认证方式将不可用,请创建一个IAM用户,使用IAM用户认证。
  • Session鉴权概述 Session模块的主要作用是实现与公有云资源的鉴权,并初始化ModelArts SDK Client、OBS Client。当成功建立Session后,您可以直接调用ModelArts的SDK接口。 ModelArts开发环境Notebook不需要Session鉴权,可以直接使用。示例代码如下: 1 2 from modelarts.session import Session session = Session() 本地PC使用ModelArts SDK时,需要进行Session鉴权。鉴权方式可参考如下认证方式,选择其中一种方式进行认证即可。 用户名密码认证模式: 支持OBS管理、数据管理、训练管理、模型管理、服务管理的鉴权。 用户AK-SK认证模式: 支持OBS管理、数据管理、训练管理、模型管理、服务管理的鉴权。
  • 服务管理概述 服务管理,包括将已创建成功的模型部署为在线服务或本地服务。可以实现在线预测、本地预测、服务详情查询、查看服务日志等功能。 这里的在线服务包括“predictor”和“transformer”两类,都包括下文描述的功能,本章节以“predictor”服务为例进行说明。 本章节的示例代码都是在ModelArts Notebook中实现的,如果在其它开发环境使用,需要进行Session鉴权,请参见Session鉴权。 父主题: 服务管理
  • 参数说明 表1 查询检索参数说明 参数 是否必选 参数类型 说明 model_name 否 String 模型名称,可支持模糊匹配。 model_version 否 String 模型版本。 model_status 否 String 模型状态,可根据模型的“publishing”、“published”、“failed”三种状态执行查询。 description 否 String 描述信息,可支持模糊匹配。 offset 否 Integer 指定要查询页的索引,默认为“0”。 limit 否 Integer 指定每一页返回的最大条目数,默认为“280”。 sort_by 否 String 指定排序字段,可选“create_at”、“model_version”、“model_size”,默认是可选“create_at”。 order 否 String 排序方式,可选“asc”或“desc”,代表递增排序及递减排序,默认是“desc”。 workspace_id 否 String 工作空间ID,默认为“0”。 表2 get_model_list打印参数说明 参数 参数类型 描述 total_count Integer 不分页的情况下,符合查询条件的总模型数量。 count Integer 模型数量。 models model结构数组 模型元数据信息。
  • 示例代码 在ModelArts Notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 场景1:查询当前用户所有模型 1 2 3 4 5 6 from modelarts.session import Session from modelarts.model import Model session = Session() model_list = Model.get_model_list(session) print(model_list) 场景2:按照检索条件查询当前用户模型 1 2 3 4 5 6 from modelarts.session import Session from modelarts.model import Model session = Session() model_list = Model.get_model_list(session, model_status="published", model_name="digit", order="desc") print(model_list)
  • 示例代码 在ModelArts Notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 from modelarts.session import Session from modelarts.estimatorV2 import Estimator session = Session() job_list = Estimator.get_job_list(session=session, offset=10, limit=5, sort_by="create_time", order="asc", filters=[{"key": "name", "operator": "like", "value": ["trainjob"]}]) print(job_list)
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数;其它平台的Session鉴权请参考Session鉴权。 方式1:根据部署在线服务生成的服务对象进行更新服务配置 1 2 3 4 5 6 7 8 9 10 from modelarts.session import Session from modelarts.model import Predictor from modelarts.config.model_config import ServiceConfig session = Session() predictor_instance = Predictor(session, service_id="your_service_id") configs = [ServiceConfig(weight="100", instance_count=1, specification="modelarts.vm.cpu.2u",model_id="your_model_id")] service_config = predictor_instance.update_service_config(description="description", status="running", configs=configs) 方式2:根据查询服务对象列表返回的服务对象进行更新服务配置 1 2 3 4 5 6 7 8 9 10 11 from modelarts.session import Session from modelarts.model import Predictor from modelarts.config.model_config import ServiceConfig session = Session() predictor_object_list = Predictor.get_service_object_list(session) predictor_instance = predictor_object_list[0] configs = [ServiceConfig(weight="100", instance_count=1, specification="modelarts.vm.cpu.2u",model_id="your_model_id")] predictor_config = predictor_instance.update_service_config(description="description", status="running", configs=configs)
  • 参数说明 表1 部署predictor参数说明 参数 是否必选 参数类型 描述 description 否 String 服务描述,不超过100个字符,不设置此参数时,表示不更新。 status 否 String 服务状态,可设置状态为running或stopped来启动、停止服务,不设置此参数则不修改状态。status不可跟configs同时修改,同时存在则只修改status。 configs 否 包括predictor configs结构和transformer configs 服务配置,不设置此参数时,表示不更新。关于configs如何生成,请参见部署在线服务。 更新服务配置时,存在以下约束: 参数status指定的目标状态不允许和当前服务状态相同。 当前服务状态是deploying(部署中)、stopping(停止中)、deleteing(删除中)时,不允许参数status设置成running(启动)或设置参数configs(服务配置)。 当前服务状态是waiting(排队中)时,不允许参数status设置成running(启动)。 当前服务状态是concerning(告警)时,不允许参数status设置成running(启动)。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 TensorFlow1.8本地推理示例代码 需要在环境中配置“tensorflow_model_server”,可调用SDK接口快速配置,请参考如下示例代码。 CPU环境,调用Model.configure_tf_infer_environ(device_type="CPU")完成配置,环境中只需配置运行一次。 GPU环境,调用Model.configure_tf_infer_environ(device_type="GPU")完成配置,环境中只需配置运行一次。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 from modelarts.session import Session from modelarts.model import Model from modelarts.config.model_config import ServiceConfig session = Session() # GPU环境推理配置 Model.configure_tf_infer_environ(device_type="GPU") # CPU环境推理配置 #Model.configure_tf_infer_environ(device_type="CPU") model_instance = Model( session, model_name="input_model_name", # 模型名称 model_version="1.0.0", # 模型版本 source_location=model_location, # 模型文件路径 model_type="MXNet", # 模型类型 model_algorithm="image_classification", # 模型算法 execution_code="OBS_PATH", input_params=input_params, # 参考input_params格式描述 output_params=output_params, # 参考output_params格式描述 dependencies=dependencies, # 参考dependencies格式描述 apis=apis) configs = [ServiceConfig(model_id=model_instance.get_model_id(), weight="100", instance_count=1, specification="local")] predictor_instance = model_instance.deploy_predictor(configs=configs) if predictor_instance is not None: predict_result = predictor_instance.predict(data="your_raw_data_or_data_path", data_type="your_data_type") # 本地推理预测,data支持raw data或者文件路径,data_type支持'json'、'files'或者'images' print(predict_result)
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式一:根据指定的job_id终止。 from modelarts.session import Session from modelarts.estimatorV2 import Estimator session = Session() info = Estimator.control_job_by_id(session=session, job_id="your job id") print(info) 方式二:根据创建训练作业生成的训练作业对象终止。 job_instance.control_job()
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 1 2 3 4 5 from modelarts.session import Session from modelarts.model import Model from modelarts.config.model_config import ServiceConfig, Params, Dependencies, Packages session = Session() 方式1:初始化已存在模型 1 model_instance = Model(session, model_id="your_model_id") 方式2:创建模型 基于预置镜像和OBS路径创建模型 1 2 3 4 5 6 7 8 9 10 11 12 13 model_location = "/your_obs_bucket/model_path" # 修改为真实的模型文件OBS路径 execution_code = "/your_obs_bucket/model_path/customize_service.py" runtime = "python3.7" model_instance = Model( session, model_name="input_model_name", # (可选)模型名称 model_version="1.0.0", # (可选)模型版本 source_location=model_location, # 模型文件所在的OBS路径,如:"/your_obs_bucket/model_path" model_type="PyTorch", # 模型类型 execution_code=execution_code, # (可选)存放执行脚本的OBS路径,如:"/your_obs_bucket/model_path/customize_service.py" runtime=runtime # (可选)支持的运行环境 ) dependencies会覆盖样例中config.json的相关内容,上述无需使用dependencies,dependencies格式样例可参考下方格式定义。 dependencies参数组的定义格式 SDK提供了Dependencies类对其定义,dependencies为list,list中的元组对象是Dependencies。 定义代码如下: 1 2 3 4 5 6 dependencies = [] dependency1 = Dependencies( installer="pip", # 安装方式,目前支持pip packages=packages # 依赖包集合, 定义格式参考下文关于packages的定义 ) dependencies.append(dependency1) package参数组的定义格式 SDK提供了Packages类对其定义,packages为list,list中的元组对象是Packages。 定义代码如下: 1 2 3 4 5 6 7 packages = [] package1 = Packages( package_name="package_name", # 包名 package_version="version", # 包版本号 restraint="EXACT" ) packages.append(package1) dependencies参数组的创建样例: dependencies = [] packages = [{ "package_name": "numpy", "package_version": "1.15.0", "restraint": "EXACT" }, { "package_name": "h5py", "package_version": "2.8.0", "restraint": "EXACT" }] dependency = Dependencies(installer="pip", packages=packages) dependencies.append(dependency) 基于自定义镜像创建模型 适用于推理服务的脚本已经内置在自定义镜像中,镜像启动时会自动拉起服务的场景。 from modelarts.session import Session from modelarts.model import Model session = Session() image_path = "custom_image_path" # 自定义镜像的swr路径 model_instance = Model( session, model_name="your_model_name", # 模型名称 model_version="0.1.0", # 模型版本 source_location="image_path", # 模型文件路径 model_type="Image" # 模型类型 )
  • 修订记录 发布日期 修订记录 2024-06-07 第二十一次正式发布。 新增:使用自定义安全组时,如何配置安全组规则? 2024-01-02 第二十次正式发布。 新增: Windows云桌面如何开启RDP? 2023-11-23 第十九次正式发布。 新增: 云桌面如何开启IPv6? 2023-09-11 第十八次正式发布。 新增: 云桌面最多支持创建多少个私有镜像? 如何开启/关闭云桌面的应急模式? 2023-08-23 第十七次正式发布。 新增: 购买云桌面后如何为企业项目迁入/迁出资源? 云桌面安装火绒杀毒管理员桌面转镜像失败如何处理? 2022-12-08 第十六次正式发布。 新增: 终端绑定问题 2022-11-11 第十五次正式发布。 修改: 优化云桌面支持使用私有镜像购买桌面吗?中镜像描述。 2022-11-03 第十四次正式发布。 新增: 云桌面如何进行备份恢复? 登录时提示受策略限制无法登录该如何处理? 2022-09-23 第十三次正式发布。 新增: 云桌面中可以登录淘宝网吗? 云桌面中可以访问手机淘宝吗? 修改: 修改云桌面支持哪种操作系统?中UOS操作系统版本。 2022-09-19 第十二次正式发布。 新增: 导入策略提示名称重复如何处理? 重建系统盘后Windows桌面的数据盘消失了怎么办? 2022-09-06 第十一次正式发布。 新增: 如何使终端用户可使用网络打印机? 云桌面管理控制台中提示“服务被锁定,请取消服务后重新开户”或“购买桌面、创建用户、创建策略、开通互联网”的按钮已置灰,无法使用怎么办? 云桌面中无法使用网络打印机怎么办? 2022-08-10 第十次正式发布。 修改: 优化云桌面屏幕无法适配怎么办?中PC显示器分辨率调节描述。 2022-08-08 第九次正式发布。 新增: 无法通过多因素验证怎么办? 2022-07-15 第八次正式发布。 新增: 如何通过其他云服务页面开通互联网? 2022-07-04 第七次正式发布。 新增: 云桌面无法访问互联网怎么办? 2022-07-01 第六次正式发布。 修改: 如何使终端用户可使用本地打印机?优化策略配置。 如何配置云桌面访问公网?优化参考链接。 如何配置云桌面访问企业内网?优化参考链接。 如何控制云桌面与本地存储设备之间的文件复制?优化操作描述。 云桌面无法连接外网怎么办?优化关闭代理描述。 云桌面中无法使用本地打印机怎么办?优化处理步骤。 无法在云桌面与本地存储设备之间复制文件怎么办?增加用户操作描述。 2022-04-29 第五次正式发布。 修改: 忘记帐户密码怎么办?优化操作描述。 2022-04-12 第四次正式发布。 新增: 如何启用AD服务器的LDAPS服务? 如何导出已启用LDAPS的AD服务器的根证书? 2022-03-30 第三次正式发布。 修改: 云桌面是如何计费的?优化套餐类型描述。 如下章节中增加Windows操作系统描述。 云桌面支持哪种操作系统? 云桌面是否支持个性化设置? 哪些软件禁止卸载? 哪些文件禁止删除? 哪些命令禁止执行? 2022-02-28 第二次正式发布。 新增: 如何扩容UOS磁盘容量至新增磁盘分区? 如何扩容UOS磁盘容量至已有磁盘分区? 2022-01-05 第一次正式发布。
  • 云桌面管理控制台中提示“服务被锁定,请取消服务后重新开户”或“购买桌面、创建用户、创建策略、开通互联网”的按钮已置灰,无法使用怎么办? 管理员开通服务后,在当前项目(无子项目)或者子项目中不存在桌面的天数已超过14天,系统自动锁定服务状态,从而导致“购买桌面、创建用户、创建策略、开通互联网”的按钮无法使用。管理员可根据提示取消服务后重新开户或在“租户配置”页面单击“重新激活”,激活服务状态后,即可使用“购买桌面、创建用户、创建策略、开通互联网”功能。 父主题: 管理员常见问题
  • 操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件列表”。 选择待操作组件,在“操作”列“更多”下拉框单击“编辑”。 参考下表重新设置组件信息。 参数 类别 说明 组件名称 - 新建组件的名称。 版本号 - 组件的版本号。 格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 实例规格 - 选择实例规格,例如:0.5core、1GiB;1core、1GiB;1core、2GiB;2core、4GiB等。 实例数量 - 实例数量默认为2,最少为1,最大值为99。 代码源 源码仓库 选择源码来源。本服务支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 将代码信息补充完整。 授权信息:从下拉框中选择对应的源码授权信息。如果您是首次使用该功能,在下拉框右侧单击“新建授权”,填写“授权名称”和选择“授权方式”,单击“确认”完成授权。单击“授权列表”可查看当前已创建的授权信息,选中列表前方复选框,可对已授权源码进行“重新授权”或“删除”。 用户名/组织:选择源码对应的用户名称或组织,用于当前项目的代码管理。 仓库名称:用于当前项目下各个模块代码的管理。 分支:选择对应的分支,用于开发对代码的管理。 语言/运行时:从下拉框中选择源码对应的语言格式。 自定义构建:构建命令可根据业务需要选择“使用默认命令或脚本”或“使用自定义命令”。 说明: 不同源码来源新建授权时授权方式不同,请按照实际情况进行选择。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法构建,如Java:mvn clean package。 使用自定义命令:根据所选语言自定义构建命令;或修改build.sh文件后选择使用默认命令或脚本。 Dockerfile:组件来源是“源码仓库”时,根据业务需要设置。支持“自定义”和“系统默认”。 说明: 仅当“运行时”选择java时,可选择“系统默认”。 Dockerfile地址:当“Dockerfile”选择“自定义”时可设置。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 Docker程序通过读取Dockerfile文件生成定制的镜像。 dockerfile地址只能包含字母、数字及.-_/且字符长度在1~255范围内的内容。 如果文件名为Dockerfile,允许只填写目录地址,但目录地址必须以/结尾。 制品文件名:当“Dockerfile”选择“系统默认”时可设置。 maven构建生成多个jar包时,选取指定的jar包运行,以".jar"结尾,支持模糊匹配,如:demo-1.0.jar,demo*.jar 镜像 用户可以通过“客户端上传镜像”和“页面上传镜像”两种方式上传镜像包。 在“我的镜像”、“开源镜像”或者“共享镜像”中选择已上传的镜像包部署。可通过镜像名称搜索镜像。 我的镜像:用户自定义上传的镜像包 开源镜像:容器镜像服务SWR中提供的开源镜像 共享镜像:不同账号之间共享的镜像包 (可选)用户还可以通过单击“代码源”右侧链接,前往容器镜像服务SWR控制台对镜像进行更多管理操作。 说明: 选择“页面上传镜像”时,单次仅支持添加1个镜像压缩包,文件大小(含解压后)不得超过2GB,支持tar、tar.gz格式,仅支持上传1.11.2及以上容器引擎客户端版本制作的镜像压缩包,制作过程详见制作镜像压缩包。 如需上传大于 2GB的文件,请使用“客户端上传镜像”。 软件包 选择软件包位置“CodeArts件发布库”或“OBS对象存储选择”。 从“CodeArts软件发布库”选择对应软件包时,需要提前将软件包上传至软件发布库,相关操作请参考上传软件包。 从“OBS对象存储选择”中选择对应软件包时,需要先将软件包上传至OBS对象存储桶内,具体操作请参考上传对象。 语言/运行时:从下拉框中选择软件包对应的语言格式。 构建方式:根据业务需要选择“系统默认”或“自定义Dockerfile”。 使用“系统默认”:根据语言/运行时使用默认Dockerfile构建。 使用“自定义Dockerfile”:根据所选语言自定义Dockerfile内容构建。 单击“完成编辑”。
  • 软件仓库概述 AppStage运维中心支持对软件包、部署包、镜像包、SQL包等进行集中管理,用于升级变更服务的虚拟机。软件仓库不同软件包的说明如表1所示。 同时支持将镜像仓SWR(SoftWare Repository for Container)进行统一管理,可以绑定使用镜像仓中的镜像用于服务的容器升级变更,具体操作请参见管理SWR。 如果使用houp的操作系统镜像发布文件,具体的发布信息可以在“发布管理”页面查看。 表1 包类型说明 包类型 说明 传包方式 使用方式 打包规范 软件包 应用软件包,可使用虚拟机部署和容器部署,一般用于虚拟机部署,包括软件包(虚拟机部署使用)、测试用例包、函数包(函数部署使用)。 使用开发中心推包/上传软件包 在IaC代码中定义需要使用的软件包,通过IaC变更完成应用部署。 软件包 部署包 用户部署虚拟机时使用的脚本包(playbook文件)。 运维中心发布/使用开发中心推包/上传部署包 使用部署包创建模板,根据模板创建虚拟机部署的变更任务,实现使用部署脚本完成软件的自动化部署。 部署包 镜像包 用户容器部署时使用的Docker的容器镜像包。 使用开发中心推包 在IaC代码中定义需要使用的镜像包,通过IaC变更完成容器化部署。 镜像包 SQL包 执行SQL变更的DDL、DML数据库脚本。 使用开发中心推包/上传SQL包 在WiseDBA中使用SQL包进行SQL变更,对数据库或数据库数据进行增删改查的操作。 SQL包 IaC 3.0包 描述IaC 3.0变更的执行过程及资源配置信息。 使用开发中心推包/上传IaC 3.0包 在变更环境时选择IaC包,完成资源配置及环境变更。 IaC 3.0包 Terraform包 描述Terraform引擎变更的执行过程及资源配置信息。 使用开发中心推包 在Terraform引擎的实例列表中使用代码包创建变更计划,完成资源配置及环境变更。 Terraform包 OS镜像包 操作系统镜像发布,普通用户一般不需要使用。 - - - 父主题: 软件仓库
共100000条