特性:llm-d 加速器模拟
概览
当容量有限或已投入生产负载时,进行大规模 AI/ML 工作负载测试会非常困难。llm-d 提供了一个轻量级的模型服务器,它可以在无需连接加速器的情况下模拟执行推理的行为。这种模拟服务器可以在仅限 CPU 的机器上以宽配置或密集配置运行,以验证系统其他部分的正确行为,包括 Kubernetes 自动扩缩容和 inference-scheduler。
本指南演示了如何部署模拟器镜像 ghcr.io/llm-d/llm-d-inference-sim 并生成推理响应。
先决条件
-
请在本地系统中安装适当的客户端工具以使用本指南。
-
配置并部署您的 Gateway 控制平面。
-
在系统中安装 监控栈。
-
为安装创建一个命名空间。
export NAMESPACE=llm-d-sim # or any other namespace (shorter names recommended)
kubectl create namespace ${NAMESPACE}
注意: 与其他需要模型的示例不同,模拟器对 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_POSTFIX、gaie-$RELEASE_NAME_POSTFIX 和 ms-$RELEASE_NAME_POSTFIX。
自定义
有关自定义指南的信息以及构建自己的指南的技巧,请参阅 我们的文档
此内容自动同步自 llm-d/llm-d 仓库 main 分支上的 guides/simulated-accelerators/README.md。