生产堆栈¶
在 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 模型)。
验证安装¶
使用以下命令监控部署状态
您将看到 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
端口转发到主机
然后您可以向与 OpenAI 兼容的 API 发送查询,以检查可用模型
输出
要发送实际的聊天请求,您可以向 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
}'
输出
卸载¶
要移除部署,请运行
(高级)配置 vLLM 生产堆栈¶
核心 vLLM 生产堆栈配置通过 YAML 管理。以下是上述安装中使用的示例配置
Yaml
在此 YAML 配置中: * modelSpec
包括: * name
: 您希望模型使用的昵称。 * repository
: vLLM 的 Docker 仓库。 * tag
: Docker 镜像标签。 * modelURL
: 您想要使用的 LLM 模型。 * replicaCount
: 副本数量。 * requestCPU
和 requestMemory
: 指定 Pod 的 CPU 和内存资源请求。 * requestGPU
: 指定所需的 GPU 数量。 * pvcStorage
: 为模型分配持久化存储。
注意
如果您打算设置两个 Pod,请参考此 YAML 文件。