第 3 章 在多型号服务平台上提供模型


为了部署小型和中型模型,OpenShift AI 包含一个基于 ModelMesh 组件的 多模式服务平台。在多型号服务平台上,可以从同一模型服务器部署多个模型并共享服务器资源。

3.1. 配置模型服务器

3.1.1. 启用多模式服务平台

要使用多型号服务平台,您必须首先启用平台。

先决条件

  • 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
  • 您的集群管理员 还没有 编辑 OpenShift AI 仪表板配置,以禁用选择使用 ModelMesh 组件的多型号服务平台的功能。如需更多信息,请参阅 Dashboard 配置选项

流程

  1. 在 OpenShift AI 仪表板的左侧菜单中,点 Settings Cluster settings
  2. 找到 Model serving platform 部分。
  3. 选择 Multi-model serving 平台 复选框。
  4. Save Changes

模型运行时增加了对指定模型框架和这些框架支持的模型格式的支持。默认情况下,多型号服务平台包括 OpenVINO 模型服务器运行时。如果默认运行时不满足您的需要,您还可以添加自己的自定义运行时,如支持特定的模型格式。

作为管理员,您可以使用 Red Hat OpenShift AI 仪表板来添加和启用自定义模型运行时。然后,您可以在为多型号服务平台创建新模型服务器时选择自定义运行时。

注意

红帽不提供对自定义运行时的支持。您需要确保获得许可来使用您添加的任何自定义运行时,以及正确配置和维护它们。

先决条件

  • 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
  • 您熟悉如何在 项目 中添加模型服务器。添加自定义模型运行时后,您必须配置新的模型服务器以使用运行时。
  • 您已查看了 kserve/modelmesh-serving 存储库中的运行时示例。您可以将这些示例用作起点。但是,每个运行时都需要一些进一步的修改,然后才能在 OpenShift AI 中部署它。以下流程描述了所需的修改。

    注意

    OpenShift AI 默认包含 OpenVINO 模型服务器运行时。您不需要将此运行时添加到 OpenShift AI。

流程

  1. 在 OpenShift AI 仪表板中点 Settings Serving runtime

    Serving 运行时 页面将打开,并显示已安装和启用的模型服务运行时。

  2. 要添加自定义运行时,请选择以下选项之一:

    • 要使用现有运行时(如 OpenVINO Model Server runtime)启动,请点现有运行时旁的操作菜单(alsa),然后点 Duplicate
    • 要添加新的自定义运行时,请点 Add serving runtime
  3. Select the model service platform this runtime support 列表中,选择 Multi-model serving platform

    注意

    多型号服务平台只支持 REST 协议。因此,您无法更改 此运行时支持的 Select the API 协议中的默认值

  4. 可选:如果您启动一个新的运行时(而不是复制现有运行时),请选择以下选项之一来添加代码:

    • 上传 YAML 文件

      1. Upload files
      2. 在文件浏览器中,选择计算机上的 YAML 文件。此文件可能是您从 kserve/modelmesh-serving 存储库下载的示例运行时之一。

        嵌入的 YAML 编辑器将打开,并显示您上传的文件内容。

    • 在编辑器中直接输入 YAML 代码

      1. Start from scratch
      2. 在嵌入式编辑器中直接输入或粘贴 YAML 代码。您粘贴的 YAML 可能会从 kserve/modelmesh-serving 存储库中的一个示例运行时复制。
  5. 可选:如果您要在 kserve/modelmesh-serving 仓库中添加其中一个示例运行时,请执行以下修改:

    1. 在 YAML 编辑器中,找到运行时的 kind 字段。将此字段的值更新为 ServingRuntime
    2. kserve/modelmesh-serving 存储库中的 kustomization.yaml 文件中,记录您要添加的运行时的 newNamenewTag 值。您将在后续步骤中指定这些值。
    3. 在自定义运行时的 YAML 编辑器中,找到 containers.image 字段。
    4. 根据之前在 kustomization.yaml 文件中记录的值,以 newName:newTag 格式更新 containers.image 字段的值。此时会显示一些示例。

      NVIDIA Triton Inference Server
      image: nvcr.io/nvidia/tritonserver:23.04-py3
      Seldon Python MLServer
      Image: seldonio/mlserver:1.3.2
      TorchServe
      image: pytorch/torchserve:0.7.1-cpu
  6. metadata.name 字段中,确保您添加的运行时值是唯一的(即,该值与您已添加的运行时不匹配)。
  7. 可选: 要为要添加的运行时配置自定义显示名称,请添加 metadata.annotations.openshift.io/display-name 字段并指定值,如下例所示:

    apiVersion: serving.kserve.io/v1alpha1
    kind: ServingRuntime
    metadata:
      name: mlserver-0.x
      annotations:
        openshift.io/display-name: MLServer
    Copy to Clipboard Toggle word wrap
    注意

    如果没有为您的运行时配置自定义显示名称,OpenShift AI 会显示 metadata.name 字段的值。

  8. 点击 Add

    Serving 运行时页面将打开,并显示所安装的运行时的更新列表。观察您添加的运行时会自动启用。

  9. 可选: 要编辑自定义运行时,点操作菜单(需要)并选择 Edit

验证

  • 您添加的自定义模型运行时显示在 Serving 运行时 页面中的 enabled 状态。

除了预安装和自定义模型服务运行时外,您还可以使用红帽经过测试和验证的模型运行时,如 NVIDIA Triton Inference Server 来支持您的需要。有关红帽经过测试和验证的运行时的更多信息,请参阅 Red Hat OpenShift AI 测试和验证的运行时

您可以使用 Red Hat OpenShift AI 仪表板来添加和启用 NVIDIA Triton Inference Server 运行时,然后在为多模型服务平台创建新模型服务器时选择运行时。

先决条件

  • 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
  • 您熟悉如何在 项目 中添加模型服务器。添加经过测试和验证的模型运行时后,您必须配置新的模型服务器来使用运行时。

流程

  1. 在 OpenShift AI 仪表板中点 Settings Serving runtime

    Serving 运行时 页面将打开,并显示已安装和启用的模型服务运行时。

  2. 要添加经过测试和验证的运行时,请点 Add serving runtime
  3. Select the model service platform this runtime support 列表中,选择 Multi-model serving platform

    注意

    多型号服务平台只支持 REST 协议。因此,您无法更改 此运行时支持的 Select the API 协议中的默认值

  4. Start from scratch
  5. 在嵌入的编辑器中直接输入或粘贴以下 YAML 代码。

    apiVersion: serving.kserve.io/v1alpha1
    kind: ServingRuntime
    metadata:
      annotations:
        enable-route: "true"
      name: modelmesh-triton
      labels:
        opendatahub.io/dashboard: "true"
    spec:
      annotations:
        opendatahub.io/modelServingSupport: '["multi"x`x`]'
        prometheus.kserve.io/path: /metrics
        prometheus.kserve.io/port: "8002"
      builtInAdapter:
        env:
          - name: CONTAINER_MEM_REQ_BYTES
            value: "268435456"
          - name: USE_EMBEDDED_PULLER
            value: "true"
        memBufferBytes: 134217728
        modelLoadingTimeoutMillis: 90000
        runtimeManagementPort: 8001
        serverType: triton
      containers:
        - args:
            - -c
            - 'mkdir -p /models/_triton_models;  chmod 777
              /models/_triton_models;  exec
              tritonserver "--model-repository=/models/_triton_models" "--model-control-mode=explicit" "--strict-model-config=false" "--strict-readiness=false" "--allow-http=true" "--allow-grpc=true"  '
          command:
            - /bin/sh
          image: nvcr.io/nvidia/tritonserver@sha256:xxxxx
          name: triton
          resources:
            limits:
              cpu: "1"
              memory: 2Gi
            requests:
              cpu: "1"
              memory: 2Gi
      grpcDataEndpoint: port:8001
      grpcEndpoint: port:8085
      multiModel: true
      protocolVersions:
        - grpc-v2
        - v2
      supportedModelFormats:
        - autoSelect: true
          name: onnx
          version: "1"
        - autoSelect: true
          name: pytorch
          version: "1"
        - autoSelect: true
          name: tensorflow
          version: "1"
        - autoSelect: true
          name: tensorflow
          version: "2"
        - autoSelect: true
          name: tensorrt
          version: "7"
        - autoSelect: false
          name: xgboost
          version: "1"
        - autoSelect: true
          name: python
          version: "1"
    Copy to Clipboard Toggle word wrap
  6. metadata.name 字段中,确保您添加的运行时值与您已添加的运行时不匹配。
  7. 可选: 要为您添加的运行时使用自定义显示名称,请添加 metadata.annotations.openshift.io/display-name 字段并指定一个值,如下例所示:

    apiVersion: serving.kserve.io/v1alpha1
    kind: ServingRuntime
    metadata:
      name: modelmesh-triton
      annotations:
        openshift.io/display-name: Triton ServingRuntime
    Copy to Clipboard Toggle word wrap
    注意

    如果没有为您的运行时配置自定义显示名称,OpenShift AI 会显示 metadata.name 字段的值。

  8. Create

    Serving 运行时页面将打开,并显示所安装的运行时的更新列表。观察您添加的运行时会自动启用。

  9. 可选: 要编辑运行时,请点击操作菜单(WWN)并选择 Edit

验证

  • 您添加的 model-serving 运行时显示在 Serving 运行时 页面中的 enabled 状态。

3.1.4. 为多模式服务平台添加模型服务器

当您启用了多型号服务平台时,您必须配置模型服务器来部署模型。如果您需要额外的计算能力以用于大型数据集,可以为模型服务器分配加速器。

注意

在 OpenShift AI 2.19 中,红帽支持用于模型服务的 NVIDIA 和 AMD GPU 加速器。

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 如果使用 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组(如 rhoai-usersrhoai-admins )的一部分。
  • 您已创建了可添加模型服务器的数据科学项目。
  • 您已启用了多型号服务平台。
  • 如果要将自定义模型运行时用于模型服务器,您添加了并启用运行时。请参阅 添加自定义模型运行时
  • 如果要将图形处理单元(GPU)与模型服务器搭配使用,在 OpenShift AI 中启用了 GPU 支持。如果使用 NVIDIA GPU,请参阅启用 NVIDIA GPU。如果使用 AMD GPU,请参阅 AMD GPU 集成

流程

  1. 在 OpenShift AI 仪表板的左侧菜单中,单击 Data Science projects

    Data Science 项目页将打开。

  2. 点您要为其配置模型服务器的项目名称。

    此时会打开项目详情页面。

  3. Models 选项卡。
  4. 执行以下操作之一:

    • 如果您看到 ​Multi-model 服务平台 标题,点标题上的 Add model server
    • 如果没有看到任何标题,请点击 Add model server 按钮。

    此时会打开 Add model server 对话框。

  5. Model server name 字段中输入模型服务器的唯一名称。
  6. Serving runtime 列表中,选择一个在 OpenShift AI 部署中安装并启用的模型运行时。

    注意

    如果您在模型服务器中使用 自定义 模型运行时并希望使用 GPU,您必须确保您的自定义运行时支持 GPU,并被适当配置为使用它们。

  7. Number of model replicas to deploy 字段中,指定一个值。
  8. Hardware profile 列表中,选择一个硬件配置文件。
  9. 可选:点 Customize resource requests and limit 并更新以下值:

    1. CPU requests 字段中,指定要与模型服务器一起使用的 CPU 数量。使用此字段旁边的列表来指定内核或 millicores 的值。
    2. CPU limits 字段中,指定模型服务器使用的最大 CPU 数量。使用此字段旁边的列表来指定内核或 millicores 的值。
    3. Memory requests 字段中,以 gibibytes (Gi)为模型服务器指定请求的内存。
    4. Memory limits 字段中,以千兆字节(Gi)指定模型服务器的最大内存限值。
  10. 可选:在 Model route 部分中,选择 Make deployed model available via an external route 复选框,使部署的模型可供外部客户端使用。
  11. 可选:在 Token authentication 部分中,选择 Require token authentication 复选框,以为您的模型服务器需要令牌身份验证。要完成配置令牌身份验证,请执行以下操作:

    1. Service account name 字段中输入要为其生成令牌的服务帐户名称。配置模型服务器时,生成的令牌会被创建并显示在 Token secret 字段中。
    2. 要添加额外服务帐户,请点 Add a service account 并输入另一个服务帐户名称。
  12. 点击 Add

    • 您配置的模型服务器会出现在项目的 Models 选项卡中,位于 Models 和 model servers 列表中。
  13. 可选: 要更新模型服务器,请点击模型服务器旁边的操作菜单(alsa),然后选择 Edit model server

3.1.5. 删除模型服务器

当您不再需要模型服务器到主机模型时,您可以从您的数据科学项目中删除它。

注意

当您删除模型服务器时,您也会删除托管在该模型服务器上的模型。因此,应用程序不再使用模型。

先决条件

  • 您已创建了数据科学项目和关联的模型服务器。
  • 您已通知用户访问模型将不再可用的应用程序。
  • 如果您使用 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组(如 rhoai-usersrhoai-admins)的一部分。

流程

  1. 在 OpenShift AI 仪表板中点 Data Science projects

    Data Science 项目页将打开。

  2. 点您要从中删除模型服务器的项目名称。

    此时会打开项目详情页面。

  3. Models 选项卡。
  4. 点您要删除模型服务器的项目旁边的操作菜单(autotune),然后点 Delete model server

    此时会打开 Delete model server 对话框。

  5. 在文本字段中输入模型服务器的名称,以确认您想要删除它。
  6. Delete model server

验证

  • 您删除的模型服务器不再显示在项目的 Models 选项卡中。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat