2.19. 关于 NVIDIA NIM 模型服务平台
您可以在 NVIDIA NIM 模型服务平台上使用 NVIDIA NIM inference 服务部署模型。
NVIDIA NIM 是 NVIDIA AI Enterprise 的一部分,是设计用于安全可靠的部署高性能 AI 模型影响云、数据中心和工作站的微服务。
2.19.1. 启用 NVIDIA NIM 模型服务平台 复制链接链接已复制到粘贴板!
作为管理员,您可以使用 Red Hat OpenShift AI 仪表板启用 NVIDIA NIM 模型服务平台。
如果您之前在 OpenShift AI 中启用了 NVIDIA NIM 模型 服务平台,然后升级到更新的版本,重新输入 NVIDIA NGC API 密钥以重新启用 NVIDIA NIM 模型服务平台。
先决条件
- 您已以管理员身份登录到 Red Hat OpenShift AI。
- 您已启用了 single-model 服务平台。您不需要启用预安装的运行时。有关启用单模式服务平台的更多信息,请参阅启用单模式服务平台。
disableNIMModelServing
OpenShift AI 仪表板配置被设置为false
:disableNIMModelServing: false
disableNIMModelServing: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息,请参阅 Dashboard 配置选项。
- 您已在 OpenShift AI 中启用了 GPU 支持。这包括安装 Node Feature Discovery operator 和 NVIDIA GPU Operator。如需更多信息,请参阅安装 Node Feature Discovery operator 和 启用 NVIDIA GPU。
- 您有一个 NVIDIA Cloud Account (NCA),并可以访问 NVIDIA GPU Cloud (NGC)门户。如需更多信息,请参阅 NVIDIA GPU Cloud 用户指南。
- 您的 NCA 帐户与 NVIDIA AI Enterprise Viewer 角色关联。
- 您已在 NGC 门户中生成了 NGC API 密钥。如需更多信息,请参阅 NGC API 密钥。
流程
- 登录到 OpenShift AI。
-
在 OpenShift AI 仪表板的左侧菜单中,点击 Applications
Explore。 - 在 Explore 页面中,找到 NVIDIA NIM 标题。
- 在应用程序标题上点 Enable。
- 输入 NGC API 密钥,然后单击 Submit。
验证
- 您启用的 NVIDIA NIM 应用程序会出现在 Enabled 页面中。
2.19.2. 在 NVIDIA NIM 模型服务平台上部署模型 复制链接链接已复制到粘贴板!
当您启用了 NVIDIA NIM 模型服务平台 时,您可以开始在平台上部署 NVIDIA 优化模型。
先决条件
- 您已登陆到 Red Hat OpenShift AI。
-
如果您使用 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组(如
rhoai-users
或rhoai-admins
)的一部分。 - 您已启用了 NVIDIA NIM 模型服务平台。
- 您已创建了数据科学项目。
- 您已在 OpenShift AI 中启用了图形处理单元(GPU)的支持。这包括安装 Node Feature Discovery operator 和 NVIDIA GPU Operator。如需更多信息,请参阅安装 Node Feature Discovery operator 和 启用 NVIDIA GPU。
流程
在左侧菜单中,单击 Data Science projects。
Data Science 项目页将打开。
点击您要在其中部署模型的项目的名称。
此时会打开项目详情页面。
- 点 Models 选项卡。
在 Models 部分中,执行以下操作之一:
- 在 NVIDIA NIM 模型服务平台 标题上,点标题上的 Select NVIDIA NIM,然后点 Deploy model。
- 如果您之前选择了 NVIDIA NIM 模型服务类型,则 Models 页面会显示右上角的 NVIDIA 模型 服务以及 Deploy model 按钮。要继续,请单击 Deploy model。
此时会打开 Deploy model 对话框。
配置部署模型的属性,如下所示:
- 在 Model deployment name 字段中输入部署的唯一名称。
- 从 NVIDIA NIM 列表中,选择您要部署的 NVIDIA NIM 模型。如需更多信息,请参阅支持的模型
- 在 NVIDIA NIM 存储大小字段中,指定将创建用于存储 NVIDIA NIM 模型的集群存储 实例的大小。
- 在要部署的模型服务器副本的 Number of model server replicas 中,指定一个值。
- 在 Model server size 列表中选择一个值。
- 从 Hardware profile 列表中,选择一个硬件配置文件。
可选:点 Customize resource requests and limit 并更新以下值:
- 在 CPU requests 字段中,指定要与模型服务器一起使用的 CPU 数量。使用此字段旁边的列表来指定内核或 millicores 的值。
- 在 CPU limits 字段中,指定模型服务器使用的最大 CPU 数量。使用此字段旁边的列表来指定内核或 millicores 的值。
- 在 Memory requests 字段中,以 gibibytes (Gi)为模型服务器指定请求的内存。
- 在 Memory limits 字段中,以千兆字节(Gi)指定模型服务器的最大内存限值。
- 可选:在 Model route 部分中,选择 Make deployed model available via an external route 复选框,使部署的模型可供外部客户端使用。
要求对部署的模型对令牌身份验证进行推测请求,请执行以下操作:
- 选择 Require token authentication。
- 在 Service account name 字段中,输入要为其生成令牌的服务帐户名称。
- 要添加额外服务帐户,请点 Add a service account 并输入另一个服务帐户名称。
- 点 Deploy。
验证
- 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model deployments 页面中显示 Status 列中带有复选标记。
2.19.3. 为现有 NIM 部署启用 NVIDIA NIM 指标 复制链接链接已复制到粘贴板!
如果您之前在 OpenShift AI 中部署了 NIM 模型,然后升级到 2.19,则必须通过添加注解启用指标集合和图形生成来手动为现有部署启用 NIM 指标。
NIM 指标和图形在 2.17 中自动启用。
2.19.3.1. 为现有 NIM 部署启用图形生成 复制链接链接已复制到粘贴板!
以下流程描述了如何为现有 NIM 部署启用图形生成。
先决条件
- 具有集群管理员特权。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。如需更多信息 ,请参阅安装 OpenShift CLI。
- 在 OpenShift AI 中已有 NIM 部署。
流程
- 在一个终端窗口中,如果您还没有以集群管理员身份登录到 OpenShift 集群,请登录 OpenShift CLI。
确认与 NIM 部署关联的
ServingRuntime
的名称:oc get servingruntime -n <namespace>
oc get servingruntime -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<
;namespace> 替换为部署 NIM 模型的项目的命名空间。检查
ServingRuntime
配置中现有的metadata.annotations
部分:oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <servingruntime-name> 替换为上一步中的
ServingRuntime
的名称。执行以下操作之一:
如果配置中没有
metadata.annotations
部分,请使用所需注解添加部分:oc patch servingruntime -n <namespace> <servingruntime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations", "value": {"runtimes.opendatahub.io/nvidia-nim": "true"}}]'
oc patch servingruntime -n <namespace> <servingruntime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations", "value": {"runtimes.opendatahub.io/nvidia-nim": "true"}}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到类似如下的输出:
servingruntime.serving.kserve.io/nim-serving-runtime patched
servingruntime.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果已存在
metadata.annotations
部分,请将所需的注解添加到部分中:oc patch servingruntime -n <project-namespace> <runtime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations/runtimes.opendatahub.io~1nvidia-nim", "value": "true"}]'
oc patch servingruntime -n <project-namespace> <runtime-name> --type json --patch \ '[{"op": "add", "path": "/metadata/annotations/runtimes.opendatahub.io~1nvidia-nim", "value": "true"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到类似如下的输出:
servingruntime.serving.kserve.io/nim-serving-runtime patched
servingruntime.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认注解已添加到现有 NIM 部署的
ServingRuntime
中。oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
oc get servingruntime -n <namespace> <servingruntime-name> -o json | jq '.metadata.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您添加的注解会出现在输出中:
... "runtimes.opendatahub.io/nvidia-nim": "true"
... "runtimes.opendatahub.io/nvidia-nim": "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要使指标可用于图形生成,还必须为您的部署启用指标集合。请参阅 为现有 NIM 部署启用指标集合。
2.19.3.2. 为现有 NIM 部署启用指标集合 复制链接链接已复制到粘贴板!
要为现有 NIM 部署启用指标集合,您必须手动将 Prometheus 端点和端口注解添加到部署的 InferenceService
中。
以下流程描述了如何将所需的 Prometheus 注解添加到 NIM 部署的 InferenceService
中。
先决条件
- 具有集群管理员特权。
- 您已下载并安装 OpenShift 命令行界面 (CLI)。如需更多信息 ,请参阅安装 OpenShift CLI。
- 在 OpenShift AI 中已有 NIM 部署。
流程
- 在一个终端窗口中,如果您还没有以集群管理员身份登录到 OpenShift 集群,请登录 OpenShift CLI。
确认与 NIM 部署关联的
InferenceService
的名称:oc get inferenceservice -n <namespace>
oc get inferenceservice -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<
;namespace> 替换为部署 NIM 模型的项目的命名空间。检查
InferenceService
配置中是否存在现有的spec.predictor.annotations
部分:oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <inferenceservice-name> 替换为上一步中的
InferenceService
的名称。执行以下操作之一:
如果配置中不存在
spec.predictor.annotations
部分,请添加这个部分和所需的注解:oc patch inferenceservice -n <namespace> <inference-name> --type json --patch \ '[{"op": "add", "path": "/spec/predictor/annotations", "value": {"prometheus.io/path": "/metrics", "prometheus.io/port": "8000"}}]'
oc patch inferenceservice -n <namespace> <inference-name> --type json --patch \ '[{"op": "add", "path": "/spec/predictor/annotations", "value": {"prometheus.io/path": "/metrics", "prometheus.io/port": "8000"}}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您添加的注解会出现在输出中:
inferenceservice.serving.kserve.io/nim-serving-runtime patched
inferenceservice.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果已存在
spec.predictor.annotations
部分,请将 Prometheus 注解添加到部分中:oc patch inferenceservice -n <namespace> <inference-service-name> --type json --patch \ '[{"op": "add", "path": "/spec/predictor/annotations/prometheus.io~1path", "value": "/metrics"}, {"op": "add", "path": "/spec/predictor/annotations/prometheus.io~1port", "value": "8000"}]'
oc patch inferenceservice -n <namespace> <inference-service-name> --type json --patch \ '[{"op": "add", "path": "/spec/predictor/annotations/prometheus.io~1path", "value": "/metrics"}, {"op": "add", "path": "/spec/predictor/annotations/prometheus.io~1port", "value": "8000"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您添加的注解会出现在输出中:
inferenceservice.serving.kserve.io/nim-serving-runtime patched
inferenceservice.serving.kserve.io/nim-serving-runtime patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认注解已添加到
InferenceService
中。oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
oc get inferenceservice -n <namespace> <inferenceservice-name> -o json | jq '.spec.predictor.annotations'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到您在输出中添加的注解:
{ "prometheus.io/path": "/metrics", "prometheus.io/port": "8000" }
{ "prometheus.io/path": "/metrics", "prometheus.io/port": "8000" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.19.4. 查看 NIM 模型的 NVIDIA NIM 指标 复制链接链接已复制到粘贴板!
在 OpenShift AI 中,您可以观察在 NVIDIA NIM 模型服务平台上部署的 NIM 模型的以下 NVIDIA NIM 指标:
- GPU 缓存使用量随时间(ms)
- 当前正在运行、等待和最大请求计数
- 令牌计数
- 第一次令牌
- 每个输出令牌的时间
- 请求结果
您可以为这些指标指定时间范围和刷新间隔,以帮助您决定在指定时间的峰值使用小时和型号性能。
先决条件
- 您已启用了 NVIDIA NIM 模型服务平台。
- 您已在 NVIDIA NIM 模型服务平台上部署了 NIM 模型。
-
如果您使用 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组(如
rhoai-users
或rhoai-admins
)的一部分。 disableKServeMetrics
OpenShift AI 仪表板配置选项被设置为默认值false
:disableKServeMetrics: false
disableKServeMetrics: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息,请参阅 Dashboard 配置选项。
流程
在 OpenShift AI 仪表板导航菜单中点 Data Science projects。
Data Science 项目页将打开。
- 点击包含您要监控的 NIM 模型的项目名称。
- 在项目详情页面中,点 Models 选项卡。
- 点击您要观察的 NIM 模型。
在 NIM Metrics 选项卡中,设置以下选项:
- 时间范围 -指定跟踪指标的时长。您可以选择其中一个值:1 小时、24 小时、7 天和 30 天。
- 刷新 interval - 指定指标页面中图形的频率(显示最新的数据)。您可以选择以下值之一:15 秒、30 秒、1 分钟、5 分钟、15 分钟、30 分钟、1 小时、2 小时和 1 天。
- 向下滚动以查看 NIM 指标的数据图形。
验证
NIM Metrics 选项卡显示所部署的 NIM 模型的 NIM 指标图。
其他资源
2.19.5. 查看 NIM 模型的性能指标 复制链接链接已复制到粘贴板!
您可以观察在 NVIDIA NIM 模型服务平台上部署的 NIM 模型的以下性能指标:
- 请求数 - 特定模型失败的请求数。
- 平均响应时间(ms)- 对请求做出特定模型的平均时间。
- CPU 使用率(%) -特定模型当前使用的每个模型副本的 CPU 限值百分比。
- 内存使用率(%) -特定模型使用的每个模型副本的内存限值百分比。
您可以为这些指标指定时间范围和刷新间隔,以帮助您决定在指定时间的峰值使用小时和型号性能。
先决条件
- 您已启用了 NVIDIA NIM 模型服务平台。
- 您已在 NVIDIA NIM 模型服务平台上部署了 NIM 模型。
-
如果您使用 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组(如
rhoai-users
或rhoai-admins
)的一部分。 disableKServeMetrics
OpenShift AI 仪表板配置选项被设置为默认值false
:disableKServeMetrics: false
disableKServeMetrics: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息,请参阅 Dashboard 配置选项。
流程
在 OpenShift AI 仪表板导航菜单中点 Data Science projects。
Data Science 项目页将打开。
- 点击包含您要监控的 NIM 模型的项目名称。
- 在项目详情页面中,点 Models 选项卡。
- 点击您要观察的 NIM 模型。
在 Endpoint performance 选项卡中,设置以下选项:
- 时间范围 -指定跟踪指标的时长。您可以选择其中一个值:1 小时、24 小时、7 天和 30 天。
- refresh interval - 指定指标页面上图形的频率,以显示最新的数据。您可以选择以下值之一:15 秒、30 秒、1 分钟、5 分钟、15 分钟、30 分钟、1 小时、2 小时和 1 天。
- 向下滚动以查看性能指标的数据图形。
验证
Endpoint 性能 选项卡显示所部署的 NIM 模型的性能指标图。