生产栈¶
在 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 文件。