跳到內容

生產堆疊

在 Kubernetes 上部署 vLLM 是一種可擴充套件且高效的機器學習模型服務方式。本指南將引導您使用 vLLM 生產堆疊部署 vLLM。vLLM 生產堆疊源於伯克利大學和芝加哥大學的合作,是 vLLM 專案下正式釋出的程式碼庫,經過生產最佳化,專為 LLM 部署而設計,具有以下特點:

  • 上游 vLLM 相容性 – 它封裝了上游 vLLM,而無需修改其程式碼。
  • 易用性 – 透過 Helm Chart 簡化部署,並透過 Grafana 儀表板實現可觀測性。
  • 高效能 – 針對 LLM 工作負載進行了最佳化,具有多模型支援、模型感知和字首感知路由、快速 vLLM 引導以及使用 LMCache 進行 KV 快取解除安裝等功能。

如果您是 Kubernetes 的新手,請不用擔心:在 vLLM 生產堆疊的倉庫中,我們提供了一份分步指南和一段短影片,助您在4分鐘內完成所有設定並開始使用!

先決條件

確保您擁有一個帶有 GPU 的執行中的 Kubernetes 環境(您可以按照此教程在裸機 GPU 上安裝 Kubernetes 環境)。

使用 vLLM 生產堆疊進行部署

標準的 vLLM 生產堆疊是使用 Helm Chart 安裝的。您可以執行此 bash 指令碼在您的 GPU 伺服器上安裝 Helm。

要在您的桌面安裝 vLLM 生產堆疊,請執行以下命令

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

這將例項化一個名為 vllm 的基於 vLLM 生產堆疊的部署,它執行一個小型 LLM(Facebook opt-125M 模型)。

驗證安裝

使用以下命令監控部署狀態

sudo kubectl get pods

您將看到 vllm 部署的 Pods 將轉換為 Running 狀態。

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 權重可能需要一些時間。

向堆疊傳送查詢

vllm-router-service 埠轉發到主機

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

然後您可以向與 OpenAI 相容的 API 傳送查詢,以檢查可用模型

curl -o- https://:30080/models
輸出
{
  "object": "list",
  "data": [
    {
      "id": "facebook/opt-125m",
      "object": "model",
      "created": 1737428424,
      "owned_by": "vllm",
      "root": null
    }
  ]
}

要傳送實際的聊天請求,您可以向 OpenAI 的 /completion 端點發出 curl 請求

curl -X POST https://:30080/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"
    }
  ]
}

解除安裝

要移除部署,請執行

sudo helm uninstall vllm

(高階)配置 vLLM 生產堆疊

核心 vLLM 生產堆疊配置透過 YAML 管理。以下是上述安裝中使用的示例配置

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

    replicaCount: 1

    requestCPU: 6
    requestMemory: "16Gi"
    requestGPU: 1

    pvcStorage: "10Gi"

在此 YAML 配置中: * modelSpec 包括: * name: 您希望模型使用的暱稱。 * repository: vLLM 的 Docker 倉庫。 * tag: Docker 映象標籤。 * modelURL: 您想要使用的 LLM 模型。 * replicaCount: 副本數量。 * requestCPUrequestMemory: 指定 Pod 的 CPU 和記憶體資源請求。 * requestGPU: 指定所需的 GPU 數量。 * pvcStorage: 為模型分配持久化儲存。

注意

如果您打算設定兩個 Pod,請參考此 YAML 檔案

提示

vLLM 生產堆疊提供了更多功能(例如 CPU 解除安裝和各種路由演算法)。請檢視這些示例和教程以及我們的倉庫瞭解更多詳情!