更新时间:2024-12-10 GMT+08:00
分享

部署模型为在线服务

模型准备完成后,您可以将模型部署为在线服务,对在线服务进行预测和调用。

约束与限制

单个用户最多可创建20个在线服务。

前提条件

  • 数据已完成准备:已在ModelArts中创建状态“正常”可用的模型。
  • 由于在线运行需消耗资源,确保账户未欠费。
  • 部署服务操作需要镜像Owner拥有te_admin权限,否则部署服务过程中会报错: failed to set image shared, please check the agency permission。

操作步骤

  1. 登录ModelArts管理控制台,在左侧导航栏中选择“模型部署 > 在线服务”,默认进入“在线服务”列表。
  2. “在线服务”列表中,单击左上角“部署”,进入“部署”页面。
  3. “部署”页面,填写在线服务相关参数。
    1. 填写基本信息,详细参数说明请参见表1
      表1 基本信息参数说明

      参数名称

      说明

      “名称”

      在线服务的名称,请按照界面提示规则填写。

      “是否自动停止”

      启用该参数并设置时间后,服务将在指定时间后自动停止。如果不启用此参数,在线服务将一直运行,同时一直收费,自动停止功能可以帮您避免产生不必要的费用。默认开启自动停止功能,且默认值为“1小时”

      目前支持设置为“1小时”“2小时”“4小时”“6小时”“自定义”。如果选择“自定义”的模式,可在右侧输入框中输入1~24范围内的任意整数。

      “描述”

      在线服务的简要说明。

    2. 填写资源池和模型配置等关键信息,详情请参见表2
      表2 参数说明

      参数名称

      子参数

      说明

      “资源池”

      “公共资源池”

      公共资源池有CPU或GPU两种规格,不同规格的资源池,其收费标准不同,详情请参见价格详情说明。当前仅支持按需付费模式。

      “专属资源池”

      在专属资源池规格中选择对应的规格进行使用。暂不支持选择创建了逻辑子池的物理池。

      “选择模型及配置”

      模型来源”

      根据您的实际情况选择“自定义模型或者“订阅模型

      “选择模型及版本”

      选择状态“正常”的模型及版本。

      “分流”

      设置当前实例节点的流量占比,服务调用请求根据该比例分配到当前版本上。

      如您仅部署一个版本的模型,请设置为100%。如您添加多个版本进行灰度发布,多个版本分流之和设置为100%。

      实例规格”

      请根据界面显示的列表,选择可用的规格,置灰的规格表示当前环境无法使用。

      如果公共资源池下规格为空数据,表示当前环境无公共资源。建议使用专属资源池。

      说明:

      使用所选规格部署服务时,会产生必要的系统消耗,因此服务实际占用的资源会略大于该规格。

      实例数”

      设置当前版本模型的实例个数。如果实例数设置为1,表示后台的计算模式是单机模式;如果实例数设置大于1,表示后台的计算模式为分布式的。请根据实际编码情况选择计算模式。

      “环境变量”

      设置环境变量,注入环境变量到容器实例。为确保您的数据安全,在环境变量中,请勿输入敏感信息,如明文密码。

      “部署超时时间”

      用于设置单个模型实例的超时时间,包括部署和启动时间。默认值为20分钟,输入值必须在3到120之间。

      “添加模型版本进行灰度发布”

      当选择的模型有多个版本时,您可以添加多个模型版本,并配置其分流占比,完成多版本和灵活流量策略的灰度发布,实现模型版本的平滑过渡升级。

      说明:

      当前免费计算规格不支持多版本灰度发布。

      “存储挂载”

      资源池为专属资源池时显示该参数。在服务运行时将存储卷以本地目录的方式挂载到计算节点(计算实例),模型或输入数据较大时建议使用。

      SFS Turbo:

      • 文件系统名称:选择对应的SFS Turbo极速文件。不支持选择跨区域(Region)的极速文件系统。
      • 挂载路径:指定容器内部的挂载路径,如“/sfs-turbo-mount/”。请选择全新目录,选择存量目录会覆盖存量文件。
        说明:
        • 相同的文件系统只能挂载一次 ,且只能对应一个挂载路径,挂载路径均不可重复。最多可以挂载8个盘。
        • 使用专属资源池部署服务才允许使用存储挂载的能力,并且专属资源池需要打通VPC或关联SFS Turbo。

          - 打通VPC为打通SFS Turbo所在VPC和专属资源池网络,打通步骤请见打通VPC章节。

          - 关联SFS Turbo:如果SFS Turbo为HPC型的文件系统,可使用关联SFS Turbo功能,具体操作请参见配置ModelArts和SFS Turbo间网络直通

        • 选择多挂载时请勿设置存在冲突的挂载路径如相同路径或相似路径如/obs-mount/与/obs-mount/tmp/等。
        • 选择SFS Turbo存储挂载后,请勿删除已经打通的VPC或解除SFS Turbo关联,否则会导致挂载功能无法使用。挂载时默认按客户端umask权限设置,为确保正常使用需在SFS Turbo界面绑定后端OBS存储后设置权限为777。

      “服务流量限制”

      -

      服务流量限制是指每秒内一个服务能够被访问的次数上限。您可以根据实际需求设置每秒流量限制。

      “升级为WebSocket”

      -

      设置在线服务是否部署为WebSocket服务。了解在线服务支持WebSocket,请参考WebSocket在线服务全流程开发

      说明:
      • 要求模型的元模型来源为从容器镜像中选择,并且镜像支持WebSocket。
      • 设置“升级为WebSocket”后,不支持设置“服务流量限制”
      • “升级为WebSocket”参数配置,不支持修改。

      “运行日志输出”

      -

      默认关闭,在线服务的运行日志仅存放在ModelArts日志系统,在服务详情页的“日志”支持简单查询。

      如果开启此功能,在线服务的运行日志会输出存放到云日志服务LTS。LTS自动创建日志组和日志流,默认缓存7天内的运行日志。如需了解LTS专业日志管理功能,请参见云日志服务

      说明:
      • “运行日志输出”开启后,不支持关闭。
      • LTS服务提供的日志查询和日志存储功能涉及计费,详细请参见了解LTS的计费规则
      • 请勿打印无用的audio日志文件,这会导致系统日志卡死,无法正常显示日志,可能会出现“Failed to load audio”的报错。

      “支持APP认证”

      “APP授权配置”

      默认关闭。如需开启此功能,请参见通过APP认证的方式访问在线服务了解详情并根据实际情况进行设置。

      “订阅消息”

      -

      订阅消息使用消息通知服务,在事件列表中选择需要监控的服务状态,在事件发生时发送消息通知。

    3. 可选:配置高级选项。
      表3 高级选项参数说明

      参数名称

      说明

      故障自动重启

      开启该功能后,系统检测到在线服务异常,会自动重新部署在线服务。详细请参见设置在线服务故障自动重启

      “支持IPV6”

      默认关闭。开启该功能后,待在线服务部署完成,服务预测地址中的域名在公网解析时可解析为IPV6地址。

      须知:
      • 仅支持部署时开启,开启后不支持修改。
      • 仅北京四支持该功能。

      “标签”

      ModelArts支持对接标签管理服务TMS,在ModelArts中创建资源消耗性任务(例如:创建Notebook、训练作业、推理在线服务)时,可以为这些任务配置标签,通过标签实现资源的多维分组管理。

      标签详细用法请参见ModelArts如何通过标签实现资源分组管理

      说明:

      可以在标签输入框下拉选择TMS预定义标签,也可以自己输入自定义标签。预定义标签对所有支持标签功能的服务资源可见。租户自定义标签只对自己服务可见。

  4. 确认填写信息无误后,根据界面提示完成在线服务的部署。部署服务一般需要运行一段时间,根据您选择的数据量和资源不同,部署时间将耗时几分钟到几十分钟不等。

    在线服务部署完成后,将立即启动。服务为“运行中”,“告警”状态下正常运行实例正在产生费用,不使用时,请及时停止。

    您可以前往在线服务列表,查看在线服务的基本情况。在线服务列表中,刚部署的服务“状态”“部署中”,当在线服务的“状态”变为“运行中”时,表示服务部署完成。

使用预测功能测试在线服务

模型部署为在线服务成功后,您可以在“预测”页签进行代码调试或添加文件测试。根据模型定义的输入请求不同(JSON文本或文件),测试服务包括如下两种方式:

  • JSON文本预测:如当前部署服务的模型,其输入类型指定的为JSON文本类,即不含有文件类型的输入,可以在“预测”页签输入JSON代码进行服务预测。
  • 文件预测:如当前部署服务的模型,其输入类型指定为文件类,可包含图片、音频或视频等场景,可以在“预测”页签添加图片进行服务预测。
  • 如果您的输入类型为图片,请注意测试服务单张图片输入应小于8MB。
  • JSON文本预测,请求体的大小不超过8MB。
  • 因APIG(API网关)的限制,单次预测的时间不能超过40S。
  • 图片支持以下类型:“png”“psd”“jpg”“jpeg”“bmp”“gif”“webp”“psd”“svg”“tiff”
  • 如果服务部署时使用的是“Ascend”规格,则无法预测含有透明度的PNG图片,因为Ascend仅支持RGB-3通道的图片。
  • 该功能为调测使用,实际生产建议使用API调用。根据鉴权方式的不同,可以根据实际情况选择通过Token认证的方式访问在线服务通过AK/SK认证的方式访问在线服务或者通过APP认证的方式访问在线服务

针对您部署上线的服务,您可以在服务详情页面的“调用指南”中,了解本服务的输入参数,即上文提到的输入请求类型。

图1 查看服务的调用指南

调用指南中的输入参数取决于您选择的模型来源:

  • 如果您的元模型来源于自动学习或预置算法,其输入输出参数由ModelArts官方定义,请直接参考“调用指南”中的说明,并在预测页签中输入对应的JSON文本或文件进行服务测试。
  • 如果您的元模型是自定义的,即推理代码和配置文件是自行编写的(配置文件编写说明),“调用指南”只是将您编写的配置文件进行了可视化展示。调用指南的输入参数与配置文件对应关系如下所示。
    图2 配置文件与调用指南的对应关系

不同输入请求的预测方式如下:

  • JSON文本预测
    1. 登录ModelArts管理控制台,在左侧菜单栏中选择“模型部署 > 在线服务”,进入“在线服务”管理页面。
    2. 单击目标服务名称,进入服务详情页面。在“预测”页签的预测代码下,输入预测代码,然后单击“预测”即可进行服务的预测,如图3所示。

      JSON文本类的预测代码和返回结果样例如下所示。

      图3 预测代码
  • 文件预测
    1. 登录ModelArts管理控制台,在左侧菜单栏中选择“模型部署 > 在线服务”,进入“在线服务”管理页面。
    2. 单击目标服务名称,进入服务详情页面。在“预测”页签,单击“上传”,然后选择测试文件。文件上传成功后,单击“预测”即可进行服务的预测,如图4所示,输出标签名称,以及位置坐标和检测的评分。
      文件类的预测代码和返回结果样例,可参见花卉识别样例。此样例是使用订阅算法训练的元模型,其输入类型为ModelArts官方定义,不可更改,如需自定义的元模型,请参见手写数字识别样例
      图4 图片预测

使用CloudShell调试在线服务实例容器

允许用户使用ModelArts控制台提供的CloudShell登录运行中在线服务实例容器。

约束限制:

  • 只支持专属资源池部署的在线服务使用CloudShell访问容器。
  • 在线服务必须处于“运行中”状态,才支持CloudShell访问容器。
  1. 登录ModelArts控制台,左侧菜单选择“模型部署 > 在线服务”。
  2. 在线服务列表页面单击“名称/ID”,进入在线服务详情页面。
  3. 单击CloudShell页签,选择模型版本和计算节点,当连接状态变为时,即登录实例容器成功。

    如果遇到异常情况服务器主动断开或超过10分钟未操作自动断开,此时可单击“重新连接”重新登录实例容器。
    图5 CloudShell界面
    部分用户登录Cloud Shell界面时,可能会出现路径显示异常情况,此时在Cloud Shell中单击回车键即可恢复正常。
    图6 路径异常

相关文档