使用 LLM-D 安装
本指南提供了将 vLLM Semantic Router (vsr) 与 LLM-D 结合部署的分步说明。这也将说明一个关键设计模式,即使用 vsr 作为 model selector,结合使用 LLM-D 作为 endpoint selector。
Model selector 提供将 LLM 查询路由到多个完全不 同的 LLM 模型之一的能力,而 endpoint selector 则选择多个 endpoint 之一,每个 endpoint 服务一个等效模型(通常是完全相同的基础模型)。因此,此部署展示了 vLLM Semantic Router 作为 model selector 如何与 LLM-D 等 endpoint selector 解决方案完美互补。
由于 LLM-D 有多种部署配置,其中一些需要更大的硬件设置,我们将演示 LLM-D 与 vsr 配合工作的基线版本,以介绍核心概念。当使用更复杂的 LLM-D 配置和生产级良好路径时,这些核心概念同样适用,如 LLM-D 仓库中此链接所述。
此外,我们将使用 LLM-D 与 Istio 作为 Inference Gateway,以构建在本仓库中记录的 Istio 部署示例的步骤和硬件设置之上。无论是否使用 vsr,Istio 也常用作 LLM-D 的默认网关。
架构概览
部署包含以下组件:
- vLLM Semantic Router:为基于 Envoy 的 Gateway 提供智能请求路由和处理决策
- LLM-D:用于大规模 LLM 推理的分布式推理平台,具有 SOTA 性能。
- Istio Gateway:Istio 的 Kubernetes Gateway API 实现,底层使用 Envoy 代理
- Gateway API Inference Extension:通过 ExtProc 服务器扩展 Gateway API 用于推理的附加 API
- 两个 vLLM 实例各服务一个模型:此拓扑中用于演示 Semantic Router 的示例后端 LLM
前置条件
开始之前,请确保已安装以下工具:
- Docker - 容器运行时
- minikube - 本地 Kubernetes
- kind - Kubernetes in Docker
- kubectl - Kubernetes CLI
- istioctl - Istio CLI
我们在下面的描述中使用 minikube。如上所述,本指南构建在本仓库的 vsr + Istio 部署指南之上,因此将参考该指南的公共部分并在此添加增量步骤。
与 Istio 指南一样,您需要一台至少有 2 个 GPU 支持的机器来运行本练习,以便我们可以部署并测试使用 vsr 在两个不同的 LLM 基础模型之间进行模型路由。
步骤 1:Istio 指南的公共步骤
首先,按照 Istio 指南中的步骤创建本地 minikube 集群。
步骤 2:安装 Istio Gateway、Gateway API、Inference Extension CRDs
完全按照 Istio 指南中的描述安装 Kubernetes Gateway API、Gateway API Inference Extension、Istio 控制平面和 Istio Gateway 实例的 CRDs。使用该指南中记录的相同版本的 Istio。如果您按照 LLM-D 的良好路径,这部分将由 LLM-D 仓库中的 Gateway 提供商 Helm charts 完成。在本指南中,我们手动设置这些以保持与本仓库 Istio 指南的通用性和可重用性。这也将帮助读者理解基于 GIE/EPP 的部署和基于 LLM-D 的部署之间的共同点,以及 vsr 如何在两种情况下使用。
如果正确安装,您应该使用以下命令看到 gateway api 和 inference extension 的 api CRDs 以及 Istio gateway 和 Istiod 的运行 pods。
kubectl get crds | grep gateway
kubectl get crds | grep inference
kubectl get pods | grep istio
kubectl get pods -n istio-system