3.2. 使用 KServe 部署 Llama 模型
要在 OpenShift AI 中使用 Llama Stack 和 retrieve-augmented generation (RAG)工作负载,您必须使用 vLLM 模型服务器部署 Llama 模型,并在标准部署模式中配置 KServe。
先决条件
- 您已登陆到 Red Hat OpenShift AI。
- 具有集群管理员特权。
- 您已激活了 Llama Stack Operator。
- 已安装 KServe。
- 您已启用了 single-model 服务平台。有关启用单模式服务平台的更多信息,请参阅启用单模式服务平台。
- 您可以在仪表板配置中访问 single-model 服务平台。有关设置仪表板配置选项的更多信息,请参阅 自定义仪表板。
- 您已在 OpenShift AI 中启用 GPU 支持,包括安装 Node Feature Discovery Operator 和 NVIDIA GPU Operator。如需更多信息,请参阅安装 Node Feature Discovery Operator 和 启用 NVIDIA GPU。
-
已安装 OpenShift 命令行界面(
oc),如 安装 OpenShift CLI (OpenShift Dedicated)或 安装 OpenShift CLI (Red Hat OpenShift Service on AWS) 所述。 - 您已创建了数据科学项目。
- vLLM 服务运行时已安装并在您的环境中可用。
-
您已为包含
URI - v1连接类型的模型创建了存储连接。此存储连接必须定义 Llama 3.2 模型工件的位置。例如,oci://quay.io/redhat-ai-services/modelcar-catalog:llama-3.2-3b-instruct。有关创建存储连接的更多信息 ,请参阅添加与数据科学项目的连接。
这些步骤只在 OpenShift AI 版本 2.19 及更新的版本中被支持。
- 在 OpenShift AI 仪表板中,进入项目详情页面并点 Models 选项卡。
- 在 Single-model serving 平台标题中,点 Select single-model。
点 Deploy model 按钮。
此时会打开 Deploy model 对话框。
为您的模型配置部署属性:
- 在 Model deployment name 字段中输入部署的唯一名称。
-
在 Serving runtime 字段中,从下拉列表中选择
vLLM NVIDIA GPU 服务运行时作为 KServe。 -
在 Deployment mode 字段中,从下拉列表中选择
Standard。 -
设置 要部署到
1的模型服务器副本的数量。 在 Model server size 字段中,从下拉列表中选择
Custom。-
将 请求的 CPU 设置为
1 个内核。 -
将 Memory requested 设置为
10 GiB。 -
将 CPU 限制设置为
2 个内核。 -
将 Memory limit 设置为
14 GiB。 -
将 Accelerator 设置为
NVIDIA GPU。 -
将 加速器数设置为
1。
-
将 请求的 CPU 设置为
- 在 连接类型 中,从下拉列表中选择相关的数据 连接。
在 Additional serving runtime parameters 字段中,指定以下推荐参数:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 点 Deploy。
注意模型部署可能需要几分钟,特别是集群中部署的第一个模型。当相关镜像下载时,初始部署可能需要 10 分钟时间。
验证
验证
kserve-controller-manager和odh-model-controllerpod 是否正在运行:- 打开一个新的终端窗口。
- 通过 CLI 登录您的 OpenShift 集群:
- 在 OpenShift Web 控制台右上角,单击您的用户名,然后选择 Copy login command。
- 登录后,单击 Display token。
使用此令牌命令复制登录,并将它粘贴到 OpenShift 命令行界面(CLI)中。
oc login --token=<token> --server=<openshift_cluster_url>
$ oc login --token=<token> --server=<openshift_cluster_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证
kserve-controller-manager和odh-model-controllerpod 是否正在运行:oc get pods -n redhat-ods-applications | grep -E 'kserve-controller-manager|odh-model-controller'
$ oc get pods -n redhat-ods-applications | grep -E 'kserve-controller-manager|odh-model-controller'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认输出类似以下示例:
kserve-controller-manager-7c865c9c9f-xyz12 1/1 Running 0 4m21s odh-model-controller-7b7d5fd9cc-wxy34 1/1 Running 0 3m55s
kserve-controller-manager-7c865c9c9f-xyz12 1/1 Running 0 4m21s odh-model-controller-7b7d5fd9cc-wxy34 1/1 Running 0 3m55sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有看到
kserve-controller-manager和odh-model-controllerpod 之一,则部署可能存在问题。另外,如果 pod 出现在列表中,但Status没有设置为Running,请检查 pod 日志中的错误:oc logs <pod-name> -n redhat-ods-applications
$ oc logs <pod-name> -n redhat-ods-applicationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 inference 服务的状态:
oc get inferenceservice -n llamastack oc get pods -n <data science project name> | grep llama
$ oc get inferenceservice -n llamastack $ oc get pods -n <data science project name> | grep llamaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 部署会自动创建以下资源:
-
ServingRuntime资源。 -
InferenceService资源、部署、pod 和指向该 pod 的服务。
-
验证服务器是否正在运行。例如:
oc logs llama-32-3b-instruct-predictor-77f6574f76-8nl4r -n <data science project name>
$ oc logs llama-32-3b-instruct-predictor-77f6574f76-8nl4r -n <data science project name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查类似以下示例的日志的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 部署的模型显示在它所部署的项目的 Data Science 项目详情页面上的 Models 选项卡中。
如果您在查询
/v1/chat/completionsAPI 时在 pod 日志中看到ConvertTritonGPUToLLVM错误,且 vLLM 服务器重启或返回500 Internal Server错误,请应用以下临时解决方案:在部署模型前,从部署对话框中的 Additional serving runtime 参数字段中删除
--enable-chunked-prefill参数。这个错误显示类似如下:
/opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: error: Failures have been detected while processing an MLIR pass pipeline /opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: note: Pipeline failed while executing [`ConvertTritonGPUToLLVM` on 'builtin.module' operation]: reproducer generated at `std::errs, please share the reproducer above with Triton project.` INFO: 10.129.2.8:0 - "POST /v1/chat/completions HTTP/1.1" 500 Internal Server Error
/opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: error: Failures have been detected while processing an MLIR pass pipeline /opt/vllm/lib64/python3.12/site-packages/vllm/attention/ops/prefix_prefill.py:36:0: note: Pipeline failed while executing [`ConvertTritonGPUToLLVM` on 'builtin.module' operation]: reproducer generated at `std::errs, please share the reproducer above with Triton project.` INFO: 10.129.2.8:0 - "POST /v1/chat/completions HTTP/1.1" 500 Internal Server ErrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow