2.12. 使用单模式服务平台部署模型
在单型号服务平台上,每个模型都部署在自己的模型服务器上。这有助于您部署、监控、扩展和维护需要增加资源的大型模型。
2.12.1. 启用单模型服务平台
安装 KServe 后,您可以使用 Red Hat OpenShift AI 仪表板启用 single-model 服务平台。您还可以使用仪表板为平台启用模型运行时。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
- 已安装 KServe。
- 集群管理员 还没有 编辑 OpenShift AI 仪表板配置,以禁用选择使用 KServe 组件的 single-model serving 平台。如需更多信息,请参阅 Dashboard 配置选项。
流程
启用 single-model 服务平台,如下所示:
-
在左侧菜单中,点击 Settings
Cluster settings。 - 找到 Model serving platform 部分。
- 要为项目启用单型号服务平台,请选择 Single-model serving 平台 复选框。
- 点 Save Changes。
-
在左侧菜单中,点击 Settings
为单模型服务平台启用预安装运行时,如下所示:
在 OpenShift AI 仪表板的左侧菜单中,点 Settings
Serving runtime。 Serving 运行时 页面会显示预安装的运行时以及您添加的任何自定义运行时。
有关预安装运行时的更多信息,请参阅支持的运行时。
将要使用的运行时设置为 Enabled。
单型号服务平台现在可用于模型部署。
2.12.2. 为单模型服务平台添加自定义模型运行时
模型运行时增加了对指定模型框架和这些框架支持的模型格式的支持。您可以使用 OpenShift AI 中包含的 预安装运行时。如果默认运行时不满足您的需要,您还可以添加自己的自定义运行时。例如,如果 TGIS 运行时不支持 Hugging Face Text Generation Inference (TGI) 支持的模型格式,您可以创建自定义运行时来添加对模型的支持。
作为管理员,您可以使用 OpenShift AI 接口来添加和启用自定义模型运行时。然后,您可以在单模式服务平台上部署模型时选择自定义运行时。
红帽不提供对自定义运行时的支持。您需要确保获得许可来使用您添加的任何自定义运行时,以及正确配置和维护它们。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
- 您已构建自定义运行时,并将镜像添加到容器镜像存储库中,如 Quay。
流程
在 OpenShift AI 仪表板中点 Settings > Serving runtime。
Serving 运行时 页面将打开,并显示已安装和启用的模型服务运行时。
要添加自定义运行时,请选择以下选项之一:
- 要开始使用现有运行时(例如,KServe 的 TGIS Standalone ServingRuntime),请点现有运行时旁的操作菜单(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.12.3. 为单模式服务平台添加经过测试和验证的模型运行时
除了预安装和自定义模型服务运行时外,您还可以使用红帽经过测试和验证的模型运行时,如 NVIDIA Triton Inference Server 来支持您的需要。有关红帽经过测试和验证的运行时的更多信息,请参阅 Red Hat OpenShift AI 测试和验证的运行时。
您可以使用 Red Hat OpenShift AI 仪表板为单模式服务平台添加并启用 NVIDIA Triton Inference Server 运行时。然后,您可以在单模式服务平台上部署模型时选择运行时。
先决条件
- 您已以具有 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。
如果您选择了 REST API 协议,请直接在嵌入的编辑器中输入或粘贴以下 YAML 代码。
apiVersion: serving.kserve.io/v1alpha1 kind: ServingRuntime metadata: name: triton-kserve-rest labels: opendatahub.io/dashboard: "true" spec: annotations: prometheus.kserve.io/path: /metrics prometheus.kserve.io/port: "8002" containers: - args: - tritonserver - --model-store=/mnt/models - --grpc-port=9000 - --http-port=8080 - --allow-grpc=true - --allow-http=true image: nvcr.io/nvidia/tritonserver@sha256:xxxxx name: kserve-container resources: limits: cpu: "1" memory: 2Gi requests: cpu: "1" memory: 2Gi ports: - containerPort: 8080 protocol: TCP protocolVersions: - v2 - grpc-v2 supportedModelFormats: - autoSelect: true name: tensorrt version: "8" - autoSelect: true name: tensorflow version: "1" - autoSelect: true name: tensorflow version: "2" - autoSelect: true name: onnx version: "1" - name: pytorch version: "1" - autoSelect: true name: triton version: "2" - autoSelect: true name: xgboost version: "1" - autoSelect: true name: python version: "1"
如果您选择了 gRPC API 协议,请直接在嵌入的编辑器中输入或粘贴以下 YAML 代码。
apiVersion: serving.kserve.io/v1alpha1 kind: ServingRuntime metadata: name: triton-kserve-grpc labels: opendatahub.io/dashboard: "true" spec: annotations: prometheus.kserve.io/path: /metrics prometheus.kserve.io/port: "8002" containers: - args: - tritonserver - --model-store=/mnt/models - --grpc-port=9000 - --http-port=8080 - --allow-grpc=true - --allow-http=true image: nvcr.io/nvidia/tritonserver@sha256:xxxxx name: kserve-container ports: - containerPort: 9000 name: h2c protocol: TCP volumeMounts: - mountPath: /dev/shm name: shm resources: limits: cpu: "1" memory: 2Gi requests: cpu: "1" memory: 2Gi protocolVersions: - v2 - grpc-v2 supportedModelFormats: - autoSelect: true name: tensorrt version: "8" - autoSelect: true name: tensorflow version: "1" - autoSelect: true name: tensorflow version: "2" - autoSelect: true name: onnx version: "1" - name: pytorch version: "1" - autoSelect: true name: triton version: "2" - autoSelect: true name: xgboost version: "1" - autoSelect: true name: python version: "1" volumes: - emptyDir: null medium: Memory sizeLimit: 2Gi name: shm
-
在
metadata.name
字段中,确保您添加的运行时值与您已添加的运行时不匹配。 可选: 要为您添加的运行时使用自定义显示名称,请添加
metadata.annotations.openshift.io/display-name
字段并指定一个值,如下例所示:apiVersion: serving.kserve.io/v1alpha1 kind: ServingRuntime metadata: name: kserve-triton annotations: openshift.io/display-name: Triton ServingRuntime
注意如果没有为您的运行时配置自定义显示名称,OpenShift AI 会显示
metadata.name
字段的值。点 Create。
Serving 运行时页面将打开,并显示所安装的运行时的更新列表。观察您添加的运行时会自动启用。显示您在创建运行时时指定的 API 协议。
- 可选: 要编辑运行时,请点击操作菜单(WWN)并选择 Edit。
验证
- 您添加的 model-serving 运行时显示在 Serving 运行时 页面中的 enabled 状态。
其他资源
2.12.4. 在单模型服务平台上部署模型
当您启用了单型号服务平台时,您可以启用预安装或自定义模型运行时,并开始在平台上部署模型。
文本 Generation Inference Server (TGIS) 基于 Hugging Face TGI 的早期分叉。红帽将继续开发独立 TGIS 运行时来支持 TGI 模型。如果模型无法在 OpenShift AI 的当前版本中工作,则未来版本可能会添加支持。同时,您还可以添加自己的自定义运行时来支持 TGI 模型。如需更多信息,请参阅为单模型服务平台添加自定义模型运行时。
先决条件
- 您已登陆到 Red Hat OpenShift AI。
-
如果您使用 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组(如
rhoai-users
或rhoai-admins
)的一部分。 - 已安装 KServe。
- 您已启用了 single-model 服务平台。
- 要为部署的模型启用令牌授权和外部模型路由,您已添加了 Authorino 作为授权供应商。如需更多信息,请参阅为 单模式服务平台添加授权供应商。
- 您已创建了数据科学项目。
- 您可以访问 S3 兼容对象存储。
- 对于您要部署的模型,您知道 S3 兼容对象存储桶中的关联文件夹路径。
- 要使用 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 ServingRuntime 与 Gaudi Accelerators 支持 KServe 运行时,启用了对 OpenShift AI 中的混合处理单元(HPU)的支持。这包括安装 Intel Gaudi AI Accelerator operator 并配置加速器配置集。如需更多信息,请参阅为 OpenShift 设置 Gaudi 和 使用加速器。
要将 vLLM ROCm ServingRuntime 用于 KServe 运行时,您可以在 OpenShift AI 中启用了对 AMD 图形处理单元(GPU)的支持。这包括安装 AMD GPU operator 和配置加速器配置集。如需更多信息,请参阅在 OpenShift 上部署 AMD GPU 操作器 和使用加速器。
注意在 OpenShift AI 2.17 中,红帽支持 NVIDIA GPU、Intel Gaudi 和 AMD GPU 加速器用于模型服务。
部署 RHEL AI 模型:
- 您已为 KServe 运行时启用了 vLLM ServingRuntime。
- 您已从红帽容器注册中心下载了模型,并将其上传到 S3 兼容对象存储。
流程
在左侧菜单中,单击 Data Science Projects。
Data Science Projects 页面将打开。
点击您要在其中部署模型的项目的名称。
此时会打开项目详情页面。
- 点 Models 选项卡。
执行以下操作之一:
- 如果您看到 Single-model 服务平台 标题,请点击 Deploy model on the 标题。
- 如果没有看到任何标题,请点击 Deploy model 按钮。
此时会打开 Deploy model 对话框。
- 在 Model deployment name 字段中输入您要部署的模型的唯一名称。
- 在 Serving runtime 字段中,选择一个已启用的运行时。
- 在 Model 框架(名称 - version) 列表中选择一个值。
- 在要部署的模型服务器副本的 Number of model server replicas 中,指定一个值。
- 在 Model server size 列表中选择一个值。
只有在集群中启用了加速器支持并创建了加速器配置集时,以下选项才可用:
- 从 Accelerator 列表中,选择一个加速器。
- 如果在上一步中选择了加速器,请在 Number of accelerators 字段中指定要使用的加速器数。
- 可选:在 Model route 部分中,选择 Make deployed model available via an external route 复选框,使部署的模型可供外部客户端使用。
要要求对部署的模型对 inference 请求进行令牌授权,请执行以下操作:
- 选择 Require token authorization。
- 在 Service account name 字段中,输入要为其生成令牌的服务帐户名称。
要指定模型的位置,请执行以下操作之一:
使用现有连接
- 选择现有连接。
- 从 Name 列表中,选择一个您之前定义的连接。
在 Path 字段中输入在指定数据源中包含模型的文件夹路径。
重要OpenVINO Model Server 运行时对指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025。
使用新连接
要定义模型可访问的新连接,请选择 New connection。
在 Add connection modal 中,选择 Connection type。S3 兼容对象存储 和 URI 选项是预安装的连接类型。如果您的 OpenShift AI 管理员添加了其他选项,则可能会使用其他选项。
此时会打开 Add connection 表单,其中包含特定于您选择的连接类型的字段。
填写连接详情字段。
重要如果您的连接类型是 S3 兼容对象存储,您必须提供包含您的数据文件的文件夹路径。OpenVINO Model Server 运行时对指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025。
(可选)在 配置参数 部分中自定义运行时参数:
- 修改附加服务 运行时参数中的值,以定义部署模型的行为方式。
修改 附加环境变量中的值,以在模型环境中定义变量。
Configuration parameters 部分显示预定义的服务运行时参数(若有可用)。
注意不要修改端口或模型服务运行时参数,因为它们需要设置特定的值。覆盖这些参数可能会导致部署失败。
- 点 Deploy。
验证
- 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model Serving 页面中显示 Status 列中带有复选标记。
2.12.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
:apiVersion: serving.kserve.io/v1alpha1 kind: InferenceService metadata: name: my-inference-service spec: predictor: annotations: serving.knative.dev/progress-deadline: 30m
注意确保在
spec.predictor.annotations
级别上设置progress-deadline
,以便 KServeInferenceService
可以将progress-deadline
复制到 KNative Service 对象。
2.12.6. 自定义部署模型运行时的参数
除了默认的模型或增强现有模型部署外,您可能需要额外的参数。在这种情况下,您可以修改现有运行时的参数以满足您的部署需求。
自定义运行时的参数仅会影响所选模型部署。
先决条件
- 您已以具有 OpenShift AI 管理员特权的用户身份登录到 OpenShift AI。
- 您已在单模式服务平台上部署了模型。
流程
在 OpenShift AI 仪表板中点左侧菜单中的 Model Serving。
此时会打开 Deployed model 页面。
点击您要自定义的型号名称旁的操作菜单(swig),然后选择 Edit。
Configuration parameters 部分显示预定义的服务运行时参数(若有可用)。
在 Configuration parameters 部分中自定义运行时参数:
- 修改附加服务 运行时参数中的值,以定义部署模型的行为方式。
修改 附加环境变量中的值,以在模型环境中定义变量。
注意不要修改端口或模型服务运行时参数,因为它们需要设置特定的值。覆盖这些参数可能会导致部署失败。
- 完成自定义运行时参数后,点 Redeploy 以保存和部署模型。
验证
- 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model Serving 页面中显示 Status 列中带有复选标记。
使用以下方法之一确认您设置的参数和变量出现在
spec.predictor.model.args
和spec.predictor.model.env
中:- 从 OpenShift 控制台检查 InferenceService YAML.
在 OpenShift CLI 中使用以下命令:
oc get -o json inferenceservice <inferenceservicename/modelname> -n <projectname>
2.12.7. 可自定义模型服务运行时参数
您可以修改现有模型服务运行时的参数,以满足您的部署需求。
有关每个支持的服务运行时的参数的更多信息,请参阅下表:
服务运行时 | 资源 |
---|---|
NVIDIA Triton Inference Server | |
Caikit 文本 Generation Inference Server (Caikit-TGIS) ServingRuntime for KServe | |
Caikit Standalone ServingRuntime for KServe | |
OpenVINO Model Server | |
文本 Generation Inference Server (TGIS) Standalone ServingRuntime for KServe | |
vLLM ServingRuntime for KServe |
其他资源
2.12.8. 使用 OCI 容器进行模型存储
作为在 S3 存储桶或 URI 中存储模型的替代选择,您可以将模型上传到开放容器项目(OCI)容器中。使用 OCI 容器进行模型存储可帮助您:
- 通过避免多次下载同一模型来减少启动时间。
- 通过减少本地下载的模型数量来减少磁盘空间使用量。
- 通过允许预抓取镜像来提高模型性能。
使用 OCI 容器进行模型存储涉及以下任务:
- 在 OCI 镜像中存储模型
- 从 OCI 镜像部署模型
Red Hat OpenShift AI 2.17 当前提供了将 OCI 容器用于模型存储作为技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
2.12.8.1. 在 OCI 镜像中存储模型
您可以在 OCI 镜像中存储模型。以下流程使用 ONNX 格式存储 mobileNet v2-7 模型的示例。
先决条件
- 您有 ONNX 格式的模型。此流程中的示例使用 ONNX 格式的 mobileNet v2-7 模型。
- 已安装 Podman 工具。
流程
在本地机器的终端窗口中,创建一个临时目录来存储模型以及创建 OCI 镜像所需的支持文件:
cd $(mktemp -d)
在临时目录中创建一个
models
文件夹:mkdir -p models/1
注意这个示例命令指定子目录
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/
使用
tree
命令确认模型文件按预期位于目录结构中:tree
tree
命令应该返回类似以下示例的目录结构:. ├── Containerfile └── models └── 1 └── mobilenetv2-7.onnx
创建名为
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
-
指定提供 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>
2.12.8.2. 部署存储在 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
使用 OpenShift AI Applications 项目
kserve-ovms
模板来创建ServingRuntime
资源,并在新项目中配置 OpenVINO 模型服务器:oc process -n redhat-ods-applications -o yaml kserve-ovms | oc apply -f -
验证名为
kserve-ovms
的ServingRuntime
是否已创建:oc get servingruntimes
该命令应该返回类似如下的输出:
NAME DISABLED MODELTYPE CONTAINERS AGE kserve-ovms openvino_ir kserve-container 1m
根据模型是否存储于私有还是公共 OCI 存储库,创建
InferenceService
YAML 资源:对于存储在公共 OCI 存储库中的模型,创建一个带有以下值的
InferenceService
YAML 文件,将 <user_name>、<
>、<repository_name>
、<tag_nametag_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.12.9. 在 vLLM 中使用加速器
OpenShift AI 包含对 NVIDIA、AMD 和 Intel Gaudi 加速器的支持。OpenShift AI 还包括预安装的模型服务运行时,提供加速器支持。
2.12.9.1. NVIDIA GPU
您可以使用 vLLM ServingRuntime for KServe 运行时提供 NVIDIA 图形处理单元(GPU)的模型。要使用运行时,您必须在 OpenShift AI 中启用 GPU 支持。这包括在集群中安装和配置 Node Feature Discovery Operator。如需更多信息,请参阅安装 Node Feature Discovery operator 和 启用 NVIDIA GPU。
2.12.9.2. Intel Gaudi Accelerators
您可以使用 vLLM ServingRuntime 和 Gaudi 加速器支持 Intel Gaudi Accelerators 为 Intel Gaudi Accelerators 提供模型。要使用运行时,您必须在 OpenShift AI 中启用混合处理支持(HPU)支持。这包括安装 Intel Gaudi AI Accelerator operator 并配置加速器配置集。如需更多信息,请参阅为 OpenShift 设置 Gaudi 和 使用加速器配置集。
有关推荐的 vLLM 参数、环境变量、支持的配置等信息,请参阅 带有 Intel® Gaudi® AI Accelerators 的 vLLM。
2.12.9.3. AMD GPU
您可以使用 vLLM ROCm ServingRuntime for KServe 运行时提供 AMD GPU 的模型。要使用运行时,您必须在 OpenShift AI 中为 AMD 图形处理单元(GPU)启用支持。这包括安装 AMD GPU operator 和配置加速器配置集。如需更多信息,请参阅在 OpenShift 上部署 AMD GPU Operator 和 使用加速器配置集。
其他资源
2.12.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 1 --max-model-len=6144 2
如果您要部署 granite-7B-instruct 模型,请在 Configuration parameters 部分中的 Additional service runtime 参数 中添加以下参数:
--distributed-executor-backend=mp 1
- 1
- 将后端设置为分布式模型 worker 的多处理
如果您要部署 granite-20B-code-instruct 模型,请在 Configuration parameters 部分中的 Additional service runtime 参数 中添加以下参数:
--distributed-executor-backend=mp 1 –-tensor-parallel-size=4 2 --max-model-len=6448 3
如果您要部署 mistral-7B-Instruct-v0.3 模型,请在 Configuration parameters 部分中的 Additional service runtime 参数 中添加以下参数:
--distributed-executor-backend=mp 1 --max-model-len=15344 2
- 点 Deploy。
验证
- 确认部署的模型显示在项目的 Models 选项卡中,并在仪表板的 Model Serving 页面中显示 Status 列中带有复选标记。
对于 granite 模型,请使用以下示例命令验证对部署的模型的 API 请求:
curl -q -X 'POST' \ "https://<inference_endpoint_url>:443/v1/chat/completions" \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d "{ \"model\": \"<model_name>\", \"prompt\": \"<prompt>", \"max_tokens\": <max_tokens>, \"temperature\": <temperature> }"
其他资源