更新时间:2024-03-21 GMT+08:00

更新服务配置

更新当前服务对象配置。

示例代码

在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(启动)。
表2 predictor configs结构

参数

是否必选

参数类型

描述

model_id

String

模型ID。“model_id”可以通过查询模型列表或者ModelArts管理控制台获取。

weight

Integer

权重百分比,分配到此模型的流量权重,仅当infer_type为real-time时需要配置,多个权重相加必须等于100;当在一个在线服务中同时配置了多个模型版本且设置不同的流量权重比例时,持续地访问此服务的预测接口,ModelArts会按此权重比例将预测请求转发到对应的模型版本实例。

specification

String

资源规格,当前版本可选modelarts.vm.cpu.2u/modelarts.vm.gpu.p4(需申请)/modelarts.vm.ai1.a310(需申请),需申请权限才能使用的规格请在华为云创建工单,由ModelArts运维工程师添加权限。

instance_count

Integer

模型部署的实例数,当前限制最大实例数为5,如需使用更多的实例数,需提交工单申请。

envs

Map<String, String>

运行模型需要的环境变量键值对,可选填,默认为空。

表3 transformer configs结构

参数

是否必选

参数类型

描述

model_id

String

模型ID。“model_id”可以通过查询模型列表或者ModelArts管理控制台获取。

specification

String

资源规格,当前版本可选modelarts.vm.cpu.2u/modelarts.vm.gpu.p4。

instance_count

Integer

模型部署的实例数,当前限制最大实例数为5,如需使用更多的实例数,需提交工单申请。

envs

Map<String, String>

运行模型需要的环境变量键值对,可选填,默认为空。

src_path

String

批量任务输入数据的OBS路径。

dest_path

String

批量任务输出结果的OBS路径。

req_uri

String

批量任务中调用的推理接口,需要从模型的config.json文件中选取一个api路径用于此次推理

mapping_type

String

输入数据的映射类型,可选“file”“csv”

  • file指每个推理请求对应到输入数据目录下的一个文件,当使用此方式时,此模型对应req_uri只能有一个输入参数且此参数的类型是file。
  • csv指每个推理请求对应到csv里的一行数据,当使用此方式时,输入数据目录下的文件只能以.csv为后缀,且需配置mapping_rule参数,以表达推理请求体中各个参数对应到csv的索引。

mapping_rule

Map

输入参数与csv数据的映射关系,仅当mapping_type为csv时需要填写。映射规则与模型配置文件config.json中输入参数的定义方式相似,只需要在每一个基本类型(string/number/integer/boolean)的参数下配置index参数,指定使用csv数据中对应索引下标的数据作为此参数的值去发送推理请求,csv数据必须以英文半角逗号分隔,index从0开始计数,特殊地,当index为-1时忽略此参数。

表4 update_service_config返回参数说明

参数

是否必选

参数类型

描述

error_code

String

调用失败时,的错误码。

调用成功时,无此字段。

error_msg

String

调用失败时,错误信息。

调用成功时,无此字段。