跳到內容

生產棧

在 Kubernetes 上部署 vLLM 是服務機器學習模型的一種可擴充套件且高效的方式。本指南將引導您使用 vLLM 生產棧 進行 vLLM 部署。vLLM 生產棧源自伯克利-芝加哥的合作專案,是 vLLM 專案下官方釋出的、針對生產環境最佳化的程式碼庫,專為 LLM 部署設計,具有以下特點:

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

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

先決條件

請確保您有一個正在執行的、支援 GPU 的 Kubernetes 環境(您可以遵循 本教程 在裸機 GPU 機器上安裝 Kubernetes 環境)。

使用 vLLM 生產棧進行部署

標準的 vLLM 生產棧使用 Helm chart 進行安裝。您可以在 GPU 伺服器上執行此 bash 指令碼來安裝 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-production-stack 的部署,該部署執行一個小型 LLM(Facebook opt-125M 模型)。

驗證安裝

使用以下命令監視部署狀態:

sudo kubectl get pods

您將看到 vllm 部署的 podtransit 到 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/v1/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/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"
    }
  ]
}

解除安裝

要刪除部署,請執行:

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: 副本數量。
  • requestCPU and requestMemory: 指定 pod 的 CPU 和記憶體資源請求。
  • requestGPU: 指定所需的 GPU 數量。
  • pvcStorage: 為模型分配持久儲存。

注意

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

提示

vLLM 生產棧提供更多功能(*例如* CPU 解除安裝和各種路由演算法)。請檢視這些 示例和教程 以及我們的 倉庫 以獲取更多詳細資訊!