2.11. 使用单模式服务平台部署模型
在单型号服务平台上,每个模型都部署在自己的模型服务器上。这有助于您部署、监控、扩展和维护需要增加资源的大型模型。
2.11.1. 启用单模型服务平台 复制链接链接已复制到粘贴板!
安装 KServe 后,您可以使用 Red Hat OpenShift AI 仪表板启用 single-model 服务平台。您还可以使用仪表板为平台启用模型运行时。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
- 已安装 KServe。
spec.dashboardConfig.disableKServe
仪表板配置选项被设置为false
(默认值)。有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板。
流程
启用 single-model 服务平台,如下所示:
-
在左侧菜单中,点击 Settings
Cluster settings。 - 找到 Model serving platform 部分。
- 要为项目启用单型号服务平台,请选择 Single-model serving 平台 复选框。
- 点 Save Changes。
-
在左侧菜单中,点击 Settings
为单模型服务平台启用预安装运行时,如下所示:
在 OpenShift AI 仪表板的左侧菜单中,点 Settings
Serving runtime。 Serving 运行时 页面会显示预安装的运行时以及您添加的任何自定义运行时。
有关预安装运行时的更多信息,请参阅支持的运行时。
将要使用的运行时设置为 Enabled。
单型号服务平台现在可用于模型部署。
2.11.2. 为单模型服务平台添加自定义模型运行时 复制链接链接已复制到粘贴板!
模型运行时增加了对指定模型框架和这些框架支持的模型格式的支持。您可以使用 OpenShift AI 中包含的 预安装运行时。如果默认运行时不满足您的需要,您还可以添加自己的自定义运行时。
作为管理员,您可以使用 OpenShift AI 接口来添加和启用自定义模型运行时。然后,您可以在单模式服务平台上部署模型时选择自定义运行时。
红帽不提供对自定义运行时的支持。您需要确保获得许可来使用您添加的任何自定义运行时,以及正确配置和维护它们。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
- 您已构建自定义运行时,并将镜像添加到容器镜像存储库中,如 Quay。
流程
在 OpenShift AI 仪表板中点 Settings
Serving runtime。 Serving 运行时 页面将打开,并显示已安装和启用的模型服务运行时。
要添加自定义运行时,请选择以下选项之一:
- 要使用现有运行时(例如,vLLM NVIDIA GPU ServingRuntime for KServe)启动,请点现有运行时旁的操作菜单(WWN),然后点 Duplicate。
- 要添加新的自定义运行时,请点 Add serving runtime。
- 在 Select the model service platform this runtime support 列表中,选择 Single-model serving platform。
- 在 Select the API 协议中,这个运行时支持 列表,选择 REST 或 gRPC。
可选:如果您启动一个新的运行时(而不是复制现有运行时),请选择以下选项之一来添加代码:
上传 YAML 文件
- 点 Upload files。
在文件浏览器中,选择计算机上的 YAML 文件。
嵌入的 YAML 编辑器将打开,并显示您上传的文件内容。
在编辑器中直接输入 YAML 代码
- 点 Start from scratch。
- 在嵌入式编辑器中直接输入或粘贴 YAML 代码。
注意在很多情况下,创建自定义运行时需要在
ServingRuntime
规格的env
部分中添加新或自定义参数。点击 Add。
Serving 运行时页面将打开,并显示所安装的运行时的更新列表。观察您添加的自定义运行时会自动启用。显示您在创建运行时时指定的 API 协议。
- 可选: 要编辑自定义运行时,点操作菜单(需要)并选择 Edit。
验证
- 您添加的自定义模型运行时显示在 Serving 运行时 页面中的 enabled 状态。
2.11.3. 为单模式服务平台添加经过测试和验证的模型运行时 复制链接链接已复制到粘贴板!
除了预安装和自定义模型服务运行时外,您还可以使用红帽经过测试和验证的模型运行时,如 NVIDIA Triton Inference Server 来支持您的需要。有关红帽经过测试和验证的运行时的更多信息,请参阅 Red Hat OpenShift AI 测试和验证的运行时。
您可以使用 Red Hat OpenShift AI 仪表板来添加和启用 NVIDIA Triton Inference Server 或 Seldon MLServer 运行时。然后,您可以在单模式服务平台上部署模型时选择运行时。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
流程
在 OpenShift AI 仪表板中点 Settings
Serving runtime。 Serving 运行时 页面将打开,并显示已安装和启用的模型服务运行时。
- 点 Add serving runtime。
- 在 Select the model service platform this runtime support 列表中,选择 Single-model serving platform。
- 在 Select the API 协议中,这个运行时支持 列表,选择 REST 或 gRPC。
- 点 Start from scratch。
按照以下步骤添加 NVIDIA Triton Inference 服务器 运行时:
如果您选择了 REST API 协议,请直接在嵌入的编辑器中输入或粘贴以下 YAML 代码。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您选择了 gRPC API 协议,请直接在嵌入的编辑器中输入或粘贴以下 YAML 代码。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
按照以下步骤添加 Seldon MLServer 运行时:
如果您选择了 REST API 协议,请直接在嵌入的编辑器中输入或粘贴以下 YAML 代码。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您选择了 gRPC API 协议,请直接在嵌入的编辑器中输入或粘贴以下 YAML 代码。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
在
metadata.name
字段中,确保您添加的运行时值与您已添加的运行时不匹配。 可选: 要为您添加的运行时使用自定义显示名称,请添加
metadata.annotations.openshift.io/display-name
字段并指定一个值,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果没有为您的运行时配置自定义显示名称,OpenShift AI 会显示
metadata.name
字段的值。点 Create。
Serving 运行时页面将打开,并显示所安装的运行时的更新列表。观察您添加的运行时会自动启用。显示您在创建运行时时指定的 API 协议。
- 可选: 要编辑运行时,请点击操作菜单(WWN)并选择 Edit。
验证
- 您添加的 model-serving 运行时显示在 Serving 运行时 页面中的 enabled 状态。
2.11.4. 在单模型服务平台上部署模型 复制链接链接已复制到粘贴板!
当您启用了单模式服务平台后,您可以启用预安装或自定义模型运行时,并在平台上部署模型。
您可以使用预安装的模型服务运行时启动服务模型,而无需自行修改或定义运行时。有关添加自定义运行时的帮助,请参阅为单模型服务平台添加自定义模型运行时。
先决条件
- 您已登陆到 Red Hat OpenShift AI。
-
如果您使用 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组(如
rhoai-users
或rhoai-admins
)的一部分。 - 已安装 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
- 要在 IBM Z 和 IBM Power 上使用 VLLM 运行时,请将 vLLM CPU ServingRuntime 用于 KServe。您不能在 IBM Z 和 IBM Power 构架中使用 GPU 加速器。如需更多信息,请参阅 Red Hat OpenShift Multi Architecture 组件可用性列表。
- 要将 vLLM Intel Gaudi Accelerator ServingRuntime 用于 KServe 运行时,您可以在 OpenShift AI 中启用对混合处理单元(HPU)的支持。这包括安装 Intel Gaudi AI Accelerator operator 和配置硬件配置集。如需更多信息,请参阅 AMD 文档中的 为 OpenShift 设置 Gaudi 和 使用硬件配置文件。
要将 vLLM AMD GPU ServingRuntime 用于 KServe 运行时,您可以在 OpenShift AI 中启用了对 AMD 图形处理单元(GPU)的支持。这包括安装 AMD GPU operator 和配置硬件配置集。如需更多信息,请参阅在 OpenShift 上部署 AMD GPU Operator 以及使用硬件配置集。
注意在 OpenShift AI 2.22 中,红帽支持用于模型服务的 NVIDIA GPU、Intel Gaudi 和 AMD GPU 加速器。
部署 RHEL AI 模型:
- 您已为 KServe 运行时启用了 vLLM NVIDIA GPU ServingRuntime。
- 您已从红帽容器注册中心下载了模型,并将其上传到 S3 兼容对象存储。
流程
在左侧菜单中,单击 Data Science projects。
Data Science 项目页将打开。
点击您要在其中部署模型的项目的名称。
此时会打开项目详情页面。
- 点 Models 选项卡。
执行以下操作之一:
- 如果您看到 Single-model 服务平台 标题,请点击 Deploy model on the 标题。
- 如果没有看到任何标题,请点击 Deploy model 按钮。
此时会打开 Deploy model 对话框。
- 在 Model deployment name 字段中输入您要部署的模型的唯一名称。
- 在 Serving runtime 字段中,选择一个已启用的运行时。如果存在项目范围内的运行时,Serving 运行时 列表包含子标题,以区分全局运行时和项目范围内的运行时。
- 在 Model 框架(名称 - version) 列表中选择一个值。
- 从 Deployment 模式 列表中,选择 standard 或 advanced。如需有关部署模式的更多信息,请参阅关于 KServe 部署模式。
- 在要部署的模型服务器副本的 Number of model server replicas 中,指定一个值。
只有在您创建了硬件配置集时,以下选项才可用:
从 Hardware profile 列表中,选择一个硬件配置文件。如果存在项目范围内的硬件配置文件,则 Hardware profile 列表包含子标题,以区分全局硬件配置文件和项目范围内的硬件配置文件。
重要默认情况下,硬件配置集在仪表板导航菜单和用户界面中隐藏,而加速器配置集保持可见。另外,与已弃用的加速器配置集功能关联的用户界面组件仍然会显示。如果您启用硬件配置集,则会出现 硬件配置集列表 而不是 加速器配置集列表。要在仪表板导航菜单中显示 Settings
Hardware profiles 选项,以及与硬件配置集关联的用户界面组件,请在 OpenShift 中的 OdhDashboardConfig
自定义资源(CR)中将disableHardwareProfiles
值设置为false
。有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板。- 可选更改这些默认值,请点 Customize resource requests and limit,并输入新的最小值(request)和最大值(limit)值。硬件配置集指定分配给容器的 CPU 数量和内存量,为两者设置保证最小值(request)和最大值(limit)。
- 可选:在 Model route 部分中,选择 Make deployed model available via an external route 复选框,使部署的模型可供外部客户端使用。
要求对部署的模型对令牌身份验证进行推测请求,请执行以下操作:
- 选择 Require token authentication。
- 在 Service account name 字段中,输入要为其生成令牌的服务帐户名称。
- 要添加额外服务帐户,请点 Add a service account 并输入另一个服务帐户名称。
要指定模型的位置,请执行以下操作之一:
使用现有连接
- 选择现有连接。
从 Name 列表中,选择一个您之前定义的连接。
对于 S3 兼容对象存储 :在 Path 字段中输入指定数据源中包含模型的文件夹路径。
重要OpenVINO Model Server 运行时对指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025。
对于 Open Container Image 连接 :在 OCI 存储位置 字段中,输入模型所在的模型 URI。
注意如果您使用现有 S3、URI 或 OCI 数据连接部署注册的模型版本,可能会自动填充一些连接详情。这取决于数据连接的类型以及数据科学项目中可用的匹配连接数量。例如,如果只有一个匹配的连接,则路径、URI、端点、模型 URI、存储桶和区域等字段可能会自动填充。匹配连接将标记为 建议。
使用新连接
要定义模型可访问的新连接,请选择 New connection。
在 Add connection modal 中,选择 Connection type。与 OCI 兼容的 registry、S3 兼容对象存储和 URI 选项是预安装的连接类型。如果您的 OpenShift AI 管理员添加了其他选项,则可能会使用其他选项。
此时会打开 Add connection 表单,其中包含特定于您选择的连接类型的字段。
填写连接详情字段。
重要如果您的连接类型是 S3 兼容对象存储,您必须提供包含您的数据文件的文件夹路径。OpenVINO Model Server 运行时对指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025。
(可选)在 配置参数 部分中自定义运行时参数:
- 修改附加服务 运行时参数中的值,以定义部署模型的行为方式。
修改 附加环境变量中的值,以在模型环境中定义变量。
Configuration parameters 部分显示预定义的服务运行时参数(若有可用)。
注意不要修改端口或模型服务运行时参数,因为它们需要设置特定的值。覆盖这些参数可能会导致部署失败。
- 点 Deploy。
验证
- 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model deployments 页面中显示 Status 列中带有复选标记。
2.11.5. 为 KServe 设置超时 复制链接链接已复制到粘贴板!
当部署大型模型或使用 KServe 的节点自动扩展时,操作可能会在部署模型前超时,因为 KNative Serving 集的默认 progress-deadline
为 10 分钟。
如果部署使用 KNative Serving 的 pod 需要的时间超过 10 分钟,则 pod 可能会自动标记为失败。如果您部署的大型模型需要超过 10 分钟才能从 S3 兼容对象存储中提取,或者使用节点自动扩展来减少 GPU 节点的消耗,会出现这种情况。
要解决这个问题,您可以在应用程序的 KServe InferenceService
中设置自定义 progress-deadline
。
先决条件
- 具有 OpenShift 集群的命名空间编辑访问权限。
流程
- 以集群管理员身份登录 OpenShift 控制台。
- 选择部署模型的项目。
-
在 Administrator 视角中,点击 Home
Search。 -
从 资源 下拉菜单中,搜索
InferenceService
。 在
spec.predictor.annotations
下,使用新超时修改service.knative.dev/progress-deadline
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保在
spec.predictor.annotations
级别上设置progress-deadline
,以便 KServeInferenceService
可以将progress-deadline
复制到 KNative Service 对象。
2.11.6. 自定义部署模型运行时的参数 复制链接链接已复制到粘贴板!
除了默认的模型或增强现有模型部署外,您可能需要额外的参数。在这种情况下,您可以修改现有运行时的参数以满足您的部署需求。
自定义运行时的参数仅会影响所选模型部署。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
- 您已在单模式服务平台上部署了模型。
流程
在 OpenShift AI 仪表板中点 Models
Model deployments。 此时会打开 Model deployments 页面。
点击您要自定义的型号名称旁的操作菜单(swig),然后选择 Edit。
Configuration parameters 部分显示预定义的服务运行时参数(若有可用)。
在 Configuration parameters 部分中自定义运行时参数:
- 修改附加服务 运行时参数中的值,以定义部署模型的行为方式。
修改 附加环境变量中的值,以在模型环境中定义变量。
注意不要修改端口或模型服务运行时参数,因为它们需要设置特定的值。覆盖这些参数可能会导致部署失败。
- 完成自定义运行时参数后,点 Redeploy 以保存和部署模型。
验证
- 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model deployments 页面中显示 Status 列中带有复选标记。
使用以下方法之一确认您设置的参数和变量出现在
spec.predictor.model.args
和spec.predictor.model.env
中:- 从 OpenShift 控制台检查 InferenceService YAML.
在 OpenShift CLI 中使用以下命令:
oc get -o json inferenceservice <inferenceservicename/modelname> -n <projectname>
oc get -o json inferenceservice <inferenceservicename/modelname> -n <projectname>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11.7. 可自定义模型服务运行时参数 复制链接链接已复制到粘贴板!
您可以修改现有模型服务运行时的参数,以满足您的部署需求。
有关每个支持的服务运行时的参数的更多信息,请参阅下表:
服务运行时 | 资源 |
---|---|
Caikit 文本 Generation Inference Server (Caikit-TGIS) ServingRuntime for KServe | |
Caikit Standalone ServingRuntime for KServe | |
NVIDIA Triton Inference Server | |
OpenVINO Model Server | |
Seldon MLServer | |
[已弃用] 文本 Generation Inference Server (TGIS) Standalone ServingRuntime for KServe | |
vLLM NVIDIA GPU ServingRuntime for KServe | |
vLLM AMD GPU ServingRuntime for KServe | |
vLLM Intel Gaudi Accelerator ServingRuntime for KServe |
2.11.8. 使用 OCI 容器进行模型存储 复制链接链接已复制到粘贴板!
作为在 S3 存储桶或 URI 中存储模型的替代选择,您可以将模型上传到开放容器项目(OCI)容器中。在 KServe 中,从 OCI 容器部署模型也被称为 modelcars。
使用 OCI 容器进行模型存储可帮助您:
- 通过避免多次下载同一模型来减少启动时间。
- 通过减少本地下载的模型数量来减少磁盘空间使用量。
- 通过允许预抓取镜像来提高模型性能。
使用 OCI 容器进行模型存储涉及以下任务:
- 在 OCI 镜像中存储模型。
使用用户界面或命令行界面从 OCI 镜像部署模型。使用以下方法部署模型:
- 用户界面,请参阅 在单模式服务平台上部署模型。
- 命令行界面,请参阅使用 CLI 部署存储在 OCI 镜像中的模型。
2.11.8.1. 在 OCI 镜像中存储模型 复制链接链接已复制到粘贴板!
您可以在 OCI 镜像中存储模型。以下流程使用 ONNX 格式存储 mobileNet v2-7 模型的示例。
先决条件
- 您有 ONNX 格式的模型。此流程中的示例使用 ONNX 格式的 mobileNet v2-7 模型。
- 已安装 Podman 工具。
流程
在本地机器的终端窗口中,创建一个临时目录来存储模型以及创建 OCI 镜像所需的支持文件:
cd $(mktemp -d)
cd $(mktemp -d)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在临时目录中创建一个
models
文件夹:mkdir -p models/1
mkdir -p models/1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这个示例命令指定子目录
1
,因为 OpenVINO 需要编号的子目录进行建模。如果不使用 OpenVINO,则不需要创建1
子目录来使用 OCI 容器镜像。下载模型和支持文件:
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/
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/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
tree
命令确认模型文件按预期位于目录结构中:tree
tree
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tree
命令应该返回类似以下示例的目录结构:. ├── Containerfile └── models └── 1 └── mobilenetv2-7.onnx
. ├── Containerfile └── models └── 1 └── mobilenetv2-7.onnx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
Containerfile
的 Docker 文件:注意-
指定提供 shell 的基础镜像。在以下示例中,
ubi9-micro
是基础镜像。您不能指定不提供 shell 的空镜像,如scratch
,因为 KServe 使用 shell 来确保模型文件可以被模型服务器访问。 - 更改复制的模型文件的所有权,并为 root 组授予读取权限,以确保模型服务器可以访问该文件。OpenShift 使用随机用户 ID 和 root 组 ID 运行容器。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
指定提供 shell 的基础镜像。在以下示例中,
使用
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>
podman build --format=oci -t quay.io/<user_name>/<repository_name>:<tag_name> . podman push quay.io/<user_name>/<repository_name>:<tag_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11.8.2. 使用 CLI 部署存储在 OCI 镜像中的模型 复制链接链接已复制到粘贴板!
您可以从命令行界面部署存储在 OCI 镜像中的模型。
以下流程使用 ONNX 格式部署 mobileNet v2-7 模型的示例,存储在 OpenVINO 模型服务器上的 OCI 镜像中。
默认情况下,在 KServe 中,模型在集群外公开,不受身份验证的保护。
先决条件
- 您已将模型存储在 OCI 镜像中,如在 OCI 镜像中存储模型 中所述。
- 如果要部署存储在私有 OCI 存储库中的模型,您必须配置镜像 pull secret。有关创建镜像 pull secret 的更多信息,请参阅使用镜像 pull secret。
- 已登陆到 OpenShift 集群。
流程
创建一个项目来部署模型:
oc new-project oci-model-example
oc new-project oci-model-example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 OpenShift AI Applications 项目
kserve-ovms
模板来创建ServingRuntime
资源,并在新项目中配置 OpenVINO 模型服务器:oc process -n redhat-ods-applications -o yaml kserve-ovms | oc apply -f -
oc process -n redhat-ods-applications -o yaml kserve-ovms | oc apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证名为
kserve-ovms
的ServingRuntime
是否已创建:oc get servingruntimes
oc get servingruntimes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令应该返回类似如下的输出:
NAME DISABLED MODELTYPE CONTAINERS AGE kserve-ovms openvino_ir kserve-container 1m
NAME DISABLED MODELTYPE CONTAINERS AGE kserve-ovms openvino_ir kserve-container 1m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据模型是否存储于私有还是公共 OCI 存储库,创建
InferenceService
YAML 资源:对于存储在公共 OCI 存储库中的模型,创建一个带有以下值的
InferenceService
YAML 文件,将 <user_name>、<
>、<repository_name>
、<tag_nametag_name
> 的值替换为特定于您的环境的值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于存储在私有 OCI 存储库中的模型,请创建一个
InferenceService
YAML 文件,该文件在spec.predictor.imagePullSecrets
字段中指定您的 pull secret,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
InferenceService
资源后,KServe 会部署storageUri
字段引用的 OCI 镜像中存储的模型。
验证
检查部署的状态:
oc get inferenceservice
oc get inferenceservice
该命令应返回包含信息的输出,如部署模型的 URL 及其就绪状态。
2.11.9. 在 vLLM 中使用加速器 复制链接链接已复制到粘贴板!
OpenShift AI 包含对 NVIDIA、AMD 和 Intel Gaudi 加速器的支持。OpenShift AI 还包括预安装的模型服务运行时,提供加速器支持。
2.11.9.1. NVIDIA GPU 复制链接链接已复制到粘贴板!
您可以使用 vLLM NVIDIA GPU ServingRuntime for KServe 运行时提供 NVIDIA 图形处理单元(GPU)的模型。要使用运行时,您必须在 OpenShift AI 中启用 GPU 支持。这包括在集群中安装和配置 Node Feature Discovery Operator。如需更多信息,请参阅安装 Node Feature Discovery operator 和 启用 NVIDIA GPU。
2.11.9.2. Intel Gaudi Accelerators 复制链接链接已复制到粘贴板!
您可以使用 vLLM Intel Gaudi Accelerator ServingRuntime for KServe runtime 为 Intel Gaudi 加速器提供模型。要使用运行时,您必须在 OpenShift AI 中启用混合处理支持(HPU)支持。这包括安装 Intel Gaudi AI Accelerator operator 和配置硬件配置集。如需更多信息,请参阅为 OpenShift 设置 Gaudi 和 使用硬件配置文件。
有关推荐的 vLLM 参数、环境变量、支持的配置等信息,请参阅 带有 Intel® Gaudi® AI Accelerators 的 vLLM。
warm-up 是一个模型初始化和性能优化步骤,可用于减少冷启动延迟和第一延迟。根据模型大小,温设置可能会导致模型加载时间较长。
虽然在生产环境中强烈建议您避免性能限制,但您可以选择跳过非生产环境的温设置,以减少模型加载时间并加快模型开发和测试周期。要跳过 warm-up,请按照 自定义部署模型运行时的参数 中所述的步骤,在模型部署 的配置参数 部分中添加以下环境变量:
`VLLM_SKIP_WARMUP="true"`
`VLLM_SKIP_WARMUP="true"`
2.11.9.3. AMD GPU 复制链接链接已复制到粘贴板!
您可以使用 vLLM AMD GPU ServingRuntime for KServe 运行时提供 AMD GPU 的模型。要使用运行时,您必须在 OpenShift AI 中为 AMD 图形处理单元(GPU)启用支持。这包括安装 AMD GPU operator 和配置硬件配置集。如需更多信息,请参阅 AMD 文档中的 在 OpenShift 上部署 AMD GPU Operator,以及使用硬件配置集。
2.11.10. 自定义 vLLM 模型运行时 复制链接链接已复制到粘贴板!
在某些情况下,您可能需要在 vLLM ServingRuntime for KServe 运行时添加额外的标志或环境变量来部署一系列 LLM。
以下流程描述了自定义 vLLM 模型运行时,以部署 Llama、Granite 或 Mistral 模型。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
- 对于 Llama 模型部署,您已将 meta-llama-3 模型下载到对象存储中。
- 对于 Granite 模型部署,您已将 granite-7b-instruct 或 granite-20B-code-instruct 模型下载到您的对象存储中。
- 对于 Mistral 模型部署,您已将 mistral-7B-Instruct-v0.3 模型下载到对象存储。
- 您已为 KServe 运行时启用了 vLLM ServingRuntime。
- 您已在 OpenShift AI 中启用了 GPU 支持,并在集群中安装并配置了 Node Feature Discovery operator。如需更多信息,请参阅安装 Node Feature Discovery operator 和 启用 NVIDIA GPU
流程
- 按照以下步骤部署模型,如 在单模式服务平台上部署模型 中所述。
- 在 Serving runtime 字段中,为 KServe 选择 vLLM ServingRuntime。
如果要部署 meta-llama-3 模型,请在 Configuration parameters 部分中的 Additional service runtime 参数 中添加以下参数:
–-distributed-executor-backend=mp --max-model-len=6144
–-distributed-executor-backend=mp
1 --max-model-len=6144
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您要部署 granite-7B-instruct 模型,请在 Configuration parameters 部分中的 Additional service runtime 参数 中添加以下参数:
--distributed-executor-backend=mp
--distributed-executor-backend=mp
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将后端设置为分布式模型 worker 的多处理
如果您要部署 granite-20B-code-instruct 模型,请在 Configuration parameters 部分中的 Additional service runtime 参数 中添加以下参数:
--distributed-executor-backend=mp –-tensor-parallel-size=4 --max-model-len=6448
--distributed-executor-backend=mp
1 –-tensor-parallel-size=4
2 --max-model-len=6448
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您要部署 mistral-7B-Instruct-v0.3 模型,请在 Configuration parameters 部分中的 Additional service runtime 参数 中添加以下参数:
--distributed-executor-backend=mp --max-model-len=15344
--distributed-executor-backend=mp
1 --max-model-len=15344
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Deploy。
验证
- 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model deployments 页面中显示 Status 列中带有复选标记。
对于 granite 模型,请使用以下示例命令验证对部署的模型的 API 请求:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow