生產棧¶
在 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 模型)。
驗證安裝¶
使用以下命令監視部署狀態:
您將看到 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 埠轉發到主機:
然後,您可以透過 OpenAI 相容的 API 傳送查詢來檢查可用模型:
輸出
要傳送實際的聊天請求,您可以向 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
}'
輸出
解除安裝¶
要刪除部署,請執行:
(高階) 配置 vLLM 生產棧¶
核心 vLLM 生產棧配置透過 YAML 檔案進行管理。以下是安裝過程中使用的示例配置:
Yaml
在此 YAML 配置中:
modelSpec包括:name: 您為模型指定的暱稱。repository: vLLM 的 Docker 倉庫。tag: Docker 映象標籤。modelURL: 您想使用的 LLM 模型。
replicaCount: 副本數量。requestCPUandrequestMemory: 指定 pod 的 CPU 和記憶體資源請求。requestGPU: 指定所需的 GPU 數量。pvcStorage: 為模型分配持久儲存。
注意
如果您打算設定兩個 pod,請參考此 YAML 檔案。