跳转至正文

特性:llm-d 加速器模拟

概览

当容量有限或已投入生产负载时,进行大规模 AI/ML 工作负载测试会非常困难。llm-d 提供了一个轻量级的模型服务器,它可以在无需连接加速器的情况下模拟执行推理的行为。这种模拟服务器可以在仅限 CPU 的机器上以宽配置或密集配置运行,以验证系统其他部分的正确行为,包括 Kubernetes 自动扩缩容和 inference-scheduler

本指南演示了如何部署模拟器镜像 ghcr.io/llm-d/llm-d-inference-sim 并生成推理响应。

先决条件

注意: 与其他需要模型的示例不同,模拟器对 vLLM 服务器进行了桩处理(stub),因此不需要 HuggingFace 令牌。

安装

使用 helmfile 编排并安装技术栈。部署技术栈的命名空间将衍生自 ${NAMESPACE} 环境变量。如果您尚未设置此变量,在此示例中它将默认为 llm-d-sim

部署

cd guides/simulated-accelerators
helmfile apply -n ${NAMESPACE}

注意: 您可以设置 $RELEASE_NAME_POSTFIX 环境变量来更改发布名称。这是我们支持并发安装的方式。例如:RELEASE_NAME_POSTFIX=sim-2 helmfile apply -n ${NAMESPACE}

注意: 本示例使用 Istio 作为默认提供程序,有关使用特定提供程序进行安装的信息,请参阅 网关选项 (Gateway Options)

Gateway 选项

要指定您的网关选择,可以使用 -e <gateway option> 标志,例如:

helmfile apply -e kgateway -n ${NAMESPACE}

要查看支持哪些 Gateway 选项,请参考我们的 Gateway 提供商先决条件文档。每个提供商的 Gateway 配置都在 gateway-configurations 目录中进行跟踪。

您还可以自定义 Gateway,更多信息请参阅我们的 Gateway 自定义文档

安装 HTTPRoute

请遵循特定提供商的说明来安装 HTTPRoute。

为 "kgateway" 或 "istio" 安装

kubectl apply -f httproute.yaml -n ${NAMESPACE}

为 "gke" 安装

kubectl apply -f httproute.gke.yaml -n ${NAMESPACE}

验证安装

  • 首先,您应该能够列出所有 helm release,以查看已安装到所选命名空间中的 3 个 chart。
helm list -n ${NAMESPACE}
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
gaie-sim llm-d-sim 1 2025-08-24 11:44:26.88254 -0700 PDT deployed inferencepool-v1.2.0 v1.2.0
infra-sim llm-d-sim 1 2025-08-24 11:44:23.11688 -0700 PDT deployed llm-d-infra-v1.3.6 v0.3.0
ms-sim llm-d-sim 1 2025-08-24 11:44:32.17112 -0700 PDT deployed llm-d-modelservice-v0.3.17 v0.3.0
  • 通过此示例,您开箱即用应拥有以下资源
kubectl get all -n ${NAMESPACE}
NAME READY STATUS RESTARTS AGE
pod/gaie-sim-epp-694bdbd44c-4sh92 1/1 Running 0 7m14s
pod/infra-sim-inference-gateway-istio-68d59c4778-n6n5l 1/1 Running 0 7m19s
pod/ms-sim-llm-d-modelservice-decode-674774f45d-hhlxl 2/2 Running 0 7m10s
pod/ms-sim-llm-d-modelservice-decode-674774f45d-p5lsx 2/2 Running 0 7m10s
pod/ms-sim-llm-d-modelservice-decode-674774f45d-zpp84 2/2 Running 0 7m10s
pod/ms-sim-llm-d-modelservice-prefill-76c86dd9f8-pvbzm 1/1 Running 0 7m10s

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/gaie-sim-epp ClusterIP 10.16.0.143 <none> 9002/TCP,9090/TCP 7m14s
service/gaie-sim-ip-207d1d4c ClusterIP None <none> 54321/TCP 7m14s
service/infra-sim-inference-gateway-istio LoadBalancer 10.16.1.112 10.16.4.2 15021:33302/TCP,80:31413/TCP 7m19s

NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/gaie-sim-epp 1/1 1 1 7m14s
deployment.apps/infra-sim-inference-gateway-istio 1/1 1 1 7m19s
deployment.apps/ms-sim-llm-d-modelservice-decode 3/3 3 3 7m10s
deployment.apps/ms-sim-llm-d-modelservice-prefill 1/1 1 1 7m10s

NAME DESIRED CURRENT READY AGE
replicaset.apps/gaie-sim-epp-694bdbd44c 1 1 1 7m15s
replicaset.apps/infra-sim-inference-gateway-istio-68d59c4778 1 1 1 7m20s
replicaset.apps/ms-sim-llm-d-modelservice-decode-674774f45d 3 3 3 7m11s
replicaset.apps/ms-sim-llm-d-modelservice-prefill-76c86dd9f8 1 1 1 7m11s

注意: 本指南假设在您指定的 ${NAMESPACE} 中没有部署其他指南的内容。

使用该组件栈

有关开始发起推理请求的说明,请参阅 我们的文档

清理

移除部署

# From examples/sim
helmfile destroy -n ${NAMESPACE}

# Or uninstall manually
helm uninstall infra-sim -n ${NAMESPACE}
helm uninstall gaie-sim -n ${NAMESPACE}
helm uninstall ms-sim -n ${NAMESPACE}

注意:如果您设置了 $RELEASE_NAME_POSTFIX 环境变量,您的发布名称将与上述命令不同:infra-$RELEASE_NAME_POSTFIXgaie-$RELEASE_NAME_POSTFIXms-$RELEASE_NAME_POSTFIX

自定义

有关自定义指南的信息以及构建自己的指南的技巧,请参阅 我们的文档

内容来源

此内容自动同步自 llm-d/llm-d 仓库 main 分支上的 guides/simulated-accelerators/README.md

📝 如需建议修改,请编辑源文件创建 Issue