生产环境部署栈¶
在 Kubernetes 上部署 vLLM 是一种可扩展且高效的服务机器学习模型的方式。本指南将引导您使用 vLLM production stack 部署 vLLM。该栈诞生于加州大学伯克利分校与芝加哥大学的合作项目,vLLM production stack 是 vLLM 项目 下官方发布的、针对生产环境优化的代码库,专为 LLM 部署设计,具备以下特点:
- 上游 vLLM 兼容性 – 它包装了上游 vLLM 并未修改其代码。
- 易用性 – 通过 Helm 图表简化部署,并通过 Grafana 仪表板实现可观测性。
- 高性能 – 针对 LLM 工作负载进行优化,支持多模型、模型感知和前缀感知路由、快速 vLLM 启动以及使用 LMCache 进行 KV 缓存卸载等功能。
如果您是 Kubernetes 新手,不用担心:在 vLLM production stack 仓库 中,我们提供了逐步 指南 和一个 短视频 来帮助您在 4 分钟内 完成环境搭建并开始使用!
前置要求¶
确保您拥有一个运行中的 Kubernetes 环境并配备 GPU(您可以按照 此教程 在裸金属 GPU 机器上安装 Kubernetes 环境)。
使用 vLLM production stack 部署¶
标准的 vLLM production stack 通过 Helm 图表安装。您可以运行此 bash 脚本 在 GPU 服务器上安装 Helm。
要在您的桌面电脑上安装 vLLM production stack,请运行以下命令:
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 部署的 Pod 状态变为 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
Note
容器可能需要一些时间下载 Docker 镜像和 LLM 模型权重。
向部署栈发送查询¶
将 vllm-router-service 的端口转发到主机:
然后您可以通过 OpenAI 兼容的 API 查询可用模型:
输出
要发送实际的聊天请求,您可以向 OpenAI 的 /completion 端点发送 curl 请求:
curl -X POST http://localhost:30080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "facebook/opt-125m",
"prompt": "Once upon a time,",
"max_tokens": 10
}'
输出
卸载¶
要删除部署,请运行:
(高级) 配置 vLLM production stack¶
核心的 vLLM production stack 配置通过 YAML 管理。以下是上述安装中使用的示例配置:
Yaml
在此 YAML 配置中:
modelSpec包含:name:您希望使用的模型昵称。repository:vLLM 的 Docker 仓库。tag:Docker 镜像标签。modelURL:您希望使用的 LLM 模型。
replicaCount:副本数量。requestCPU和requestMemory:指定 Pod 的 CPU 和内存资源请求。requestGPU:指定所需 GPU 数量。pvcStorage:为模型分配持久化存储。
Note
如果您打算设置两个 Pod,请参考此 YAML 文件。