You need to enable JavaScript to run this app.
导航
快速部署基于 TensorRT-LLM 的 DeepSeek-R1 量化版
最近更新时间:2025.06.07 21:16:51首次发布时间:2025.06.07 21:16:51
我的收藏
有用
有用
无用
无用

本文主要介绍使用容器服务(VKE)快速部署基于 TensorRT-LLM 的 DeepSeek-R1 量化版模型推理服务。

方案介绍

本方案提供在 Kubernetes 集群中快速部署 DeepSeek-R1 大语言模型:

  • DeepSeek-R1 模型:由中国 AI 初创公司深度求索(DeepSeek)发布,R1 模型基于 DeepSeek-V3-Base 训练的推理模型,擅长数学、代码和自然语言推理,凭借开源、算法创新及高性价比获得广泛关注。
  • TensorRT-LLM:是 NVIDIA 推出的一款高性能深度学习推理优化库,专注于提升大型语言模型(LLM)在 NVIDIA GPU 上的推理速度和效率。

部署信息

  • 模型:DeepSeek-R1-W4AFP8
  • 推理引擎:TensorRT-LLM
  • 实例规格:ecs.hpcpni3ln.45xlarge

支持能力

  • 并行策略:TP+EP
  • 量化技术:W4A8
  • 数据精度:FP8
  • 访问:API 网关(APIG)

使用说明

  • 本实践涉及较多组件,相互间有依赖,配置复杂,为了获得符合预期的结果,请务必根据本文指引操作。

  • 为了获得符合预期的结果,同时符合容器服务的 使用限制,请按照本文方案(或在本文推荐的资源上)操作。如需替换方案,您可以联系对应的火山引擎客户经理咨询。

  • 请勿使用 mGPU 对 GPU 进行切分。

  • 完整的部署流程,依赖部分火山引擎邀测能力,请联系火山引擎客户经理申请如下功能的邀测试用:

    邀测功能/资源涉及产品说明
    高性能计算 GPU 型 hpcpni3ln 规格云服务器高性能计算实例,提供计算能力。
    节点挂载本地盘能力容器服务允许在 VKE 集群中配置本地盘挂载。

前提条件

创建高性能计算集群

高性能计算集群,用于实现高性能计算 GPU 实例(计算节点)的逻辑隔离,同一集群内实例间 RDMA 网络互联互通。详情请参见 创建高性能计算集群

说明

高性能集群所在的 可用区 需要与 VKE 节点的 可用区 一致。

创建 VKE 集群

在容器服务中创建集群,需要注意以下列举的参数配置。其余参数说明和详细的操作步骤,请参见 创建集群

配置项说明
集群配置
Kubernetes 版本选择 v1.28 及以上版本。
容器网络模型选择 VPC-CNI
节点池配置
托管节点池开启 托管节点池。
可用区与 高性能计算集群 所在的可用区相同。
计算规格选择前提条件中申请的高性能计算 GPU 型ecs.hpcpni3ln规格。
高性能计算机群选择之前创建的高性能计算集群。
节点数量1 个。

数据盘

配置如下两个数据盘:

  • 极速型 SSD:规格选 1024 GiB,性能级别选择默认值 PL0
  • 本地盘 SSD:指定挂载目录为/data01

    注意

    • date01目录后续有相关依赖,不能修改和自定义。
    • 如果物理机宕机或本地盘损坏,将存在数据丢失的风险,因此请勿在本地盘上存储需要长期保存的数据,同时做好 数据备份

alt

组件配置
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 节点计算资源。

操作步骤

步骤一:部署 deepseek-r1-w4afp8-tensorrt-llm

基于 TensorRT-LLM 框架提供 w4a8 量化后的 DeepSeek-R1 模型应用,可通过容器服务 应用模版 快速部署。

  1. 登录 容器服务控制台

  2. 在左侧导航栏,选择 应用中心 > 应用模板,下拉到页面底部,单击 更多应用模板

  3. 找到 deepseek-r1-w4afp8-tensorrt-llm,鼠标悬停在该应用模板区域,然后单击 部署

  4. 部署应用 页面,配置 deepseek-r1-w4afp8-tensorrt-llm 服务参数。其中,部分参数按如下说明配置,其余参数根据界面提示或参考 应用模板 中的说明配置。

    配置项说明
    基本信息
    项目选择需要部署应用的项目,确保与 VKE 集群所属项目相同。
    集群选择 前提条件 中创建的 VKE 集群。
    命名空间自定义选择目标集群下的命名空间。
    编排模板
    Chart选择 deepseek-r1-w4afp8-tensorrt-llm 的 Chart 版本,建议选择最新版本。
    协议阅读了解协议内容后勾选协议。
  5. 单击 确定,部署完成应用。
    应用部署完成后会显示在 Helm 应用 页面。选择目标项目、集群、命名空间,找到已基于 deepseek-r1-w4afp8-tensorrt-llm 模板部署的应用,单击应用名称,进入详情页面查看该应用的基本信息、关联创建的工作负载、服务、其他资源等。
    alt

  6. 无状态负载 区域,单击关联创建的无状态负载名称,跳转到 无状态负载 页面,查看相关负载的状态。

步骤二:配置路由

通过 APIG Ingress 配置模型路由。APIG Ingress 基于火山引擎 API 网关(API Gateway,APIG) 提供托管的云原生网关功能,实现高可用、高扩展的 Ingress 流量管理方式,满足在云原生应用场景下对业务流量稳定性和高可用性的需求。

  1. 在集群管理页面的左侧导航栏中,选择 服务与路由 > 路由规则,单击 创建路由规则。使用 API 网关对外暴露集群内的模型服务。部分参数按如下说明配置,其余配置详情,请参见 通过控制台创建 APIG Ingress

    说明

    使用 API 网关(APIG)暴露集群中的模型服务时,配置建议如下:

    • 实例规格:建议选择 4c8g 规格,默认双可用区高可用。
    • 负载均衡算法:建议配置为 轮询。在后端负载近似均衡的前提下,更适用于后端升级变更的场景。
    • 熔断: 当某些 GPU 实例出现异常时,一般会希望尽快将故障实例下线,避免故障持续。同时希望能够保留故障现场为后续进一步排查提供依据。 可以通过配置网关的熔断规则,将出现故障的实例进行隔离。
    • 请求超时:API 网关默认不超时,建议保持默认。如有超时需求,支持在 API 网关控制台 中配置超时,详情请参见 高级路由策略
    • 带宽上限:VKE 控制台上的配置项为 API 网关下 CLB 负载均衡的带宽,如需更大带宽,可以在 API 网关控制台 中绑定自定义 CLB 实例,详情请参见 添加访问入口
    • 可观测性:在 VKE 控制台上创建的 API 网关实例,默认情况下未开启监控告警和日志功能。如有需要,建议您在 API 网关控制台 中开启对应实例的日志和监控告警能力。
      • 实例监控:能够帮助您从入口网关层面及时发现整个系统链路上的非预期现象。例如:后端不健康、后端 Crash 等,在 API 网关会报503错误码,以及具体的错误详情。
      • 实例日志:从访问日志里能够查看请求错误详情、请求耗时、请求在后端各个 Pod 的分布等详情。
  2. (可选)配置 API 网关认证鉴权。
    1. 登录 API 网关控制台
    2. 创建消费者:在左侧导航栏选择 消费者管理 > 消费者列表,单击 创建消费者
    3. 生成 API-KEY :在消费者列表中,单击目标消费者名称,进入消费者详情页面。在认证信息区域,单击 生成 API Key

      在弹出的对话框内容选择 自动创建 API Key 认证信息。

      单击 确定,生成 API Key 认证信息。
    4. 启用 Key Auth 插件:在左侧导航栏选择 插件管理 > Key Auth插件,单击 创建插件,配置插件参数。
      1. 生效级别:选择 路由级别,并配置插件所属实例、服务和路由。
      2. 认证配置:选择 header,并配置来源为 Authorization,表示在请求头中的 Authorization 附带 API Key 认证信息。
      3. 消费者:选择步骤一种创建的消费者。
      4. 其他配置保持缺省。

模型验证

方式一:通过 Service 方式访问

按照 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 调用。
alt

方式二:通过 APIG 方式访问

开启 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?"}        ]    }'