本文主要介绍使用容器服务(VKE)快速部署基于 TensorRT-LLM 的 DeepSeek-R1 量化版模型推理服务。
本方案提供在 Kubernetes 集群中快速部署 DeepSeek-R1 大语言模型:
本实践涉及较多组件,相互间有依赖,配置复杂,为了获得符合预期的结果,请务必根据本文指引操作。
为了获得符合预期的结果,同时符合容器服务的 使用限制,请按照本文方案(或在本文推荐的资源上)操作。如需替换方案,您可以联系对应的火山引擎客户经理咨询。
请勿使用 mGPU 对 GPU 进行切分。
完整的部署流程,依赖部分火山引擎邀测能力,请联系火山引擎客户经理申请如下功能的邀测试用:
高性能计算集群,用于实现高性能计算 GPU 实例(计算节点)的逻辑隔离,同一集群内实例间 RDMA 网络互联互通。详情请参见 创建高性能计算集群。
说明
高性能集群所在的 可用区 需要与 VKE 节点的 可用区 一致。
在容器服务中创建集群,需要注意以下列举的参数配置。其余参数说明和详细的操作步骤,请参见 创建集群。
配置项 | 说明 |
---|---|
集群配置 | |
Kubernetes 版本 | 选择 v1.28 及以上版本。 |
容器网络模型 | 选择 VPC-CNI。 |
节点池配置 | |
托管节点池 | 开启 托管节点池。 |
可用区 | 与 高性能计算集群 所在的可用区相同。 |
计算规格 | 选择前提条件中申请的高性能计算 GPU 型ecs.hpcpni3ln 规格。 |
高性能计算机群 | 选择之前创建的高性能计算集群。 |
节点数量 | 1 个。 |
数据盘 | 配置如下两个数据盘:
|
组件配置 | |
nvidia-device-plugin | (必装)NVIDIA 设备驱动,支持在容器里使用 GPU 显卡设备的管理组件。 |
rdma-device-plugin | (必装)支持 RDMA 网卡设备的管理,提供 Pod Container 使用 RDMA 设备能力。 |
apig-controller | (必装)API 网关控制器,提供云原生的 AI 网关能力,根据不同策略完成推理流量的智能负载均衡。 |
csi-ebs | (必装)支持容器集群使用存储服务的标准 CSI 接口实现。 |
prometheus-agent | (暂不支持)托管 Prometheus 监控组件,采集 Kubernetes 集群监控指标数据到火山引擎托管 Prometheus 服务(VMP)。 |
apmplus-opentelemetry-collector | (暂不支持)采集 OpenTelemetry 数据和 Prometheus 指标并发送至应用性能监控全链路版(APMPlus)。 |
apmplus-server-agent | (暂不支持)采集服务和主机监控数据并发送至 APMPlus。 |
cr-credential-controller | (推荐安装)免密拉取镜像仓库(CR)镜像,简化部署操作。 |
keda | (推荐安装)基于 Kubernetes 的事件驱动的弹性伸缩器。基于复杂指标完成推理服务的弹性伸缩任务。 |
vci-virtual-kubelet | (推荐安装)利用弹性容器实例部署系统组件等 CPU 工作负载,免运维且不占用 GPU 节点计算资源。 |
基于 TensorRT-LLM 框架提供 w4a8 量化后的 DeepSeek-R1 模型应用,可通过容器服务 应用模版 快速部署。
登录 容器服务控制台。
在左侧导航栏,选择 应用中心 > 应用模板,下拉到页面底部,单击 更多应用模板。
找到 deepseek-r1-w4afp8-tensorrt-llm,鼠标悬停在该应用模板区域,然后单击 部署。
在 部署应用 页面,配置 deepseek-r1-w4afp8-tensorrt-llm 服务参数。其中,部分参数按如下说明配置,其余参数根据界面提示或参考 应用模板 中的说明配置。
配置项 | 说明 |
---|---|
基本信息 | |
项目 | 选择需要部署应用的项目,确保与 VKE 集群所属项目相同。 |
集群 | 选择 前提条件 中创建的 VKE 集群。 |
命名空间 | 自定义选择目标集群下的命名空间。 |
编排模板 | |
Chart | 选择 deepseek-r1-w4afp8-tensorrt-llm 的 Chart 版本,建议选择最新版本。 |
协议 | 阅读了解协议内容后勾选协议。 |
单击 确定,部署完成应用。
应用部署完成后会显示在 Helm 应用 页面。选择目标项目、集群、命名空间,找到已基于 deepseek-r1-w4afp8-tensorrt-llm 模板部署的应用,单击应用名称,进入详情页面查看该应用的基本信息、关联创建的工作负载、服务、其他资源等。
在 无状态负载 区域,单击关联创建的无状态负载名称,跳转到 无状态负载 页面,查看相关负载的状态。
通过 APIG Ingress 配置模型路由。APIG Ingress 基于火山引擎 API 网关(API Gateway,APIG) 提供托管的云原生网关功能,实现高可用、高扩展的 Ingress 流量管理方式,满足在云原生应用场景下对业务流量稳定性和高可用性的需求。
说明
使用 API 网关(APIG)暴露集群中的模型服务时,配置建议如下:
503
错误码,以及具体的错误详情。按照 OpenAI 兼容 API 方式调用,例如:
curl http://******/v1/chat/completions -H "Content-Type: application/json" -d '{ "model": "/data/models/DeepSeek-R1-W4AFP8", "messages": [ {"role": "user", "content": "Who are you?"} ] }'
其中,******
为 步骤一 中创建的应用关联创建的服务(Service)对应的端点。
您可以在应用对应 Helm 应用详情页 的 无状态负载 区域,单击关联创建的无状态负载名称,跳转到 无状态负载 页面,单击页面右上角 控制台,登录应用对应 Pod,进行 API 调用。
开启 API 网关的认证鉴权功能时,需要在请求中添加认证 Token,示例如下。
curl http://example.com/v1/chat/completions -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtp***" \ -d '{ "model": "/data/models/DeepSeek-R1-W4AFP8", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Who won the world series in 2020?"} ] }'