更新时间:2025-08-07 GMT+08:00

部署模型为在线服务

在线推理是指利用部署在远程服务器或云平台上的 AI/机器学习模型,通过网络接收用户输入的数据或问题,并实时返回处理结果或决策的过程。在线推理是一种基于云端模型的实时交互式服务,提供低延迟、高可用性的 AI 智能服务,让用户无需本地部署复杂模型即可获得强大的分析、预测、理解等能力,适用于需要快速响应和交互的场景。

ModelArts提供在线部署功能,支持将模型部署为一个Web Service,并且提供在线的测试UI与监控功能。部署成功的在线服务会提供一个可调用的API,您可以对部署成功的在线服务进行预测和调用。在线推理常用于对实时性要求较高的场景,如在线智能客服、自动驾驶中的实时决策等。

本章节主要介绍如何在ModelArts部署模型为在线服务,并对部署成功的在线服务进行预测。

计费说明

在ModelArts进行服务部署时,会产生计算资源和存储资源的累计值计费。计算资源为运行推理服务的费用。存储资源包括数据存储到OBS的计费。具体内容如表1所示。

表1 计费项

计费项

计费项说明

适用的计费模式

计费公式

计算资源

公共资源池

使用计算资源的用量。

具体费用可参见ModelArts价格详情

按需计费

规格单价 * 计算节点个数 * 使用时长

专属资源池

专属资源池的费用已在购买时支付,部署服务不再收费。

专属资源池的费用请参考专属资源池计费项

-

-

事件通知(不开启则不计费)

订阅消息使用消息通知服务,在事件列表中选择特定事件,在事件发生时发送消息通知。

如果想使用消息通知,需要在创建训练作业时开启“事件通知”功能。

具体计费可见消息通知服务价格详情

按实际用量付费

  • 发送短信通知费用构成:短信通知条数
  • 发送电子邮件费用构成:电子邮件+外网下行流量
  • 发送HTTP(S)费用构成:HTTP(S)+外网下行流量

运行日志(不开启则不计费)

由云日志服务(LTS)提供日志收集、分析、存储等服务。

部署服务时,开启“运行日志输出”后,日志数据超出LTS免费额度后,会产生费用。具体可云日志服务价格详情

按实际日志量付费

超过免费额度后,按实际日志存储量和存储时长收费

约束与限制

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

前提条件

  • 数据已完成准备:已在ModelArts中创建状态“正常”可用的模型,模型创建请见创建模型
  • 由于在线运行需消耗资源,确保账户未欠费。
  • 在线服务使用SFS Turbo挂载时需要创建并关联SFS Turbo,具体操作如下。
    1. 创建SFS Turbo,详情请见创建SFS Turbo
    2. 在“标准算力集群(Standard Cluster)”页面单击资源池名称,查看部署服务需要选择的资源池详情,复制“网络”字段对应的值。
    3. 退出详情后,单击“网络管理”页面,按刚复制的网络信息搜索,单击“打通VPC”选择自己SFS Turbo所在的VPC以及子网后单击“确定”

      或者通过单击“更多”页签后选择“关联SFS Turbo”选择自己需要挂载的SFS Turbo,该步骤存在规格要求需要SFS Turbo的ECS规格支持多个网卡,否则会提示挂网卡失败。

部署在线服务(同步请求)

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

      参数名称

      说明

      “名称”

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

      “是否自动停止”

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

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

      “描述”

      在线服务的简要说明。

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

      参数名称

      子参数

      说明

      “资源池”

      “公共资源池”

      部署在线服务使用公共资源池。公共资源池提供公共的大规模计算集群,根据用户作业参数分配使用,资源按作业隔离。

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

      “专属资源池”

      部署在线服务使用专属资源池。专属资源池不与其他用户共享,资源更可控。

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

      “选择模型及配置”

      模型来源”

      部署在线服务的模型来源。根据您的实际情况选择“自定义模型或者“订阅模型

      • “自定义模型”:在ModelArts自行训练或本地开发并导入ModelArts的模型。
      • “订阅模型”:从AI Gallery中订阅官方发布或者他人分享的模型。

      “模型及版本”

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

      “分流”

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

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

      实例规格”

      选择部署在线服务的实例规格,确保在线服务能够正常运行。

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

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

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

      实例数”

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

      “环境变量”

      设置环境变量,注入环境变量到容器实例。

      为确保您的数据安全,在环境变量中,请勿输入敏感信息,如明文密码。

      “部署超时时间”

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

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

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

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

      “存储挂载”

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

      SFS Turbo:

      使用SFS Turbo挂载准备工作如下:

      使用专属资源池部署服务才允许使用存储挂载的能力,并且专属资源池需要打通VPC或关联SFS Turbo。

      • 打通VPC为打通SFS Turbo所在VPC和专属资源池网络,打通步骤请见打通VPC章节。
      • 关联SFS Turbo:如果SFS Turbo为HPC型的文件系统,可使用关联SFS Turbo功能。

      参数说明如下:

      • “文件系统名称”:选择对应的SFS Turbo极速文件。不支持选择跨区域(Region)的极速文件系统。
      • “挂载路径”:指定容器内部的挂载路径,如“/sfs-turbo-mount/”。请选择全新目录,选择存量目录会覆盖存量文件。

      注意事项如下:

      • 相同的文件系统只能挂载一次 ,且只能对应一个挂载路径,挂载路径均不可重复。最多可以挂载8个盘。
      • 选择多挂载时请勿设置存在冲突的挂载路径如相同路径或相似路径如/obs-mount/与/obs-mount/tmp/等。
      • 选择SFS Turbo存储挂载后,请勿删除已经打通的VPC或解除SFS Turbo关联,否则会导致挂载功能无法使用。挂载时默认按客户端umask权限设置,为确保正常使用须在SFS Turbo界面绑定后端OBS存储后设置权限为777。

      优先级

      -

      该功能仅在专属资源池生效,包括逻辑资源池/新创建的物理资源池/逻辑子池,存量物理资源池不支持此功能。

      用户可以通过设置优先级,优先保障高优先级的业务调度。

      优先级可选[1-3],1为最低优先级,3为最高优先级。训推共池时,在创建训练作业界面开启“允许被抢占”后(参考创建训练作业的创建生产训练作业(新版页面)),高优先级的推理任务可以抢占低优先级的训练作业。

      “服务流量限制”

      -

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

      “升级为WebSocket”

      -

      设置在线服务是否部署为WebSocket服务。将服务的通信协议从HTTP/HTTPS升级为WebSocket协议。

      WebSocket协议支持客户端和服务端之间的双向实时通信,适用于需要实时交互的场景,如实时预测、聊天机器人等。

      升级为WebSocket后,服务的API接口公网地址将变为WebSocket协议地址,客户端可以通过WebSocket客户端进行连接和数据交互。

      约束限制如下:

      要求模型的元模型来源为从容器镜像中选择,并且镜像支持WebSocket。

      设置“升级为WebSocket”后,不支持设置“服务流量限制”

      “升级为WebSocket”参数配置,在部署服务后不支持修改。

      在线服务支持WebSocket更多了解请参考WebSocket在线服务全流程开发

      “支持APP认证”

      “APP授权配置”

      在线服务是否支持通过APP认证进行访问控制。

      APP认证是一种基于AppCode和AppSecret的认证方式,用于验证客户端的身份,确保只有授权的APP能够调用服务的API。

      通过APP认证,可以实现更细粒度的访问控制,提升服务的安全性。

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

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

      参数名称

      说明

      故障自动重启

      服务实例在发生故障时是否自动重启。

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

      自动重启功能可以有效提升服务的可用性和稳定性,减少因硬件故障导致的服务中断时间。适用于对服务连续性和稳定性要求较高的场景。

      “标签”

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

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

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

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

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

    在线服务部署完成后,将立即启动。

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

模型部署为在线服务成功后,您可以在“预测”页签进行代码调试或添加文件测试。因APIG(API网关)的限制,单次预测的时间不能超过40S。

该功能为调测使用,实际生产建议使用API调用。根据鉴权方式的不同,可以根据实际情况选择通过Token认证的方式访问在线服务通过AK/SK认证的方式访问在线服务或者通过APP认证的方式访问在线服务

根据模型定义的输入请求不同(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通道的图片。

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

图1 查看服务的调用指南

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

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

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

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

  • 文件预测
    1. 登录ModelArts管理控制台,在左侧菜单栏中选择“模型部署 > 在线服务”,进入“在线服务”管理页面。
    2. 单击目标服务名称,进入服务详情页面。在“预测”页签,单击“上传”,然后选择测试文件。文件上传成功后,单击“预测”即可进行服务的预测,如图3所示,输出标签名称,以及位置坐标和检测的评分。
      图3 图片预测

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

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

约束限制:

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

    如果遇到异常情况服务器主动断开或超过10分钟未操作自动断开,此时可单击“重新连接”重新登录实例容器。
    图4 CloudShell界面

    部分用户登录Cloud Shell界面时,可能会出现路径显示异常情况,此时在Cloud Shell中单击回车键即可恢复正常。
    图5 路径异常

  4. 登录实例容器成功后,在容器的终端环境执行所需的调试命令。例如:

    查看日志:

    tail -f /var/log/app.log

    检查服务状态:

    systemctl status app

    执行自定义脚本:

    ./debug_script.sh

  5. 完成调试后,使用以下命令退出容器:

    exit

    返回CloudShell终端后,您可以查看调试结果或日志文件。