You need to enable JavaScript to run this app.
导航
部署模型服务 - Triton 框架
最近更新时间:2024.10.25 14:05:17首次发布时间:2022.11.03 20:11:05

本文介绍了如何向边缘节点部署基于 Triton 推理框架(即 Triton Inference Server)的模型服务。您可以部署边缘智能提供的官方模型,也可以部署自定义模型。

支持的模型框架

推理框架提供了模型的运行环境。Triton 推理框架兼容各种主流训练框架的模型。支持的模型框架包括:
ONNX、TensorRT、PyTorch、TensorFlow、OpenVINO、ByteNN、PaddlePaddle、Python、Ensemble、TensorRT-LLM
不同模型框架对边缘节点指令集架构、协处理器类型有不同的要求。具体如下表所示。在部署模型服务前,请确保您的边缘节点与要部署的模型是兼容的。

模型框架

指令集架构要求

协处理器要求

ONNX

x86/amd64、arm

CPU、GPU

TensorRT

x86/amd64、arm

GPU

PyTorch

x86/amd64、arm

CPU、GPU

TensorFlow

x86/amd64、arm

CPU、GPU

OpenVINO

x86/amd64

CPU、GPU

Bytenn

x86/amd64、arm

CPU、GPU

PaddlePaddle

x86/amd64

CPU、GPU

前提条件

  • 您已经为项目绑定了边缘节点。相关操作,请参见绑定节点
  • 如果您使用边缘节点型 aPaaS 工具,则 aPaaS 工具必须是 高级版
    边缘节点 - 基础版 aPaaS 工具不包含边缘推理功能。更多信息,请参见资源包(aPaaS 工具)计费说明
  • 如果您要部署自定义模型,您必须完成以下任务:创建自定义模型并为自定义模型创建和发布版本。相关操作,请参见创建自定义模型创建一个版本

操作步骤

  1. 登录边缘智能控制台

  2. 在左侧导航栏顶部的 我的项目 区域,选择您的项目。

  3. 在左侧导航栏,选择 边缘推理 > 模型服务

  4. Triton框架 标签页,单击 部署模型服务

  5. 部署模型服务 页面,配置以下参数,然后单击 确认
    Image

    区域

    参数

    说明

    基本信息

    所属项目

    默认为当前选择的项目。

    节点

    选择需要部署模型服务的边缘节点。

    服务名称

    为模型服务设置名称。您可以使用以下字符:英文字母、数字、汉字、下划线(_)和连字符(-)。请注意以下规则:

    • 长度限制为 32 个字符以内。
    • 下划线和连字符不能用在开头或结尾,也不能连续使用。
    • 名称不能与边缘节点上其他模型服务名称重复。

    模型信息

    模型

    选择要使用的模型。您可以选择边缘智能的官方模型,也可以选择您创建的自定义模型。

    模型版本

    选择要使用的模型版本。

    模型前后处理

    选择要使用的前后处理版本。更多信息,请参见创建一个前后处理版本

    服务配置

    服务状态类型

    默认为 无服务状态

    最大批处理大小

    设置最大批处理数量。取值范围:0 ~ 100。

    注意

    如果部署官方模型,在选择 模型模型版本 后,请勿修改最大批处理的默认填充值。

    如果部署自定义模型,可以参考以下说明设置最大批处理:

    • 如果模型不支持批处理,最大批处理必须设置为 0,模型每次仅推理一个 batch。
    • 如果模型支持批处理,最大批处理可以设置为一个大于等于 1 的整数,以便模型进行多批次动态推理。假设最大批处理为 N,则模型每次推理的 batch 数可以是 1~N。

    推理框架在将 input 送入模型前会增加一个维度,用来表示批次数。

    示例:
    假设 Tensor 配置的输入形状为 [3, 640, 640],最大批处理为 3。那么,送入模型的 input 为 [1, 3, 640, 640]、 [2, 3, 640, 640] 或 [3, 3, 640, 640] 都是可以接受的。

    HTTP端口

    输入 HTTP 服务端口号。取值范围:30000 ~ 40000。
    请确保您设置的端口号在目标边缘节点上未被其他服务占用。

    GRPC端口

    输入 GRPC 服务端口号。取值范围:30000 ~ 40000。
    请确保您设置的端口号在目标边缘节点上未被其他服务占用。

    部署实例

    为每个子模型分别配置以下参数:

    说明

    模型Ensemble 以外的类型时,子模型只有一个;当 模型Ensemble 类型时,子模型有多个。更多信息,请参见创建自定义模型

    • CPU实例数
      表示预期在 CPU 上水平扩展的模型实例的数量。取值范围:0 ~ 100。
    • GPU实例数
      表示预期在 GPU 上水平扩展的模型实例的数量。取值范围:0 ~ 100。
    • GPU ID
      表示在哪个或哪些 GPU 上创建模型实例。仅在边缘节点上包含 GPU 时允许配置该参数。
      默认情况下,模型实例会在指定节点的所有 GPU 上创建。如果设置了 GPU ID,则仅在指定的 GPU 上创建模型实例。
      假设节点包含 N 个 GPU,则 GPU ID 使用 0、1、……、N-1 表示。
    • 动态批处理
      设置是否开启动态批处理功能。该功能让模型服务器得以将多个推理请求组合,动态地生成一个批次。一般来说,创建请求批次可以优化吞吐量。
      动态批处理 开启时,将会显示 最大延迟 参数。
      最大延迟 表示表示批处理延迟的最大时间。(超过该时间会立刻开始推理。)单位:us。取值范围:0~1000000。
    • 参数配置
      通过该参数自定义参数配置。自定义的参数配置将被推送到边缘节点。

      说明

      • 只有当 模型 的类型是 Python 时,自定义的参数配置才会被启用。
      • 如果您希望自定义 参数配置,请联系售后技术支持来协助您完成配置。

    资源配置

    为模型服务分配边缘节点资源。支持的配置项包括:

    • CPU配额
      容器需要使用的最小 CPU 核数。单位:Core。使用一位小数表示。取值范围:0.1 ~ 128.0。
    • CPU限额
      容器可以使用的最大 CPU 核数。单位:Core。使用一位小数表示。取值范围:0.1 ~ 128.0。
    • 内存配额
      容器需要使用的最小内存值。单位:MB 或 GB。使用整数表示。取值范围:0MB ~ 128GB。
    • 内存限额
      容器可以使用的最大内存值。单位:MB 或 GB。使用整数表示。取值范围:0MB ~ 128GB。

    注意

    如果模型服务在 CPU 或内存方面超过限额,容器将会被终止。

    压缩模式

    选择是否采用输入压缩模式来部署模型服务。

    说明

    模型Ensemble 类型时,不支持开启压缩模式。

    在模型服务与数据流分开部署的场景(如云边协同)建议开启输入压缩模式。开启输入压缩模式后,模型服务的部署会自动转化为一个 Ensemble 联合模型服务的部署,它包含三部分:Ensemble 模型,Python 前处理模型以及您选择的模型本身。
    在这种模式下,整个 Ensemble 模型的输入图片 Tensor 会变成压缩后的 jpeg string。相对于原始模型,输入 Tensor 的大小有大幅度的缩小。Python 前处理模型则是用来将压缩后的 jpeg string 恢复成原始模型的输入 Tensor。

    示例:
    假设原始模型的图片输入 Tensor 大小是 3×640×640,因此该输入 Tensor 大小是 4.6875MB。而压缩后,输入 Tensor 大小仅仅是 jpeg string 的大小,大约是几十 KB。

    共享内存

    说明

    只有当 模型框架Python 或者 Ensemble 时,共享内存 才会显示。

    设置 Docker 共享内存。带有模型服务的容器通常需要比 Docker 默认的 64MB 更大的共享内存。在大多数情况下,256MB 通常就足够了。您可以增加单个容器的共享内存 (SHM) 大小,也可以更改 Docker 的默认值。

    • 对于 Python 类型的模型,默认共享内存为 64MB。
    • 对于 Ensemble 类型的模型,默认共享内存为 512MB。

完成以上操作后,您可以在 模型服务 列表看到刚刚部署的模型服务。此时,模型服务的状态是 部署中。您可以将光标放置在状态旁边的问号图标上,了解部署进度。

说明

Triton 模型服务的部署基于边缘智能下发的 GPU 镜像文件。当您首次在某个边缘节点上部署模型服务时,该边缘节点将自动下载必要的 GPU 镜像文件。下载所需的时间长度取决于该边缘节点的网络环境,过程大约需耗时 5~10 分钟。若边缘节点已开启 GPU 镜像预加载 功能,则部署模型服务的时间将会明显缩短。更多信息,请参见绑定节点

  • 当模型服务的状态变为 运行中,表示模型服务已经部署成功。
  • 如果模型服务的状态是 部署失败,您可以将光标放置在 部署失败 上,然后单击 查看原因,以获取具体的错误消息。