在 TKE 上部署满血版 DeepSeek-R1 (SGLang)
概述
DeepSeek-R1 满血版模型参数是 671B (6710 亿参数),想要完美的发挥它的性能,推荐使用 SGLang 来部署,SGLang 是性能 强悍的 AI 大模型部署工具,且与 DeepSeek 官方合作并专门针对 DeepSeek 进行了深度优化,也是 DeepSeek 官方推荐的部署工具。
本文将基于 SGLang 在 TKE 集群上部署满血版 DeepSeek-R1 模型,提供最佳实践的部署示例。
本文中的示例使用的镜像是 SGLang 官方提供的镜像(lmsysorg/sglang),tag 为 latest,建议指定 tag 到固定版本。
官方镜像托管在 DockerHub,且体积较大,在 TKE 环境中,默认提供免费的 DockerHub 镜像加速服务。中国大陆用户也可以直接从 DockerHub 拉取镜像,但速度可能较慢,尤其是对于较大的镜像,等待时间会更长。为提高镜像拉取速度,建议将镜像同步至 容器镜像服务 TCR,并在 YAML 文件中替换相应的镜像地址,这样可以显著加快镜像的拉取速度。
机型与部署方案
由于满血版的 DeepSeek-R1 参数量较大,需要用较大显存且支持 FP8 的大规格 GPU 实例,目前合适的机型规格有 HCCPNV6.96XLARGE2304(高性能计算集群)和 PNV6.32XLARGE1280 / PNV6.96XLARGE2304(GPU 云服务器),推荐的部署方案是用两台该机型的节点组建 GPU 集群来运行满血 DeepSeek-R1,如果对并发和性能要求不高,也可以单台部署。
下面是这几种规格的核心参数:
规格 | RDMA | CPU核心数 | 内存(GB) | GPU 卡数 |
---|---|---|---|---|
PNV6.32XLARGE1280 | 不支持 | 128 | 1280 | 8 |
PNV6.96XLARGE2304 | 不支持 | 384 | 2304 | 8 |
HCCPNV6.96XLARGE2304 | 支持(3.2Tbps) | 384 | 2304 | 8 |
这几种规格的实例都正在邀测中,且资源紧张,需联系您的销售经理开通使用并协调好资源。
选型建议:两台组建 GPU 集群来运行满血 DeepSeek-R1,建议选 HCCPNV6.96XLARGE2304
,因为支持 RDMA,可显著提升 DeepSeek 运行性能,生成速度大概是 600~700 token/s;单台部署无需 RDMA,优先考虑 PNV6.32XLARGE1280
和 PNV6.96XLARGE2304
以节约成本 ,生成速度大概是 20~40 token/s。
操作步骤
购买 GPU 服务器
测试 POC 阶段,可先在 云服务器购买页面 进行购买,按量计费。
对于 PNV6.32XLARGE1280 和 PNV6.96XLARGE2304 的这两种规格,架构选择异构计算才能看到;对于 HCCPNV6.96XLARGE2304 的规格,架构选择高性能计算集群才能看到,且要先提前创建高性能计算集群,详情请参见 创建高性能计算集群。
正式购买阶段,需通过 高性能计算平台-工作空间 购买,包年包月计费,请联系腾讯云架构师进行开通使用。
创建 TKE 集群
登录 容器服务控制台,创建一个集群:
更多详情请参见 创建集群。
- 地域:选择购买的 GPU 服务器所在地域
- 集群类型:选择TKE 标准集群。
- Kubernetes版本:要大于等于1.28(多机部署依赖的 LWS 组件的要求),建议选最新版。
- VPC:选择购买的 GPU 资源所在的 VPC。
添加 GPU 节点
通过添加已有节点的方式将购买到的 GPU 服务器加入 TKE 集群。
系统镜像选 TencentOS Server 3.1 (TK4) UEFI | img-39ywauzd
,驱动和 CUDA 选最新版本。
准备存储与模型文件
满血版 DeepSeek-R1 体积较大,为加快模型下载和加载速度,建议使用性能最强的存储,本文给出本地存储和 CFS-Trubo 共享存储两种方案的示例。
CFS-Turbo 共享存储
共享存储使用 CFS-Turbo 性能更好,Turbo 系列性能与规格详情参考 腾讯云文件存储官方文档,使用下面的步骤准备 CFS-Turbo 存储和下载大模型文件。
安装 CFS 插件
- 在集群列表中,单击集群 ID,进入集群详情页。
- 选择左侧菜单栏中的组件管理,在组件页面单击新建。
- 在新建组件管理页面中勾选 CFSTurbo(腾讯云高性能并行文件系统)。
- 单击完成即可创建组件。
创建 CFS-Turbo 实例
- 登录 CFS 控制台,单击创建来新建一个 CFS-Turbo 实例。
- 文件系统类型选择 Turbo 系列的:
- 地域选择 TKE 集群所在地域。
- 可用区 选择 GPU 节点池所在可用区(降低时延)。
- 网络类型如果选云联网网络,需确保 TKE 集群所在 VPC 已加入该云联网中;如果选VPC 网络,则需选择 TKE 集群所在 VPC,子网选与 GPU 节点池在同一个可用区的子网。
- 单击立即创建。
新建 StorageClass
新建一个后续使用 CFS 存储大模型的 PVC,可通过控制台或 YAML 创建。
- 通过控制台创建
- 通过 YAML 创建
- 在集群列表中,单击集群 ID,进入集群详情页。
- 选择左侧菜单栏中的存储,在 StorageClass 页面单击新建。
- 在新建存储页面,根据实际需求,创建 CFS-Turbo 类型的 StorageClass。如下图所示:
- 名称:请输入 StorageClass 名称,本文以 “cfs-turbo” 为例。
- Provisioner:选择 “文件存储CFS turbo”。
- CFS turbo:选择前面创建 CFS-Turbo 实例步骤中创建出来的 CFS-Turbo 的实例。
fsid
替换为前面步骤新建的 CFS-Turbo 实例的挂载点 ID(在实例的挂载点信息页面可查看,注意不是cfs-xxx
的 ID)。host
替换为前面步骤新建的 CFS-Turbo 实例的IPv4地址(同样也在挂载点信息页面可查看)。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cfs-turbo
provisioner: com.tencent.cloud.csi.cfsturbo
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
fsid: 564b8ef1
host: 11.0.0.7
创建 PVC
创建一个使用 CFS-Turbo 的 PVC,用于存储 AI 大模型,可通过控制台或 YAML 创建。
- 通过控制台创建
- 通过 YAML 创建
- 在集群列表中,单击集群 ID,进入集群详情页。
- 选择左侧菜单栏中的存储,在 PersistentVolumeClaim 页面单击新建。
- 在新建存储页面,创建存储大模型的 PVC。如下图所示:
- 名称:请输入 PVC 名称,本文以 “ai-model” 为例。
- 命名空间:SGLang 将要被部署的命名空间。
- Provisioner:选择 “文件存储CFS turbo”。
- 是否指定StorageClass:选择 “指定”。
- StorageClass:选择前面新建的 StorageClass 的名称。
- 是否指定PersistentVolue:选择 “不指定”。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ai-model
labels:
app: ai-model
spec:
storageClassName: cfs-turbo
accessModes:
- ReadWriteMany
resources:
requests:
storage: 700Gi
注意替换 storageClassName
为新建 StorageClass 步骤中配置的名称。
使用 Job 下载大模型文件
创建一个 Job 用于下载大模型文件到 CFS:
满血版的 DeepSeek-R1 是 671B 的大模型,一共 642G,下载耗时可能较长,实测在上海下载 ModelScope 上的模型文件,100Mbps 的云服务器带宽,耗时 16 个多小时:
apiVersion: batch/v1
kind: Job
metadata:
name: download-model
labels:
app: download-model
spec:
template:
metadata:
name: sglang
labels:
app: download-model
spec:
containers:
- name: sglang
image: lmsysorg/sglang:latest
command:
- modelscope
- download
- --local_dir=/data/model/DeepSeek-R1
- --model=deepseek-ai/DeepSeek-R1
volumeMounts:
- name: data
mountPath: /data/model
volumes:
- name: data
persistentVolumeClaim:
claimName: ai-model
restartPolicy: OnFailure
- CFS-Turbo 的 PVC 挂载到
/data
目录,存储下载的模型文件。 --local_dir
指定模型文件下载目录。--model
指定 ModelScope 模型库 中的模型名称,满血版的 DeepSeek-R1 模型名称为deepseek-ai/DeepSeek-R1
。