部署模型


Red Hat OpenShift AI Cloud Service 1

Red Hat OpenShift AI Cloud Service 中的部署模型

摘要

作为 Red Hat OpenShift AI 用户,您可以在 Red Hat OpenShift AI Cloud Service 中部署机器学习模型。

第 1 章 存储模型

在部署前,您必须存储您的模型。您可以在 S3 存储桶、URI 或开放容器项目(OCI)容器中存储模型。

1.1. 使用 OCI 容器进行模型存储

作为在 S3 存储桶或 URI 中存储模型的替代选择,您可以将模型上传到开放容器项目(OCI)容器中。在 KServe 中,从 OCI 容器部署模型也被称为 modelcars。

使用 OCI 容器进行模型存储可帮助您:

  • 通过避免多次下载同一模型来减少启动时间。
  • 通过减少本地下载的模型数量来减少磁盘空间使用量。
  • 通过允许预抓取镜像来提高模型性能。

使用 OCI 容器进行模型存储涉及以下任务:

1.2. 在 OCI 镜像中存储模型

您可以在 OCI 镜像中存储模型。以下流程使用 ONNX 格式存储 mobileNet v2-7 模型的示例。

先决条件

  • 您有 ONNX 格式的模型。此流程中的示例使用 ONNX 格式的 mobileNet v2-7 模型。
  • 已安装 Podman 工具。

流程

  1. 在本地机器的终端窗口中,创建一个临时目录来存储模型以及创建 OCI 镜像所需的支持文件:

    cd $(mktemp -d)
  2. 在临时目录中创建一个 models 文件夹:

    mkdir -p models/1
    注意

    这个示例命令指定子目录 1,因为 OpenVINO 需要编号的子目录进行建模。如果不使用 OpenVINO,则不需要创建 1 子目录来使用 OCI 容器镜像。

  3. 下载模型和支持文件:

    DOWNLOAD_URL=https://github.com/onnx/models/raw/main/validated/vision/classification/mobilenet/model/mobilenetv2-7.onnx
    curl -L $DOWNLOAD_URL -O --output-dir models/1/
  4. 使用 tree 命令确认模型文件按预期位于目录结构中:

    tree

    tree 命令应该返回类似以下示例的目录结构:

    .
    ├── Containerfile
    └── models
        └── 1
            └── mobilenetv2-7.onnx
  5. 创建名为 Containerfile 的 Docker 文件:

    注意
    • 指定提供 shell 的基础镜像。在以下示例中,ubi9-micro 是基础镜像。您不能指定不提供 shell 的空镜像,如 scratch,因为 KServe 使用 shell 来确保模型文件可以被模型服务器访问。
    • 更改复制的模型文件的所有权,并为 root 组授予读取权限,以确保模型服务器可以访问该文件。OpenShift 使用随机用户 ID 和 root 组 ID 运行容器。
    FROM registry.access.redhat.com/ubi9/ubi-micro:latest
    COPY --chown=0:0 models /models
    RUN chmod -R a=rX /models
    
    # nobody user
    USER 65534
  6. 使用 podman build 命令创建 OCI 容器镜像,并将其上传到 registry。以下命令使用 Quay 作为 registry。

    注意

    如果您的存储库是私有的,请确保已向 registry 进行身份验证,然后再上传容器镜像。

    podman build --format=oci -t quay.io/<user_name>/<repository_name>:<tag_name> .
    podman push quay.io/<user_name>/<repository_name>:<tag_name>

第 2 章 在单模型服务平台上部署模型

您可以使用单模型服务平台来部署大型模型,如大型语言模型(LLM)。这个平台基于 KServe 组件。您可以在 高级 或标准模式中 部署模型。高级模式使用 Red Hat OpenShift Serverless 进行无服务器部署,而标准模式使用 KServe Raw Deployment,且不需要无服务器依赖项。

在单模式服务平台上,每个模型都从其自己的专用模型服务器进行部署。这有助于您部署、监控、扩展和维护需要更多资源的大型模型。

2.1. 关于 KServe 部署模式

您可以在 高级 或标准 部署模式中部署模型。

高级部署模式使用 Knative Serverless。默认情况下,KServe 与 Red Hat OpenShift Serverless 和 Red Hat OpenShift Service Mesh 集成,以便在单模式服务平台上部署模型。Red Hat Serverless 基于开源 Knative 项目,需要 Red Hat OpenShift Serverless Operator。

另外,您可以使用标准部署模式,它使用 KServe RawDeployment 模式,且不需要 Red Hat OpenShift Serverless Operator、Red Hat OpenShift Service Mesh 或 Authorino。

如果为 高级 部署模式配置 KServe,您可以设置数据科学项目,以 高级 和标准 部署模式提供模型。但是,如果您只 为标准 部署模式配置 KServe,则只能使用 标准 部署模式。

使用每个部署模式都有优点和缺点:

2.1.1. 高级模式

优点:

  • 根据请求卷启用自动扩展:

    • 在接收传入请求时,资源会自动扩展。
    • 在高峰时间优化资源使用并保持性能。
  • 支持使用 Knative 缩减到零和从零缩减:

    • 当没有传入请求时,允许资源完全缩减。
    • 通过不运行空闲资源来节约成本。

缺点:

  • 具有自定义限制:

    • Serverless 由 Knative 支持,并隐式继承相同的设计选择,比如在挂载多个卷时。
  • 依赖于 Knative 进行扩展:

    • 与传统的扩展方法相比,设置和管理增加了额外的复杂性。
  • 集群范围内的组件:

    • 如果集群已经配置了 Serverless,则必须手动配置集群使其使用 OpenShift AI。

2.1.2. 标准模式

优点:

  • 启用 Kubernetes 资源的部署,如 DeploymentServiceRouteHorizontal Pod Autoscaler,而无需其他依赖项,如 Red Hat Serverless、Red Hat Service Mesh 和 Authorino。

    • 与高级模式相比,生成的模型部署的资源占用较小。
  • 启用传统的 Deployment/Pod 配置,如挂载多个卷,它们无法使用 Knative 提供。

    • 对于需要复杂配置或多个存储挂载的应用程序有用。

缺点:

  • 不支持自动扩展:

    • 不支持在空闲时自动缩放为零资源。
    • 可能会导致流量低期间成本更高。

2.2. 在单模型服务平台上部署模型

当您启用了单模式服务平台后,您可以启用预安装或自定义模型运行时,并在平台上部署模型。

您可以使用预安装的模型服务运行时启动服务模型,而无需自行修改或定义运行时。有关添加自定义运行时的帮助,请参阅为单模型服务平台添加自定义模型运行时

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 已安装 KServe。
  • 您已启用了 single-model 服务平台。
  • (仅限高级部署)要为部署的模型启用令牌身份验证和外部模型路由,您已添加了 Authorino 作为授权提供程序。如需更多信息,请参阅为 单模式服务平台添加授权供应商
  • 您已创建了数据科学项目。
  • 您可以访问 S3 兼容对象存储。
  • 对于您要部署的模型,您知道 S3 兼容对象存储桶或开放容器项目(OCI)容器中的关联 URI。
  • 要使用 Caikit-TGIS 运行时,您需要将模型转换为 Caikit 格式。例如,请参阅 cai kit-tgis-serving 存储库中的 Hugging Face Hub 模型转换为 Caikit 格式
  • 如果要将图形处理单元(GPU)与模型服务器搭配使用,在 OpenShift AI 中启用了 GPU 支持。如果使用 NVIDIA GPU,请参阅启用 NVIDIA GPU。如果使用 AMD GPU,请参阅 AMD GPU 集成
  • 要使用 vLLM 运行时,已在 OpenShift AI 中启用 GPU 支持,并在集群中安装并配置了 Node Feature Discovery Operator。如需更多信息,请参阅安装 Node Feature Discovery Operator启用 NVIDIA GPU
  • 要将 vLLM Intel Gaudi Accelerator ServingRuntime 用于 KServe 运行时,您可以在 OpenShift AI 中启用对混合处理单元(HPU)的支持。这包括安装 Intel Gaudi Base Operator 和配置硬件配置集。如需更多信息,请参阅 AMD 文档中的 Intel Gaudi Base Operator OpenShift 安装使用硬件配置集
  • 要将 vLLM AMD GPU ServingRuntime 用于 KServe 运行时,您可以在 OpenShift AI 中启用了对 AMD 图形处理单元(GPU)的支持。这包括安装 AMD GPU operator 和配置硬件配置集。如需更多信息,请参阅在 OpenShift 上部署 AMD GPU Operator 以及使用硬件配置集

    注意

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

  • 部署 RHEL AI 模型:

    • 您已为 KServe 运行时启用了 vLLM NVIDIA GPU ServingRuntime
    • 您已从红帽容器注册中心下载了模型,并将其上传到 S3 兼容对象存储。

流程

  1. 在左侧菜单中,单击 Data Science projects

    Data Science 项目页将打开。

  2. 点击您要在其中部署模型的项目的名称。

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

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

    • 如果您看到 ​Single-model 服务平台 标题,请点击 Deploy model on the 标题。
    • 如果没有看到任何标题,请点击 Deploy model 按钮。

    此时会打开 Deploy model 对话框。

  5. Model deployment name 字段中输入您要部署的模型的唯一名称。
  6. Serving runtime 字段中,选择一个已启用的运行时。如果存在项目范围内的运行时,Serving 运行时 列表包含子标题,以区分全局运行时和项目范围内的运行时。
  7. Model 框架(名称 - version) 列表中选择一个值。
  8. Deployment 模式 列表中,选择 standard 或 advanced。如需有关部署模式的更多信息,请参阅关于 KServe 部署模式
  9. 在要部署的模型服务器副本的 Number of model server replicas 中,指定一个值。
  10. 只有在您创建了硬件配置集时,以下选项才可用:

    1. Hardware profile 列表中,选择一个硬件配置文件。如果存在项目范围内的硬件配置文件,则 Hardware profile 列表包含子标题,以区分全局硬件配置文件和项目范围内的硬件配置文件。

      重要

      默认情况下,硬件配置集在仪表板导航菜单和用户界面中隐藏,而加速器配置集保持可见。另外,与已弃用的加速器配置集功能关联的用户界面组件仍然会显示。如果启用了硬件配置文件,则会显示 Hardware 配置集 列表,而不是 加速器配置集列表。要在仪表板导航菜单中显示 Settings → Hardware profiles 选项,以及与硬件配置集关联的用户界面组件,请在 OpenShift 中的 OdhDashboardConfig 自定义资源(CR)中将 disableHardwareProfiles 值设置为 false。有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板

    2. 可选更改这些默认值,请点 Customize resource requests and limit,并输入新的最小值(request)和最大值(limit)值。硬件配置集指定分配给容器的 CPU 数量和内存量,为两者设置保证最小值(request)和最大值(limit)。
  11. 可选:在 Model route 部分中,选择 Make deployed model available via an external route 复选框,使部署的模型可供外部客户端使用。
  12. 要求对部署的模型对令牌身份验证进行推测请求,请执行以下操作:

    1. 选择 Require token authentication
    2. Service account name 字段中,输入要为其生成令牌的服务帐户名称。
    3. 要添加额外服务帐户,请点 Add a service account 并输入另一个服务帐户名称。
  13. 要指定模型的位置,请执行以下操作之一:

    • 使用现有连接

      1. 选择现有连接
      2. Name 列表中,选择一个您之前定义的连接。

        1. 对于 S3 兼容对象存储 :在 Path 字段中输入指定数据源中包含模型的文件夹路径。

          重要

          OpenVINO Model Server 运行时对指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025

        2. 对于 Open Container Image 连接 :在 OCI 存储位置 字段中,输入模型所在的模型 URI。

          注意

          如果您使用现有 S3、URI 或 OCI 数据连接部署注册的模型版本,可能会自动填充一些连接详情。这取决于数据连接的类型以及数据科学项目中可用的匹配连接数量。例如,如果只有一个匹配的连接,则路径、URI、端点、模型 URI、存储桶和区域等字段可能会自动填充。匹配连接将标记为 建议

    • 使用新连接

      1. 要定义模型可访问的新连接,请选择 New connection

        1. Add connection modal 中,选择 Connection type。与 OCI 兼容的 registryS3 兼容对象存储和 URI 选项是预安装的连接类型。如果您的 OpenShift AI 管理员添加了其他选项,则可能会使用其他选项。

          此时会打开 Add connection 表单,其中包含特定于您选择的连接类型的字段。

      2. 填写连接详情字段。

        重要

        如果您的连接类型是 S3 兼容对象存储,您必须提供包含您的数据文件的文件夹路径。OpenVINO Model Server 运行时对指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025

  14. (可选)在 配置参数 部分中自定义运行时参数:

    1. 修改附加服务 运行时参数中的值,以定义部署模型的行为方式。
    2. 修改 附加环境变量中的值,以在模型环境中定义变量。

      Configuration parameters 部分显示预定义的服务运行时参数(若有可用)。

      注意

      不要修改端口或模型服务运行时参数,因为它们需要设置特定的值。覆盖这些参数可能会导致部署失败。

  15. Deploy

验证

  • 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model deployments 页面中显示 Status 列中带有复选标记。

2.3. 使用 CLI 部署存储在 OCI 镜像中的模型

您可以从命令行界面部署存储在 OCI 镜像中的模型。

以下流程使用 ONNX 格式部署 mobileNet v2-7 模型的示例,存储在 OpenVINO 模型服务器上的 OCI 镜像中。

注意

默认情况下,在 KServe 中,模型在集群外公开,不受身份验证的保护。

先决条件

流程

  1. 创建一个项目来部署模型:

    oc new-project oci-model-example
  2. 使用 OpenShift AI Applications 项目 kserve-ovms 模板来创建 ServingRuntime 资源,并在新项目中配置 OpenVINO 模型服务器:

    oc process -n redhat-ods-applications -o yaml kserve-ovms | oc apply -f -
  3. 验证名为 kserve-ovmsServingRuntime 是否已创建:

    oc get servingruntimes

    该命令应该返回类似如下的输出:

    NAME          DISABLED   MODELTYPE     CONTAINERS         AGE
    kserve-ovms              openvino_ir   kserve-container   1m
  4. 根据模型是否存储于私有还是公共 OCI 存储库,创建 InferenceService YAML 资源:

    • 对于存储在公共 OCI 存储库中的模型,创建一个带有以下值的 InferenceService YAML 文件,将 < user_name>、< repository_name>、<tag_name >、< tag_name > 的值替换为特定于您的环境的值:

      apiVersion: serving.kserve.io/v1beta1
      kind: InferenceService
      metadata:
        name: sample-isvc-using-oci
      spec:
        predictor:
          model:
            runtime: kserve-ovms # Ensure this matches the name of the ServingRuntime resource
            modelFormat:
              name: onnx
            storageUri: oci://quay.io/<user_name>/<repository_name>:<tag_name>
            resources:
              requests:
                memory: 500Mi
                cpu: 100m
                # nvidia.com/gpu: "1" # Only required if you have GPUs available and the model and runtime will use it
              limits:
                memory: 4Gi
                cpu: 500m
                # nvidia.com/gpu: "1" # Only required if you have GPUs available and the model and runtime will use it
    • 对于存储在私有 OCI 存储库中的模型,请创建一个 InferenceService YAML 文件,该文件在 spec.predictor.imagePullSecrets 字段中指定您的 pull secret,如下例所示:

      apiVersion: serving.kserve.io/v1beta1
      kind: InferenceService
      metadata:
        name: sample-isvc-using-private-oci
      spec:
        predictor:
          model:
            runtime: kserve-ovms # Ensure this matches the name of the ServingRuntime resource
            modelFormat:
              name: onnx
            storageUri: oci://quay.io/<user_name>/<repository_name>:<tag_name>
            resources:
              requests:
                memory: 500Mi
                cpu: 100m
                # nvidia.com/gpu: "1" # Only required if you have GPUs available and the model and runtime will use it
              limits:
                memory: 4Gi
                cpu: 500m
                # nvidia.com/gpu: "1" # Only required if you have GPUs available and the model and runtime will use it
          imagePullSecrets: # Specify image pull secrets to use for fetching container images, including OCI model images
          - name: <pull-secret-name>

      创建 InferenceService 资源后,KServe 会部署 storageUri 字段引用的 OCI 镜像中存储的模型。

验证

检查部署的状态:

oc get inferenceservice

该命令应返回包含信息的输出,如部署模型的 URL 及其就绪状态。

2.4. 单型号服务平台上的监控模型

您可以监控单一模型服务平台上部署的模型,以查看性能和资源使用量指标。

2.4.1. 查看已部署模型的性能指标

您可以监控以下指标,以了解在单型号服务平台上部署的特定模型:

  • 请求数 - 特定模型失败的请求数。
  • 平均响应时间(ms)- 对请求做出特定模型的平均时间
  • CPU 使用率(%) -特定模型当前使用的每个模型副本的 CPU 限值百分比。
  • 内存使用率(%) -特定模型使用的每个模型副本的内存限值百分比。

您可以为这些指标指定时间范围和刷新间隔,例如,当峰值使用小时以及模型在指定时间执行的方式时。

先决条件

  • 已安装 Red Hat OpenShift AI。
  • 您已登陆到 Red Hat OpenShift AI。
  • 以下仪表板配置选项被设置为默认值,如下所示:

    disablePerformanceMetrics:false
    disableKServeMetrics:false

    有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板

  • 已使用预安装的运行时在单模式服务平台上部署了模型。

    注意

    只有在使用预安装模型服务运行时或从预安装运行时重复的自定义运行时,指标只支持部署模型。

流程

  1. 在 OpenShift AI 仪表板导航菜单中点 Data Science projects

    Data Science 项目页将打开。

  2. 点击包含您要监控的数据科学模型的项目名称。
  3. 在项目详情页面中,点 Models 选项卡。
  4. 选择您感兴趣的模型。
  5. Endpoint performance 选项卡中,设置以下选项:

    • 时间范围 -指定跟踪指标的时长。您可以选择其中一个值:1 小时、24 小时、7 天和 30 天。
    • 刷新 interval - 指定指标页面中图形的频率(显示最新的数据)。您可以选择以下值之一:15 秒、30 秒、1 分钟、5 分钟、15 分钟、30 分钟、1 小时、2 小时和 1 天。
  6. 向下滚动以查看请求数、平均响应时间、CPU 使用率和内存使用率的数据图形。

验证

Endpoint 性能 选项卡显示模型的指标图。

2.4.2. 查看单模型服务平台的模型运行时指标

当集群管理员为单模式服务平台配置了监控时,非管理员用户可以使用 OpenShift Web 控制台查看 KServe 组件的模型运行时指标。

先决条件

流程

  1. 登录 OpenShift Web 控制台。
  2. 切换到 Developer 视角。
  3. 在左侧菜单中,点 Observe
  4. 如在 Red Hat OpenShift Dedicated 中监控项目指标或监控 Red Hat OpenShift Service on AWS 中的项目指标 中所述,使用 Web 控制台运行对 caikit swig、tgi nbdkitovms swigvllm:* model-serving 运行时指标的查询。您还可以对与 OpenShift Service Mesh 相关的 istio swig 指标运行查询。此时会显示一些示例。

    1. 以下查询显示了使用 vLLM 运行时部署模型的时间段内成功推测请求数:

      sum(increase(vllm:request_success_total{namespace=${namespace},model_name=${model_name}}[${rate_interval}]))
    2. 以下查询显示了使用独立 TGIS 运行时部署的模型的成功推测请求数:

      sum(increase(tgi_request_success{namespace=${namespace}, pod=~${model_name}-predictor-.*}[${rate_interval}]))
    3. 以下查询显示了使用 Caikit Standalone 运行时部署的模型的成功 inference 请求数量:

      sum(increase(predict_rpc_count_total{namespace=${namespace},code=OK,model_id=${model_name}}[${rate_interval}]))
    4. 以下查询显示了使用 OpenVINO Model Server 运行时部署的模型的成功 inference 请求数量:

      sum(increase(ovms_requests_success{namespace=${namespace},name=${model_name}}[${rate_interval}]))

您可以在 NVIDIA NIM 模型服务平台上使用 NVIDIA NIM inference 服务部署模型。

NVIDIA NIM 是 NVIDIA AI Enterprise 的一部分,是设计用于安全可靠的部署高性能 AI 模型影响云、数据中心和工作站的微服务。

3.1. 在 NVIDIA NIM 模型服务平台上部署模型

当您启用了 NVIDIA NIM 模型服务平台 时,您可以开始在平台上部署 NVIDIA 优化模型。

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 您已启用了 NVIDIA NIM 模型服务平台
  • 您已创建了数据科学项目。
  • 您已在 OpenShift AI 中启用了图形处理单元(GPU)的支持。这包括安装 Node Feature Discovery Operator 和 NVIDIA GPU Operator。如需更多信息,请参阅安装 Node Feature Discovery Operator启用 NVIDIA GPU

流程

  1. 在左侧菜单中,单击 Data Science projects

    Data Science 项目页将打开。

  2. 点击您要在其中部署模型的项目的名称。

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

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

    • ​NVIDIA NIM 模型服务平台 标题上,点标题上的 Select NVIDIA NIM,然后点 Deploy model
    • 如果您之前选择了 NVIDIA NIM 模型服务类型,则 Models 页面会显示右上角的 NVIDIA 模型 服务以及 Deploy model 按钮。要继续,请单击 Deploy model

    此时会打开 Deploy model 对话框。

  5. 配置部署模型的属性,如下所示:

    1. Model deployment name 字段中输入部署的唯一名称。
    2. NVIDIA NIM 列表中,选择您要部署的 NVIDIA NIM 模型。如需更多信息,请参阅支持的模型
    3. NVIDIA NIM 存储大小字段中,指定将创建用于存储 NVIDIA NIM 模型的集群存储 实例的大小。

      注意

      在 OpenShift AI 中重新定义由 Amazon EBS 支持的 PersistentVolumeClaim (PVC)大小时,您可能会遇到 VolumeModificationRateExceeded :您已达到每个卷限制的最大修改率。要避免这个错误,在每个 EBS 卷修改之间至少等待 6 小时。如果您在冷却过期前重新定义 PVC 的大小,Amazon EBS CSI 驱动程序(ebs.csi.aws.com)会失败,并显示以下错误。这个错误是一个 Amazon EBS 服务限制,适用于使用由 EBS 支持的 PVC 的所有工作负载。

    4. 在要部署的模型服务器副本的 Number of model server replicas 中,指定一个值。
    5. Model server size 列表中选择一个值。
  6. Hardware profile 列表中,选择一个硬件配置文件。

    重要

    默认情况下,硬件配置集在仪表板导航菜单和用户界面中隐藏,而加速器配置集保持可见。另外,与已弃用的加速器配置集功能关联的用户界面组件仍然会显示。如果启用了硬件配置文件,则会显示 Hardware 配置集 列表,而不是 加速器配置集列表。要在仪表板导航菜单中显示 Settings → Hardware profiles 选项,以及与硬件配置集关联的用户界面组件,请在 OpenShift 中的 OdhDashboardConfig 自定义资源(CR)中将 disableHardwareProfiles 值设置为 false。有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板

  7. 可选:点 Customize resource requests and limit 并更新以下值:

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

    1. 选择 Require token authentication
    2. Service account name 字段中,输入要为其生成令牌的服务帐户名称。
    3. 要添加额外服务帐户,请点 Add a service account 并输入另一个服务帐户名称。
  10. Deploy

验证

  • 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model deployments 页面中显示 Status 列中带有复选标记。

3.2. 查看 NIM 模型的 NVIDIA NIM 指标

在 OpenShift AI 中,您可以观察在 NVIDIA NIM 模型服务平台上部署的 NIM 模型的以下 NVIDIA NIM 指标:

  • GPU 缓存使用量随时间(ms)
  • 当前正在运行、等待和最大请求计数
  • 令牌计数
  • 第一次令牌
  • 每个输出令牌的时间
  • 请求结果

您可以为这些指标指定时间范围和刷新间隔,以帮助您决定在指定时间的峰值使用小时和型号性能。

先决条件

  • 您已启用了 NVIDIA NIM 模型服务平台。
  • 您已在 NVIDIA NIM 模型服务平台上部署了 NIM 模型。
  • 集群管理员为您的部署启用了指标集合和图形生成。
  • disableKServeMetrics OpenShift AI 仪表板配置选项被设置为默认值 false

    disableKServeMetrics: false

    有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板

流程

  1. 在 OpenShift AI 仪表板导航菜单中点 Data Science projects

    Data Science 项目页将打开。

  2. 点击包含您要监控的 NIM 模型的项目名称。
  3. 在项目详情页面中,点 Models 选项卡。
  4. 点击您要观察的 NIM 模型。
  5. NIM Metrics 选项卡中,设置以下选项:

    • 时间范围 -指定跟踪指标的时长。您可以选择其中一个值:1 小时、24 小时、7 天和 30 天。
    • 刷新 interval - 指定指标页面中图形的频率(显示最新的数据)。您可以选择以下值之一:15 秒、30 秒、1 分钟、5 分钟、15 分钟、30 分钟、1 小时、2 小时和 1 天。
  6. 向下滚动以查看 NIM 指标的数据图形。

验证

NIM Metrics 选项卡显示所部署的 NIM 模型的 NIM 指标图。

3.3. 查看 NIM 模型的性能指标

您可以观察在 NVIDIA NIM 模型服务平台上部署的 NIM 模型的以下性能指标:

  • 请求数 - 特定模型失败的请求数。
  • 平均响应时间(ms)- 对请求做出特定模型的平均时间
  • CPU 使用率(%) -特定模型当前使用的每个模型副本的 CPU 限值百分比。
  • 内存使用率(%) -特定模型使用的每个模型副本的内存限值百分比。

您可以为这些指标指定时间范围和刷新间隔,以帮助您决定在指定时间的峰值使用小时和型号性能。

先决条件

  • 您已启用了 NVIDIA NIM 模型服务平台。
  • 您已在 NVIDIA NIM 模型服务平台上部署了 NIM 模型。
  • 集群管理员为您的部署启用了指标集合和图形生成。
  • disableKServeMetrics OpenShift AI 仪表板配置选项被设置为默认值 false

    disableKServeMetrics: false

    有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板

流程

  1. 在 OpenShift AI 仪表板导航菜单中点 Data Science projects

    Data Science 项目页将打开。

  2. 点击包含您要监控的 NIM 模型的项目名称。
  3. 在项目详情页面中,点 Models 选项卡。
  4. 点击您要观察的 NIM 模型。
  5. Endpoint performance 选项卡中,设置以下选项:

    • 时间范围 -指定跟踪指标的时长。您可以选择其中一个值:1 小时、24 小时、7 天和 30 天。
    • refresh interval - 指定指标页面上图形的频率,以显示最新的数据。您可以选择以下值之一:15 秒、30 秒、1 分钟、5 分钟、15 分钟、30 分钟、1 小时、2 小时和 1 天。
  6. 向下滚动以查看性能指标的数据图形。

验证

Endpoint 性能 选项卡显示所部署的 NIM 模型的性能指标图。

第 4 章 在多型号服务平台上部署模型

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

重要

从 OpenShift AI 版本 2.19 开始,基于 ModelMesh 的多模式服务平台已弃用。您可以继续在多模式服务平台上部署模型,但建议您迁移到单一模式服务平台。

如需了解更多相关信息,或有关使用单一模式服务平台的帮助,请联系您的客户经理。

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

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

注意

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

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 您已创建了可添加模型服务器的数据科学项目。
  • 您已启用了多型号服务平台。
  • 如果要将自定义模型运行时用于模型服务器,您添加了并启用运行时。请参阅 添加自定义模型运行时
  • 如果要将图形处理单元(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. Accelerator 配置集 列表中,选择一个加速器配置集。

    重要

    默认情况下,硬件配置集在仪表板导航菜单和用户界面中隐藏,而加速器配置集保持可见。另外,与已弃用的加速器配置集功能关联的用户界面组件仍然会显示。如果启用了硬件配置文件,则会显示 Hardware 配置集 列表,而不是 加速器配置集列表。要在仪表板导航菜单中显示 Settings → Hardware profiles 选项,以及与硬件配置集关联的用户界面组件,请在 OpenShift 中的 OdhDashboardConfig 自定义资源(CR)中将 disableHardwareProfiles 值设置为 false。有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板

  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

4.2. 删除模型服务器

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

注意

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

先决条件

  • 您已创建了数据科学项目和关联的模型服务器。
  • 您已通知用户访问模型将不再可用的应用程序。

流程

  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 选项卡中。

4.3. 使用多模式服务平台部署模型

您可以在 OpenShift AI 上部署受培训的模型,以便测试并实施它们到智能应用程序中。部署模型使其可作为服务使用 API 访问。这可让您根据数据输入返回预测。

当您启用了多模式服务平台时,您可以在平台上部署模型。

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 您已启用了多型号服务平台。
  • 您已创建了数据科学项目并添加了模型服务器。
  • 您可以访问 S3 兼容对象存储。
  • 对于您要部署的模型,您知道 S3 兼容对象存储桶中的关联文件夹路径。

流程

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

    Data Science 项目页将打开。

  2. 点击您要在其中部署模型的项目的名称。

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

  3. Models 选项卡。
  4. 单击 Deploy model
  5. 配置部署模型的属性,如下所示:

    1. Model name 字段中输入您要部署的模型的唯一名称。
    2. Model 框架 列表中,为您的模型选择一个框架。

      注意

      Model 框架 列表仅显示配置模型服务器时指定的模型运行时支持的框架。

    3. 要指定您要从 S3 兼容对象存储部署的模型位置,请执行以下一组操作:

      • 使用现有连接

        1. 选择现有连接
        2. Name 列表中,选择一个您之前定义的连接。
        3. Path 字段中输入在指定数据源中包含模型的文件夹路径。

          注意

          如果您使用现有 S3 或 URI 数据连接部署注册的模型版本,可能会自动填充一些连接详情。这取决于数据连接的类型以及数据科学项目中可用的匹配连接数量。例如,如果只有一个匹配的连接,则路径、URI、端点、存储桶和区域等字段可能会自动填充。匹配连接将标记为 建议

      • 使用新连接

        1. 要定义模型可访问的新连接,请选择 New connection
        2. Add connection modal 中,选择 Connection typeS3 兼容对象存储URI 选项是预安装的连接类型。如果您的 OpenShift AI 管理员添加了其他选项,则可能会使用其他选项。

          此时会打开 Add connection 表单,其中包含特定于您选择的连接类型的字段。

        3. 输入连接详情字段。
    4. (可选)在 配置参数 部分中自定义运行时参数:

      1. 修改附加服务 运行时参数中的值,以定义部署模型的行为方式。
      2. 修改 附加环境变量中的值,以在模型环境中定义变量。
    5. Deploy

验证

  • 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model deployments 页面中显示 Status 列中带有复选标记。

4.4. 查看部署的模型

要分析您的工作结果,您可以在 Red Hat OpenShift AI 中查看已部署模型的列表。您还可以查看部署模型及其端点的当前状态。

先决条件

  • 您已登陆到 Red Hat OpenShift AI。

流程

  1. 在 OpenShift AI 仪表板中点 ModelsModel deployments

    此时会打开 Model deployments 页面。

    对于每个模型,页面会显示模型名称、部署模型的项目、模型使用的模型运行时以及部署状态等详情。

  2. 可选: 对于给定模型,点 Inference endpoint 列中的链接来查看部署模型的 inference 端点。

验证

  • Model 部署 页面中会显示之前部署的数据科学模型列表。

4.5. 更新已部署模型的部署属性

您可以更新之前部署的模型的部署属性。例如,您可以更改模型的连接和名称。

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 您已在 OpenShift AI 中部署了模型。

流程

  1. 在 OpenShift AI 仪表板中点 ModelsModel deployments

    此时会打开 Model deployments 页面。

  2. 点您要更新的部署属性旁的操作菜单 (),然后点 Edit

    这会打开 Edit model 对话框。

  3. 更新模型的部署属性,如下所示:

    1. Model name 字段中,为您的模型输入一个新的、唯一的名称。
    2. Model servers 列表中,为您的模型选择一个模型服务器。
    3. Model 框架 列表中,为您的模型选择一个框架。

      注意

      Model 框架 列表仅显示配置模型服务器时指定的模型运行时支持的框架。

    4. (可选)通过指定现有连接或创建新连接来更新连接。
    5. 单击 重新部署

验证

  • 您更新的部署属性的模型会显示在仪表板的 Model deployments 页面中。

4.6. 删除部署的模型

您可以删除之前部署的模型。这可让您删除不再需要的部署模型。

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 您已部署了模型。

流程

  1. 在 OpenShift AI 仪表板中点 ModelsModel deployments

    此时会打开 Model deployments 页面。

  2. 点您要删除的部署模型旁的操作菜单 (),然后点 Delete

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

  3. 在文本字段中输入部署模型的名称,以确认您想要删除它。
  4. Delete deployed model

验证

  • 您删除的模型不再显示在 Model deployments 页面中。

4.7. 为多模型服务平台配置监控

多型号服务平台包括 ModelMesh 组件的模型和模型服务器指标。ModelMesh 生成自己的指标集合,不依赖于底层模型定义运行时来提供它们。ModelMesh 生成的指标集合包括模型请求率和时间的指标、模型加载和卸载率、时间和大小、内部排队延迟、容量和使用情况、缓存状态以及最早使用的模型。如需更多信息,请参阅 ModelMesh 指标

配置监控后,您可以查看 ModelMesh 组件的指标。

先决条件

流程

  1. 在一个终端窗口中,如果您还没有以集群管理员登录到 OpenShift 集群,请登录 OpenShift CLI,如下例所示:

    $ oc login <openshift_cluster_url> -u <admin_username> -p <password>
  2. 在名为 uwm-cm-conf.yaml 的 YAML 文件中定义 ConfigMap 对象,其内容如下:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: user-workload-monitoring-config
      namespace: openshift-user-workload-monitoring
    data:
      config.yaml: |
        prometheus:
          logLevel: debug
          retention: 15d

    user-workload-monitoring-config 对象配置监控用户定义的项目的组件。观察到保留时间被设置为推荐的值 15 天。

  3. 应用配置以创建 user-workload-monitoring-config 对象。

    $ oc apply -f uwm-cm-conf.yaml
  4. 在名为 uwm-cm-enable.yaml 的 YAML 文件中定义另一个 ConfigMap 对象,其内容如下:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
        enableUserWorkload: true

    cluster-monitoring-config 对象为用户定义的项目启用监控。

  5. 应用配置以创建 cluster-monitoring-config 对象。

    $ oc apply -f uwm-cm-enable.yaml

4.8. 查看多model服务平台的模型运行时指标

集群管理员为多模式服务平台配置了监控后,非管理员用户可以使用 OpenShift Web 控制台查看 ModelMesh 组件的模型运行时指标。

先决条件

流程

  1. 登录 OpenShift Web 控制台。
  2. 切换到 Developer 视角。
  3. 在左侧菜单中,点 Observe
  4. 如在 Red Hat OpenShift Dedicated 中监控项目指标或监控 Red Hat OpenShift Service on AWS 中的项目指标 中所述,使用 Web 控制台运行对 modelmeshLiveMigration 指标的 查询。

4.9. 查看模型服务器中所有模型的性能指标

您可以监控模型服务器上部署的所有模型的以下指标:

  • 每 5 分钟的 HTTP 请求 - 服务器上所有模型失败的 HTTP 请求数。
  • 平均响应时间(ms) - 对于服务器上的所有模型,模型服务器响应请求的平均时间。
  • CPU 使用率(%) - 服务器上所有模型目前使用的 CPU 容量百分比。
  • 内存使用率(%) - 服务器上所有模型目前使用的系统内存的百分比。

您可以为这些指标指定时间范围和刷新间隔,例如,当峰值使用小时以及模型在指定时间执行的方式时。

先决条件

  • 已安装 Red Hat OpenShift AI。
  • 在安装 OpenShift AI 的 OpenShift 集群上,启用了用户工作负载监控。
  • 您已登陆到 Red Hat OpenShift AI。
  • 您已在多模式服务平台上部署了模型。

流程

  1. 在 OpenShift AI 仪表板导航菜单中点 Data Science projects

    Data Science 项目页将打开。

  2. 点击包含您要监控的数据科学模型的项目名称。
  3. 在项目详情页面中,点 Models 选项卡。
  4. 在您感兴趣的模型服务器所在的行中,点操作菜单(ProductShortName),然后选择 View model server metrics
  5. 可选:在模型服务器的指标页面中设置以下选项:

    • 时间范围 -指定跟踪指标的时长。您可以选择其中一个值:1 小时、24 小时、7 天和 30 天。
    • 刷新 interval - 指定指标页面中图形的频率(显示最新的数据)。您可以选择以下值之一:15 秒、30 秒、1 分钟、5 分钟、15 分钟、30 分钟、1 小时、2 小时和 1 天。
  6. 向下滚动,以每 5 分钟查看 HTTP 请求的数据图形、平均响应时间、CPU 利用率和内存使用率。

验证

在模型服务器的指标页面中,图形在性能指标上提供数据。

4.10. 查看已部署模型的 HTTP 请求指标

您可以查看说明在多模式服务平台上部署的特定模型失败的 HTTP 请求或成功的图形。

先决条件

  • 已安装 Red Hat OpenShift AI。
  • 在安装 OpenShift AI 的 OpenShift 集群上,启用了用户工作负载监控。
  • 以下仪表板配置选项被设置为默认值,如下所示:

    disablePerformanceMetrics:false
    disableKServeMetrics:false

    有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板

  • 您已登陆到 Red Hat OpenShift AI。
  • 您已在多模式服务平台上部署了模型。

流程

  1. 在 OpenShift AI 仪表板中点 ModelsModel deployments
  2. Model deployments 页面中,选择您感兴趣的模型。
  3. 可选:在 Endpoint performance 选项卡中设置以下选项:

    • 时间范围 -指定跟踪指标的时长。您可以选择其中一个值:1 小时、24 小时、7 天和 30 天。
    • 刷新 interval - 指定指标页面中图形的频率(显示最新的数据)。您可以选择以下值之一:15 秒、30 秒、1 分钟、5 分钟、15 分钟、30 分钟、1 小时、2 小时和 1 天。

验证

Endpoint performance 选项卡显示模型的 HTTP 指标图。

第 5 章 对部署的模型发出推测请求

当您部署模型时,可作为服务使用 API 请求来访问。这可让您根据请求中提供的数据从模型中获取预测。

5.1. 访问已部署模型的身份验证令牌

如果您通过启用令牌身份验证来保护您的模型 inference 端点,您必须了解如何访问身份验证令牌,以便在您的推测请求中指定它。

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 已使用单模式服务平台部署了模型。

流程

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

    Data Science 项目页将打开。

  2. 点包含部署模型的项目名称。

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

  3. Models 选项卡。
  4. Models 和 model servers 列表中,展开您的模型部分。

    您的身份验证令牌显示在 Token secret 字段中的 Token authentication 部分中。

  5. 可选: 要复制在 inference 请求中使用的身份验证令牌,请点击令牌值旁的 Copy 按钮( osd copy )。

5.2. 访问已部署模型的 inference 端点

要对部署的模型发出推测请求,您必须了解如何访问可用的 inference 端点。

有关与支持的运行时和示例命令一起使用的路径列表,请参阅 Inference 端点

先决条件

  • 您已登陆到 Red Hat OpenShift AI。
  • 已使用单模式服务平台部署了模型。
  • 如果为部署的模型启用了令牌身份验证,则具有关联的令牌值。

流程

  1. 在 OpenShift AI 仪表板中点 ModelsModel deployments

    模型的 inference 端点显示在 Inference endpoint 字段中。

  2. 根据您要使用模型执行的操作(如果模型支持该操作),复制 inference 端点,然后在 URL 的末尾添加一个路径。
  3. 使用端点向部署的模型发出 API 请求。

当您使用单模式服务平台部署模型时,该模型可作为服务使用 API 请求来访问。这可让您根据数据输入返回预测。要使用 API 请求与部署的模型交互,您必须知道模型的 inference 端点。

另外,如果您通过启用令牌身份验证来保护您的 inference 端点,您必须了解如何访问身份验证令牌,以便在您的推测请求中指定它。

5.4. inference 端点

这些示例演示了如何使用 inference 端点来查询模型。

注意

如果您在部署模型时启用了令牌身份验证,请添加 Authorization 标头并指定令牌值。

5.4.1. Caikit TGIS ServingRuntime for KServe

  • :443/api/v1/task/text-generation
  • :443/api/v1/task/server-streaming-text-generation

示例命令

curl --json '{"model_id": "<model_name__>", "inputs": "<text>"}' https://<inference_endpoint_url>:443/api/v1/task/server-streaming-text-generation -H 'Authorization: Bearer <token>'

5.4.2. Caikit Standalone ServingRuntime for KServe

如果您为多个模型提供服务,您可以查询 /info/models:443 caikit.runtime.info.InfoService/GetModelsInfo 来查看服务模型列表。

REST 端点

  • /api/v1/task/embedding
  • /api/v1/task/embedding-tasks
  • /api/v1/task/sentence-similarity
  • /api/v1/task/sentence-similarity-tasks
  • /api/v1/task/rerank
  • /api/v1/task/rerank-tasks
  • /info/models
  • /info/version
  • /info/runtime

gRPC endpoints

  • :443 caikit.runtime.Nlp.NlpService/EmbeddingTaskPredict
  • :443 caikit.runtime.Nlp.NlpService/EmbeddingTasksPredict
  • :443 caikit.runtime.Nlp.NlpService/SentenceSimilarityTaskPredict
  • :443 caikit.runtime.Nlp.NlpService/SentenceSimilarityTasksPredict
  • :443 caikit.runtime.Nlp.NlpService/RerankTaskPredict
  • :443 caikit.runtime.Nlp.NlpService/RerankTasksPredict
  • :443 caikit.runtime.info.InfoService/GetModelsInfo
  • :443 caikit.runtime.info.InfoService/GetRuntimeInfo
注意

默认情况下,Caikit 独立运行时会公开 REST 端点。要使用 gRPC 协议,请手动部署自定义 Caikit Standalone ServingRuntime。如需更多信息,请参阅为单模型服务平台添加自定义模型运行时

caikit-tgis-serving GitHub 存储库中提供了一个示例清单

REST

curl -H 'Content-Type: application/json' -d '{"inputs": "<text>", "model_id": "<model_id>"}' <inference_endpoint_url>/api/v1/task/embedding -H 'Authorization: Bearer <token>'

gRPC

grpcurl -d '{"text": "<text>"}' -H \"mm-model-id: <model_id>\" <inference_endpoint_url>:443 caikit.runtime.Nlp.NlpService/EmbeddingTaskPredict -H 'Authorization: Bearer <token>'

5.4.3. TGIS Standalone ServingRuntime for KServe

重要

KServe 文本 Generation Inference Server (TGIS) Standalone ServingRuntime 已弃用。如需更多信息,请参阅 OpenShift AI 发行注记

  • :443 fmaas.GenerationService/Generate
  • :443 fmaas.GenerationService/GenerateStream

    注意

    要查询 TGIS 独立运行时的端点,还必须在 OpenShift AI text-generation-inference 存储库的 proto 目录中下载文件。

示例命令

grpcurl -proto text-generation-inference/proto/generation.proto -d '{"requests": [{"text":"<text>"}]}' -H 'Authorization: Bearer <token>' -insecure <inference_endpoint_url>:443 fmaas.GenerationService/Generate

5.4.4. OpenVINO Model Server

  • /v2/models/<model-name>/infer

示例命令

curl -ks <inference_endpoint_url>/v2/models/<model_name>/infer -d '{ "model_name": "<model_name>", "inputs": [{ "name": "<name_of_model_input>", "shape": [<shape>], "datatype": "<data_type>", "data": [<data>] }]}' -H 'Authorization: Bearer <token>'

5.4.5. vLLM NVIDIA GPU ServingRuntime for KServe

  • :443/version
  • :443/docs
  • :443/v1/models
  • :443/v1/chat/completions
  • :443/v1/completions
  • :443/v1/embeddings
  • :443/tokenize
  • :443/detokenize

    注意
    • vLLM 运行时与 OpenAI REST API 兼容。有关 vLLM 运行时支持的模型列表,请参阅支持的模型
    • 要在 vLLM 中使用 embeddings inference 端点,您必须使用 vLLM 支持的嵌入式模型。您不能将 embeddings 端点与 generative 模型搭配使用。如需更多信息,请参阅 vLLM 中支持的嵌入模型
    • 从 vLLM v0.5.5 开始,您必须在使用 /v1/chat/completions 端点查询模型时提供 chat 模板。如果您的模型不包含预定义的 chat 模板,您可以使用 chat-template 命令行参数在自定义 vLLM 运行时中指定 chat 模板,如示例所示。将 <CHAT_TEMPLATE > 替换为模板的路径。

      containers:
        - args:
            - --chat-template=<CHAT_TEMPLATE>

      您可以在此处使用 .jinja 文件提供的 chat 模板,或者使用 /app/data/template 下的 vLLM 镜像。https://github.com/opendatahub-io/vllm/tree/main/examples如需更多信息,请参阅 Chat 模板

    如所示的路径所示,single-model 服务平台使用 OpenShift 路由器的 HTTPS 端口(通常是端口 443)来提供外部 API 请求。

示例命令

curl -v https://<inference_endpoint_url>:443/v1/chat/completions -H "Content-Type: application/json" -d '{ "messages": [{ "role": "<role>", "content": "<content>" }] -H 'Authorization: Bearer <token>'

对于 KServe,请参阅 vLLM NVIDIA GPU ServingRuntime

5.4.7. vLLM AMD GPU ServingRuntime for KServe

对于 KServe,请参阅 vLLM NVIDIA GPU ServingRuntime

5.4.8. NVIDIA Triton Inference Server

REST 端点

  • v2/models/[/versions/<model_version>]/infer
  • v2/models/<model_name>[/versions/<model_version>]
  • v2/health/ready
  • v2/health/live
  • v2/models/<model_name>[/versions/]/ready
  • v2
注意

ModelMesh 不支持以下 REST 端点:

  • v2/health/live
  • v2/health/ready
  • v2/models/<model_name>[/versions/]/ready

示例命令

curl -ks <inference_endpoint_url>/v2/models/<model_name>/infer -d '{ "model_name": "<model_name>", "inputs": [{ "name": "<name_of_model_input>", "shape": [<shape>], "datatype": "<data_type>", "data": [<data>] }]}' -H 'Authorization: Bearer <token>'

gRPC endpoints

  • :443 inference.GRPCInferenceService/ModelInfer
  • :443 inference.GRPCInferenceService/ModelReady
  • :443 inference.GRPCInferenceService/ModelMetadata
  • :443 inference.GRPCInferenceService/ServerReady
  • :443 inference.GRPCInferenceService/ServerLive
  • :443 inference.GRPCInferenceService/ServerMetadata

示例命令

grpcurl -cacert ./openshift_ca_istio_knative.crt -proto ./grpc_predict_v2.proto -d @ -H "Authorization: Bearer <token>" <inference_endpoint_url>:443 inference.GRPCInferenceService/ModelMetadata

5.4.9. Seldon MLServer

REST 端点

  • v2/models/[/versions/<model_version>]/infer
  • v2/models/<model_name>[/versions/<model_version>]
  • v2/health/ready
  • v2/health/live
  • v2/models/<model_name>[/versions/]/ready
  • v2

示例命令

curl -ks <inference_endpoint_url>/v2/models/<model_name>/infer -d '{ "model_name": "<model_name>", "inputs": [{ "name": "<name_of_model_input>", "shape": [<shape>], "datatype": "<data_type>", "data": [<data>] }]}' -H 'Authorization: Bearer <token>'

gRPC endpoints

  • :443 inference.GRPCInferenceService/ModelInfer
  • :443 inference.GRPCInferenceService/ModelReady
  • :443 inference.GRPCInferenceService/ModelMetadata
  • :443 inference.GRPCInferenceService/ServerReady
  • :443 inference.GRPCInferenceService/ServerLive
  • :443 inference.GRPCInferenceService/ServerMetadata

示例命令

grpcurl -cacert ./openshift_ca_istio_knative.crt -proto ./grpc_predict_v2.proto -d @ -H "Authorization: Bearer <token>" <inference_endpoint_url>:443 inference.GRPCInferenceService/ModelMetadata

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部