You need to enable JavaScript to run this app.
导航
将模型部署成服务(new)
最近更新时间:2024.12.12 17:38:44首次发布时间:2024.12.12 17:38:44
功能概述

推理多部署能力,即一个推理服务中可以创建多个部署。支持该能力后,用户可以在一个推理服务中使用不同硬件规格的资源类型,从而更加灵活的应对业务需求;支持一个推理服务中同时使用到预付费和后付费能力,在保证业务稳定性的同时能够通过后付费弹性能力及时应对流量高峰。多个部署间用户可以通过多种分流策略来做流量分配,满足推理请求灵活分配的同时也能够实现服务的蓝绿发布、灰度升级能力。

页面交互

创建服务

  1. 登录机器学习平台,单击左侧导航栏中的【模型服务】-【在线服务】进入列表页面。

  2. 单击列表页面左上方的【+ 创建服务】进入创建页面。

  3. 在创建服务页面填写相关参数,具体参数如下:

参数名称参数说明

服务名称

  • 填写服务的名称。 必填

  • 支持1~200位可见字符,且只包含大小写字母、中文、数字、中划线、下划线。

  • 服务名称可重复。

服务描述

  • 填写对服务的适当描述。 选填

  • 支持 1~500 位可见字符。

可见范围

  • 配置该服务能够在哪些账号范围内可见。选填

  • 主账号内可见:主账号下所有用户均可查看该服务及详情。

  • 队列内成员可见:拥有所属队列权限的用户均可查看该服务、部署及详情。(同一服务下若多个部署所属队列不同,则只能看到相应所属队列下的部署及详情,服务下其他队列的部署及详情仍不可见。)

  • 指定子账号可见:在指定账号列表中的用户有权限查看到该服务及详情。

  • 仅创建人可见:仅服务创建人有权限查看该服务及详情。

私有网络

  • 支持配置用户的私有网络、子网及安全组,从而用户私网环境下可调用在平台上创建的服务。必填。

  • 私有网络一经创建则不可编辑修改,且服务的负载均衡器与部署独立使用的负载均衡器均需使用该私有网络。请谨慎确认选择

负载均衡器

  • 通过负载均衡提高服务可用性和可靠性,满足服务高访问量的业务场景,选填

  • 支持 API 网关(七层负载均衡器)和传输层负载均衡器(四层负载均衡器,以下简称 CLB )两种类型负载均衡器,开启负载均衡器后,默认推荐使用 API 网关。

  • 若需要公网访问到该服务,则需要选择配置了公网IP的负载均衡。详见文档 API网关文档CLB文档

负载均衡调度算法

  • API 网关支持四种调度算法,分别为「轮询」、「最小连接数」、「随机」以及「一致性哈希」。当选择为「一致性哈希」时则需要配置哈希方式,即输入「Header字段名称」。

    • 轮询:将所有请求依次分发到服务中的每个部署。

    • 随机:请求随机分配到服务中的各个部署。

    • 最小连接数:将请求分配到目前处理请求数最少的部署中。

    • 一致性哈希:基于 header 信息进行负载均衡,在后端服务数量不变的情况下,确保携带信息相同的用户可固定访问同一部署。

  • CLB 支持三种调度算法,分别为「加权轮询」、「加权最小连接数」以及「源地址哈希」。

    • 加权轮询:选择该调度算法后,权重值越高的后端服务器,被轮询到的次数(概率)越高。权重配置可见「分流策略」中说明。

    • 加权最小连接数:选择该调度算法后,负载均衡器会将请求分发给“当前连接/权重”比值最小的后端服务器。单请求处理耗时较长(如大模型)场景,可以考虑选择WLC方法。

    • 源地址哈希:选择该调度算法后,负载均衡器将基于源IP地址的一致性哈希,相同的源地址会调度到相同的后端服务器。

端口

  • 支持自定义监听端口和调用端口,请确保安全组规则已方通需要配置的端口。选填

  • 监听端口限制范围:1-2999932768-65535

  • 调用端口限制范围:1-65535

  • API 网关端口用途:支持HTTP/1.1HTTP2GRPCMetricsOther

  • CLB 端口用途:支持 HTTPRPCMetricsOther

  • 当端口用途为Metrics 时支持额外填写自定义指标的采集路径,平台会将该路径下的指标数据推送到用户指定的 VMP工作区(需要提前在【全局配置】模块中开启监控归档的功能)。

  • 端口限制:

    • 最多可添加5个端口,且端口及路径都不能冲突。

    • API 网关仅支持创建一个 GRPC 用途端口,且路径必须为“/”。

分流策略

  • API 网关仅支持一种分流策略,即「自定义分流」。故在创建服务时不需选择。

  • CLB(传输层负载均衡器)支持两种分流策略,分别为「按实例数自动分流」以及「自定义分流」。详细配置说明可参考 配置服务分流策略

新增部署

服务创建完成后,即可跳转「服务详情」页面,在「服务详情」页面您可点击「新增部署」。具体参数说明如下:

参数名称参数说明

部署名称

  • 填写部署的名称。 必填

  • 支持1~200位可见字符,且只包含大小写字母、中文、数字、中划线、下划线。

  • 部署名称可重复。

镜像选择推理引擎的镜像。 必填 。您可以选择平台提供的「预置镜像」、或者您自己上传的「自定义镜像」,也可以选择输入「镜像 URL 」。
模型配合「模型仓库」,您可以选择「模型仓库」中的模型进行推理操作。 选填
入口命令推理镜像的启动命令。选填。

环境变量

  • 将被注入到容器实例中的环境变量。 选填

  • 环境变量key值仅支持大小写字母、数字、下划线,且不能以数字作为开头。

  • 可配置多个环境变量。

存活检查/就绪检查/启动检查

  • 存活检查:用于判断实例是否存活(running状态),如果存活探针探测到实例不健康,则会杀掉该实例并根据策略进行重启。

  • 就绪检查:用于判断实例是否启动完成(ready状态),可以接收请求。

  • 启动检查:用于判断应用是否已经启动,如果提供了启动探针,则禁用所有其他探针,直到它成功为止。如果启动探针失败,平台将杀掉实例并根据策略进行重启。

配置检查的方式,包括:

  • HTTP 请求检查:使用 HTTP 或 HTTPS 协议,向容器发送一个 HTTP Get 请求,通过检查响应确认容器状态。您需要进行如下检查配置:

    • 协议HTTPHTTPS

    • HTTP 请求头HTTP 请求中自定义的请求头(HTTP Headers)。单击 添加 输入键值对的配置方式。

    • 路径:访问 HTTP Server 的路径。

    • 端口:容器暴露的访问端口号或端口名称。

  • TCP 端口检查:向容器发送一个TCP SocketKubelet将尝试在指定端口上打开容器的 Socket。 如果可以建立连接,容器被认为是健康的,如果不能就认为是失败的。您需要进行如下检查配置:

    • 端口:容器暴露的访问端口号或端口名称。
  • 执行命令检查:在容器内执行指定的命令,通过检查命令执行的结果确认容器状态。 您需要进行如下检查配置:

    • 命令:检测容器健康情况的探测命令。

配置检查的时间参数,包括:

  • 初始等待时间:指容器启动后,第一次执行探测时需要等待的时间,默认为1秒。

  • 超时时间:指发送检查请求后,等待响应的超时时间。超过此时间表示容器无响应,默认为1秒。

  • 检查间隔:相邻两次检查的时间间隔。默认为10秒。

配置检查的结果阈值。包括:

  • 成功阈值:检查请求发送后,表示系统正常的响应次数,默认为1次。该项不可配置。

  • 失败阈值:检查请求发送后,表示系统异常的无响应次数,默认为3次。即如果容器对请求3次无响应,则认为容器状态异常。

优雅关闭时间实例下线前等待一段时间来处理该实例已经接收的请求,以减少实例变更带来的请求报错,默认设置为30秒。选填
所属队列选择部署的队列,队列的可用区将影响子网的可用区选择。即确定选择的队列后,会根据当前选择队列的可用区过滤服务私有网络下相同可用区的子网。必填。

计算规格

  • 运行部署的计算资源。 必填

  • 每种计算规格包含特定的CPU内存GPU的数量。

实例数

  • 部署运行的实例数量。 必填

  • 实例数需要1。

优先级与自定义任务的优先级配置一致,详见发起单机/分布式训练任务
使用闲时资源开启“使用闲时资源”的部署可以使用当前或其他队列(支持空闲资源出借)中的空闲资源。但开启后,部署中的实例随时可能会因为被抢占而停止并触发迁移操作。请谨慎选择。默认为关闭状态。

NUMA 亲和

部署新增支持 NUMA 亲和能力。即 CPU 和 GPU 调度时符合 NUMA 亲和策略。默认为关闭状态。

  1. 开启后,当前部署下所有实例都将优先调度到满足 NUMA 亲和的节点,但最终调度结果还需以环境实际情况判断。

  2. 建议仅针对访存密集型任务开启 NUMA亲和。计算密集型任务在开启 NUMA 亲和后会带来性能下降风险。

  3. 当使用的GPU卡数/CPU核数超出机型规格一半以上的时候,即GPU/CPU本身跨NUMA 时,不存在 NUMA 亲和策略。

自动扩缩容

  • 支持基于定时或指标的扩缩容策略,选填。详见下方「扩缩容」说明。

  • 配置自动扩缩容后,则默认关闭「实例数」的设定。

  • 自动扩缩容设定的实例数需要1。

滚动更新

  • 支持配置滚动更新的策略,必填

  • 最大不可用:滚动更新过程中不可用实例的数量占预期实例数的百分比。假设预期实例数为10,最大不可用为20%,则更新过程中可用的实例数最少有8

  • 最大超量:滚动更新过程中超出预期的实例数量占预期实例数的百分比。假设预期实例数为10,最大超量为10%,则更新过程中实例数最多可达11

共享文件系统挂载平台提供多种存储方案,并支持以共享文件系统的方式挂载到实例中。用户可以在尽量不修改代码的前提下,像操作本地文件一样地操作远端数据,并且在推理实例停止或者删除后远端数据也不会丢失。详细操作可参考:挂载共享文件系统
子网子网的可用区需要与部署所选队列的可用区保持一致,因此需要先选择部署使用的队列资源,才能过滤出相同可用区内可用的子网。必填
安全组请确保选择的「安全组」已放通需要配置的服务和部署的端口。必填

部署独立负载均衡器

  • 除了服务挂载的负载均衡器,每个部署都支持额外单独配置负载均衡器。同样支持 API 网关和CLB两种负载均衡器类型。选填

  • 通过部署独立的负载均衡器,可以用来支持调试场景,或者特定流量请求的处理。

  • 一个部署可以同时处理服务负载均衡器的流量以及部署独立负载均衡器的流量。

端口

  • 支持部署中新增自定义监听端口和调用端口,但请确保安全组规则已方通需要配置的端口。选填

  • 监听端口限制范围:1-2999932768-65535

  • 调用端口限制范围:1-65535

  • API 网关端口用途:支持HTTP/1.1HTTP2GRPCMetricsOther

  • CLB端口用途:支持 HTTPRPCMetricsOther

  • 当端口用途为Metrics 时支持额外填写自定义指标的采集路径,平台会将该路径下的指标数据推送到用户指定的 VMP工作区(需要提前在【全局配置】模块中开启监控归档的功能)。

  • 端口限制:

    • 部署端口默认会继承在服务中配置的端口。并且包括服务中配置的端口,最多可添加5个端口,且端口及路径都不能冲突。

    • API 网关仅支持创建一个 GRPC 用途端口,且路径必须为“/”。

承接流量

  • 当且仅当服务选择「CLB」,且「分流策略」配置为「按实例数自动分流」时,则出现「承接流量」选项。必填

  • 开启「承接流量」,则当前部署在创建完成后将自动承接流量,若您不希望该部署承接服务负载均衡器的流量请求,则可以选择关闭「承接流量」。默认为开启状态。

兼容说明

推理多部署能力支持向前兼容,即现有已创建的推理服务在升级为多部署形态后,会默认变为一个推理服务,并且该推理服务下存在一个 Default 部署,其他配置皆相同。此时在当前服务下第一次执行新增部署或者更新、编辑 Default 部署都会触发 Default 部署重新部署。建议在执行操作前将 Default 部署的「滚动更新」策略中「最大不可用比例」设置 < 100%,即至少保留一个实例在可用状态以完成滚动更新,否则重新部署会影响服务的可用性。