快速入门#

本教程将指导您完成 vLLM Production Stack 的最小化设置,使用一个 vLLM 实例和 facebook/opt-125m 模型。完成本教程后,您将拥有一个在带有 GPU 的 Kubernetes 环境中运行的 vLLM 部署。

目录#

先决条件#

  1. 一个支持 GPU 的 Kubernetes 环境。如果尚未设置,请遵循 先决条件 指南。

  2. 已安装 Helm。请参阅 install-helm.sh 脚本获取说明。

  3. 已安装 kubectl。请参阅 install-kubectl.sh 脚本获取说明。

  4. 已克隆项目仓库:vLLM Production Stack 仓库

  5. 对 Kubernetes 和 Helm 有基本了解。

步骤#

1. 部署 vLLM 实例#

1.1: 使用预定义配置#

vLLM Production Stack 仓库提供了一个预定义配置文件 values-01-minimal-example.yaml,位于 tutorials/assets/values-01-minimal-example.yaml。该文件包含以下内容

servingEngineSpec:
  runtimeClassName: ""
  modelSpec:
  - name: "opt125m"
    repository: "vllm/vllm-openai"
    tag: "latest"
    modelURL: "facebook/opt-125m"

    replicaCount: 1

    requestCPU: 6
    requestMemory: "16Gi"
    requestGPU: 1
    # Optional resource limits - if not specified, only GPU will have a limit
    # limitCPU: "8"
    # limitMemory: "32Gi"

主要字段说明

  • modelSpec: 定义模型配置,包括

    • name: 模型部署的名称。

    • repository: 托管模型镜像的 Docker 仓库。

    • tag: Docker 镜像标签。

    • modelURL: 指定要使用的 LLM 模型。

  • replicaCount: 设置要部署的副本数量。

  • requestCPU 和 requestMemory: 指定 pod 的 CPU 和内存请求。

  • limitCPU 和 limitMemory: 指定 pod 的 CPU 和内存资源的最大限制。

  • requestGPU: 指定所需的 GPU 数量。

注意: 如果您打算设置两个 vllm pod,请参阅 tutorials/assets/values-01-2pods-minimal-example.yaml

1.2: 部署 Helm Chart#

使用预定义配置文件部署 Helm Chart

helm repo add vllm https://vllm-project.github.io/production-stack
helm install vllm vllm/vllm-stack -f tutorials/assets/values-01-minimal-example.yaml

命令说明

  • 第一个命令中的 vllm: Helm 仓库。

  • 第二个命令中的 vllm: Helm Release 的名称。

  • -f tutorials/assets/values-01-minimal-example.yaml: 指定预定义配置文件。您可以查看 Chart vllm-stack默认配置值

2. 验证安装#

2.1: 监控部署状态#

使用以下命令监控部署状态

kubectl get pods

预期输出

  • 名为 vllm 的部署的 Pod 应过渡到 ReadyRunning 状态。

NAME                                               READY   STATUS    RESTARTS   AGE
vllm-deployment-router-859d8fb668-2x2b7        1/1     Running   0          2m38s
vllm-opt125m-deployment-vllm-84dfc9bd7-vb9bs   1/1     Running   0          2m38s

注意: 容器下载 Docker 镜像和 LLM 权重可能需要一些时间。

3. 向 Stack 发送查询#

3.1: 转发服务端口#

vllm-router-service 端口暴露到主机

kubectl port-forward svc/vllm-router-service 30080:80

3.2: 查询 OpenAI 兼容 API 以列出可用模型#

通过查询可用模型来测试 Stack 的 OpenAI 兼容 API

curl -o- https://:30080/v1/models

预期输出

{
  "object": "list",
  "data": [
    {
      "id": "facebook/opt-125m",
      "object": "model",
      "created": 1737428424,
      "owned_by": "vllm",
      "root": null
    }
  ]
}

3.3: 查询 OpenAI Completion 端点#

向 OpenAI /completion 端点发送查询,为 prompt 生成补全

curl -X POST https://:30080/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "facebook/opt-125m",
    "prompt": "Once upon a time,",
    "max_tokens": 10
  }'

生成的补全的示例输出

{
  "id": "completion-id",
  "object": "text_completion",
  "created": 1737428424,
  "model": "facebook/opt-125m",
  "choices": [
    {
      "text": " there was a brave knight who...",
      "index": 0,
      "finish_reason": "length"
    }
  ]
}

这展示了模型为提供的 prompt 生成的续写。

4. 卸载#

要移除部署,请运行

helm uninstall vllm