生产栈¶
在 Kubernetes 上部署 vLLM 是一种可扩展且高效的机器学习模型服务方式。本指南将指导您如何使用 vLLM 生产栈 进行部署。vLLM 生产栈 源于伯克利大学与芝加哥大学的合作,是 vLLM 项目 下官方发布的、经过生产环境优化的代码库,专为 LLM 部署而设计,具有以下特性:
- 上游 vLLM 兼容性 – 它包装了上游 vLLM,而无需修改其代码。
- 易用性 – 通过 Helm charts 简化部署,并通过 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 模型)。
验证安装¶
使用以下命令监控部署状态
您将看到 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
注意
容器下载 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:副本数量。requestCPU和requestMemory:指定 Pod 的 CPU 和内存资源请求。requestGPU:指定所需的 GPU 数量。pvcStorage:为模型分配持久化存储。
注意
如果您打算设置两个 Pod,请参考此 YAML 文件。