3.4. 使用单模式服务平台部署模型
在单模式服务平台上,每个模型都部署在自己的模型服务器上。这有助于您部署、监控、扩展和维护需要增加资源的大型模型。
3.4.1. 启用单一模型服务平台 复制链接链接已复制到粘贴板!
安装 KServe 后,您可以使用 Red Hat OpenShift AI 仪表板启用单一模型服务平台。您还可以使用控制面板为平台启用模型服务运行时。
先决条件
- 您已登陆到 Red Hat OpenShift AI。
-
如果您使用专用的 OpenShift AI 组,则作为 OpenShift 中的 admin 组的一部分(例如,
rhoai-admins)。 - 您已安装了 KServe。
步骤
启用单一模型服务平台,如下所示:
-
在左侧菜单中,点击 Settings
Cluster settings。 - 找到 Model serving platform 部分。
- 要为项目启用单一模型服务平台,请选择 Single model serving platform 复选框。
- 点 Save Changes。
-
在左侧菜单中,点击 Settings
为单型号服务平台启用预安装的运行时,如下所示:
在 OpenShift AI 仪表板的左侧菜单中,点 Settings
Serving runtime。 Serving 运行时 页面显示您添加的任何自定义运行时,以及以下预安装的运行时:
- Caikit TGIS ServingRuntime for KServe
- OpenVINO Model Server
- TGIS 独立 ServingRuntime for KServe
设置您要用来 启用 的运行时。
单个模型服务平台现在可用于模型部署。
3.4.2. 为单型号服务平台添加自定义模型运行时 复制链接链接已复制到粘贴板!
Model-serving 运行时增加了对一组指定的模型框架(即格式)的支持。您可以选择使用 OpenShift AI 附带的 预安装运行时,或添加您自己的自定义运行时。这在预安装的运行时无法满足您的需要的情况下非常有用。例如,您可能会发现 TGIS 运行时不支持 Hugging Face Text Generation Inference (TGI) 支持的特定模型格式。在这种情况下,您可以创建一个自定义运行时来添加对模型的支持。
作为管理员,您可以使用 OpenShift AI 接口添加和启用自定义模型运行时。然后,当您在单型号服务平台上部署模型时,您可以选择自定义运行时。
OpenShift AI 允许您添加自己的自定义运行时,但不支持运行时本身。您需要正确配置和维护自定义运行时。您还负责确保您获得许可,以使用您添加的任何自定义运行时。
先决条件
- 您已以管理员身份登录到 OpenShift AI。
- 您已构建了自定义运行时,并将镜像添加到容器镜像存储库中,如 Quay。
步骤
在 OpenShift AI 仪表板中点 Settings > Serving runtime。
Serving 运行时 页面将打开,并显示已安装和启用的 model-serving 运行时。
要添加自定义运行时,请选择以下选项之一:
- 要使用现有运行时(例如,TGIS Standalone ServingRuntime for KServe)启动,请点击现有运行时旁的操作菜单(uildDefaults),然后点 Duplicate。
- 要添加新的自定义运行时,请单击 Add serving runtime。
- 在 Select the model serving 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。
验证
- 您添加的自定义 model-serving 运行时会处于 Serving 运行时 页面中的启用状态。
3.4.3. 在单一模型服务平台上部署模型 复制链接链接已复制到粘贴板!
当您启用了单一模型服务平台后,您可以启用预安装或自定义模型运行时,并开始在平台上部署模型。
文本 Generation Inference Server (TGIS) 基于 Hugging Face TGI 的早期分叉。红帽将继续开发独立 TGIS 运行时来支持 TGI 模型。如果模型无法在 OpenShift AI 的当前版本中工作,则可能会在以后的版本中添加支持。同时,您还可以添加自己的自定义运行时来支持 TGI 模型。如需更多信息,请参阅 为单一模型服务平台添加自定义模型运行时。
先决条件
- 您已登陆到 Red Hat OpenShift AI。
-
如果您使用专用的 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组的一部分(例如,rh
oai-users或rhoai-admins)。 - 您已安装了 KServe。
- 您已启用了单一模型服务平台。
- 您已创建了数据科学项目。
- 要使用 Caikit-TGIS 运行时,已将模型转换为 Caikit 格式。例如,请参阅 cai kit-tgis-serving 存储库中的将 Hugging Face Hub 模型转换为 Caikit 格式。
- 您知道您希望模型访问的数据连接的文件夹路径。
- 如果要将图形处理单元(GPU)与模型服务器搭配使用,在 OpenShift AI 中启用了 GPU 支持。请参阅 OpenShift AI 中的启用 GPU 支持。
步骤
- 在左侧菜单中,单击 Data Science Projects。
- 点击您要在其中部署模型的项目的名称。
在 Models and model servers 部分中,执行以下操作之一:
- 如果您看到 Single model serving platform 标题,点 Deploy model on the 标题。
- 如果没有看到任何标题,请点击 Deploy model 按钮。
此时会打开 Deploy model 对话框。
配置部署模型的属性,如下所示:
- 在 Model name 字段中,输入您要部署的模型的唯一名称。
- 在 Serving runtime 字段中,选择一个启用的运行时。
- 从 Model 框架 列表中,选择一个值。
- 在 Number of model replicas to deploy 字段中,指定一个值。
- 从 Model server size 列表中选择一个值。
要指定模型的位置,请执行以下操作之一:
使用现有数据连接
- 选择 Existing data connection。
- 在 Name 列表中选择您之前定义的数据连接。
在 Path 字段中,输入包含指定数据源中的模型的文件夹路径。
重要OpenVINO Model Server 运行时对如何指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025。
使用新数据连接
- 要定义模型可以访问的新数据连接,请选择 New data connection。
- 在 Name 字段中输入数据连接的唯一名称。
- 在 Access key 字段中,输入 S3 兼容对象存储供应商的访问密钥 ID。
- 在 Secret key 字段中,为您指定的 S3 兼容对象存储帐户输入 secret 访问密钥。
- 在 Endpoint 字段中,输入 S3 兼容对象存储桶的端点。
- 在 Region 字段中,输入 S3 兼容对象存储帐户的默认区域。
- 在 Bucket 字段中,输入 S3 兼容对象存储桶的名称。
在 Path 字段中,在 S3 兼容对象存储中输入包含您的数据文件的文件夹路径。
重要OpenVINO Model Server 运行时对如何指定模型路径有具体要求。如需更多信息,请参阅 OpenShift AI 发行注记中的已知问题 RHOAIENG-3025。
- 点 Deploy。
验证
- 确认部署的模型显示在项目的 Models and model servers 部分中,并在仪表板的 Model Serving 页面中显示 Status 列中的 check 标记。
3.4.4. 访问在单个模型服务平台上部署的模型的 inference 端点 复制链接链接已复制到粘贴板!
当您使用单一模型服务平台部署模型时,模型可作为服务使用 API 请求访问。这可让您根据数据输入返回预测。要使用 API 请求与部署的模型交互,您必须了解如何访问可用的 inference 端点。
先决条件
- 您已登陆到 Red Hat OpenShift AI。
-
如果您使用专用的 OpenShift AI 组,则作为 OpenShift 中的用户组或 admin 组的一部分(例如,rh
oai-users或rhoai-admins)。 - 您已使用单一模型服务平台部署了模型。
步骤
- 在 OpenShift AI 仪表板中,点 Model Serving。
- 从 Project 列表中,选择部署模型的项目。
- 在 Deployed models 表中,对于您要访问的模型,复制 Inference endpoint 列中显示的 URL。
根据您要对模型执行的操作(以及模型支持该操作),在 inference 端点 URL 的末尾添加以下路径之一:
Caikit TGIS ServingRuntime for KServe
-
:443/api/v1/task/text-generation -
:443/api/v1/task/server-streaming-text-generation
TGIS 独立 ServingRuntime for KServe
-
:443 fmaas.GenerationService/Generate :443 fmaas.GenerationService/GenerateStream注意要查询 TGIS 独立运行时的端点,还必须将文件下载到 IBM text-generation-inference 存储库的
proto目录中。
OpenVINO Model Server
-
/v2/models/<model-name>/infer
如所示的路径所示,单一模型服务平台使用 OpenShift 路由器的 HTTPS 端口(通常是端口 443)来提供外部 API 请求。
-
使用端点向部署的模型发出 API 请求,如下例所示:
Caikit TGIS ServingRuntime for KServe
curl --json '{"model_id": "<model_name>", "inputs": "<text>"}' https://<inference_endpoint_url>:443/api/v1/task/server-streaming-text-generationcurl --json '{"model_id": "<model_name>", "inputs": "<text>"}' https://<inference_endpoint_url>:443/api/v1/task/server-streaming-text-generationCopy to Clipboard Copied! Toggle word wrap Toggle overflow TGIS 独立 ServingRuntime for KServe
grpcurl -proto text-generation-inference/proto/generation.proto -d '{"requests": [{"text":"<text>"}]}' -H 'mm-model-id: <model_name>' -insecure <inference_endpoint_url>:443 fmaas.GenerationService/Generategrpcurl -proto text-generation-inference/proto/generation.proto -d '{"requests": [{"text":"<text>"}]}' -H 'mm-model-id: <model_name>' -insecure <inference_endpoint_url>:443 fmaas.GenerationService/GenerateCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenVINO Model Server
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>] }]}'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>] }]}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow