2.4. 通过对 llm-d 使用分布式推测部署模型
与 llm-d 的分布式干扰是一个 Kubernetes 原生开源框架,旨在大规模服务大型语言模型(LLM)。您可以与 llm-d 一起使用分布式干扰来简化 generative AI 的部署,专注于在各种硬件加速器中实现高性能和成本效益。
使用 llm-d 的分布式追踪主要功能包括:
- 使用前缀缓存感知路由和不aggregated 服务等优化来有效地处理大型模型。
- 集成到标准的 Kubernetes 环境中,它利用 Envoy 代理等专用组件来处理网络和路由,以及高性能库,如 vLLM 和 NVIDIA Inference Transfer Library (NIXL)。
- 测试的方法和众所周知的预设减少了大规模部署推销的复杂性,因此用户可以专注于构建应用程序,而不是管理基础架构。
使用 Red Hat OpenShift AI 的分布式推测服务模型包括以下步骤:
- 安装 OpenShift AI.
- 启用单一模型服务平台。
- 在 Kubernetes 集群上启用分布式干扰.
- 创建 LLMInferenceService 自定义资源(CR)。
- 部署模型。
此流程描述了如何为 LLMInferenceService 资源创建自定义资源(CR)。您可以将默认的 InferenceService 替换为 LLMInferenceService。
先决条件
- 您已启用了单一模型服务平台。
- 您可以访问运行 4.19.9 或更高版本的 OpenShift 集群。
- 在集群中没有安装 OpenShift Service Mesh v2。
您的集群管理员在
openshift-ingress命名空间中创建了GatewayClass和一个名为openshift-ai-inference的网关,如 带有 OpenShift Container Platform Networking 的网关 API 所述。重要检查 网关 API 部署拓扑。仅在可信命名空间中使用共享网关。
-
您的集群管理员已在 OpenShift 中安装了
LeaderWorkerSetOperator。如需更多信息,请参阅 Leader Worker Set Operator 文档。 如果您在裸机集群中运行 OpenShift:您的集群管理员已设置了 MetalLB Operator,以便为
openshift-ai-inferenceGateway 服务提供类型为LoadBalancer的外部 IP 地址。如需更多信息,请参阅使用 MetalLB 进行负载平衡。确保 LoadBalancer 配置为如下:- 具有标准 Kubernetes Service 清单。
-
在
spec部分中具有type:LoadBalancer。
流程
- 以开发者身份登录 OpenShift 控制台。
使用以下信息创建
LLMInferenceServiceCR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 inference 服务的
spec部分自定义以下参数:-
replicas- 指定副本数量。 model- 根据模型的存储方式(uri)和模型名称(名称)提供 URI。-
S3 bucket:
s3://<bucket-name>/<object-key> -
持久性卷声明(PVC):
pvc://<claim-name>/<pvc-path> -
OCI 容器镜像:
oci://<registry_host>/<org_or_username>/<repository_name><tag_or_digest> -
HuggingFace:
hf://<model>/<optional-hash>
-
S3 bucket:
-
router- 提供 HTTPRoute 和网关,或者留空来自动创建 HTTPRoute 和网关。
-
- 保存该文件。
2.4.1. 使用 llm-d 的分布式追踪示例 复制链接链接已复制到粘贴板!
这些示例演示了如何在常见场景中通过 llm-d 使用分布式推测。
2.4.1.1. 单节点 GPU 部署 复制链接链接已复制到粘贴板!
使用单 GPU-per-replica 部署模式用于开发、测试或部署较小的模型,如 7-billion-parameter 模型。
有关使用单节点 GPU 部署的示例,请参阅 单节点 GPU 部署示例。
2.4.1.2. 多节点部署 复制链接链接已复制到粘贴板!
有关使用多节点部署的示例,请参阅 DeepSeek-R1 多节点部署示例。
2.4.1.3. 使用 KV 缓存路由的智能 inference 调度程序 复制链接链接已复制到粘贴板!
您可以配置调度程序,以跟踪跨推线端点的键值(KV)缓存块,并将请求路由到具有最高缓存命中率的端点。此配置通过最大化缓存重复使用来提高吞吐量并缩短延迟。
例如,请参阅 Precise Prefix KV Cache Routing。